2011-06-25 20 views
1

我想运行一个处理来自inetd的加密通信的Ruby脚本。由于我需要证书信息进行进一步处理,因此我不能将SSL卸载到stunnel之类的东西上。处理来自inetd ruby​​脚本的SSL连接

为了做到这一点,我不得不以某种方式在Ruby SSL对象中使用STDIN和STDOUT。不幸的是,OpenSSL:SSL:SSLSocket只在其构造函数中接受一个I​​O。有没有办法将STDIN和STDOUT绑定到一个IO,以便它从标准输入读取并写入标准输出?

回答

1

$stdin$stdout可互换使用为IO对象。您可以将它们传递给SSLSocket。这有帮助吗?否则,我需要更多的代码来帮助你。

+0

它们不直接工作,但添加一些额外的调用使SSLSocket接受标准输入和标准输出就好了: OpenSSL :: SSL :: SSLSocket.new(Socket.for_fd($ stdin.fileno)) – icanhasserver