--- gvpe/src/vpn_tcp.C 2007/12/02 00:39:06 1.21 +++ gvpe/src/vpn_tcp.C 2007/12/04 17:17:20 1.23 @@ -59,18 +59,20 @@ } }; -struct tcp_si_map : public map { +struct tcp_si_map : public map +{ void cleaner_cb (ev::timer &w, int revents); ev::timer cleaner; tcp_si_map () - : cleaner(this, &tcp_si_map::cleaner_cb) { + cleaner.set (this); cleaner.start (::conf.keepalive / 2, ::conf.keepalive / 2); } } tcp_si; -struct tcp_connection : ev::io { +struct tcp_connection : ev::io +{ int tos; tstamp last_activity; const sockinfo si; @@ -459,8 +461,10 @@ } tcp_connection::tcp_connection (int fd_, const sockinfo &si_, vpn &v_) -: v(v_), si(si_), ev::io(this, &tcp_connection::tcpv4_ev) +: v(v_), si(si_) { + set (this); + last_activity = ev_now (); r_pkt = 0; w_pkt = 0;