diff options
Diffstat (limited to 'ext/raindrops/tcp_info.c')
-rw-r--r-- | ext/raindrops/tcp_info.c | 21 |
1 files changed, 21 insertions, 0 deletions
diff --git a/ext/raindrops/tcp_info.c b/ext/raindrops/tcp_info.c index dc615f7..3e241a1 100644 --- a/ext/raindrops/tcp_info.c +++ b/ext/raindrops/tcp_info.c @@ -191,5 +191,26 @@ void Init_raindrops_tcp_info(void) DEFINE_METHOD_tcp_info_tcpi_rcv_rtt; DEFINE_METHOD_tcp_info_tcpi_rcv_space; DEFINE_METHOD_tcp_info_tcpi_total_retrans; + +#ifdef RAINDROPS_TCP_STATES_ALL_KNOWN + { +#define TCPSET(n,v) rb_hash_aset(tcp, ID2SYM(rb_intern(#n)), INT2NUM(v)) + VALUE tcp = rb_hash_new(); + TCPSET(ESTABLISHED, RAINDROPS_TCP_ESTABLISHED); + TCPSET(SYN_SENT, RAINDROPS_TCP_SYN_SENT); + TCPSET(SYN_RECV, RAINDROPS_TCP_SYN_RECV); + TCPSET(FIN_WAIT1, RAINDROPS_TCP_FIN_WAIT1); + TCPSET(FIN_WAIT2, RAINDROPS_TCP_FIN_WAIT2); + TCPSET(TIME_WAIT, RAINDROPS_TCP_TIME_WAIT); + TCPSET(CLOSE, RAINDROPS_TCP_CLOSE); + TCPSET(CLOSE_WAIT, RAINDROPS_TCP_CLOSE_WAIT); + TCPSET(LAST_ACK, RAINDROPS_TCP_LAST_ACK); + TCPSET(LISTEN, RAINDROPS_TCP_LISTEN); + TCPSET(CLOSING, RAINDROPS_TCP_CLOSING); +#undef TCPSET + OBJ_FREEZE(tcp); + rb_define_const(cRaindrops, "TCP", tcp); + } +#endif } #endif /* HAVE_STRUCT_TCP_INFO */ |