socket-keepalive 0.1.0

socket-keepalive 0.1.0をリリースしました。
https://rubygems.org/gems/socket-keepalive
https://bitbucket.org/winebarrel/socket-keepalive

何これ?

setsocketopt(2)で、以下のオプションを設定するライブラリです。

  • SO_KEEPALIVE
  • TCP_KEEPIDLE
  • TCP_KEEPINTVL
  • TCP_KEEPCNT

TCP_KEEPIDLEとかを変更しようと思ったら、定数が定義されてなかったので作りました。
たぶんLinux専用です。FreeBSDとかはよくわかんないっす。
変数の意味とかはググってください。

使い方

require 'socket'
require 'socket/keepalive'
  
s = TCPSocket.open('localhost', 7)
  
s.keepalive = true
s.keepidle = 15
s.keepintvl = 5
s.keepcnt = 3

タイムアウトするとETIMEDOUTが投げられる。。。はずです。