2011-06-25 42 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