setsockopt
net/httpsでHTTPSな通信をしていたのですが、IEのようにリンクをClickしたとたんにCtrl-wで落としたらRSTを出すような状況を作り出したいことになりました。CGIにスリープとかさせて、そのあいだにread_timeout=1とかやってセッションTimeout起こさせたのですが、そこはruby行儀よくFINだします。setsockoptでSO_LINGERをセットしたい!!!さてSocketはどこにあるのでしょうか?
無理やり探し出してこんな感じでセットしてみた。
class Net::HTTP def setlinger optval = [1,0].pack("ii") @socket.io.io.setsockopt(Socket::SOL_SOCKET, Socket::SO_LINGER,optval) end end
どうやらRSTでたようだ。