diff -r e21cfda0edde -r 785d220fc6b7 src/proto2/NetworkNode.cc --- a/src/proto2/NetworkNode.cc Tue Nov 18 22:58:50 2008 +0000 +++ b/src/proto2/NetworkNode.cc Thu Nov 20 19:25:56 2008 +0000 @@ -5,13 +5,25 @@ session(session), tcp(tcp), udp(udp), address(address) { // connect signals + slots.connect(tcp->sig_disconnect(), this, &NetworkNode::on_disconnect); } NetworkNode::~NetworkNode (void) { delete tcp; } - + +void on_disconnect (void) { + // tell session + session.handle_disconnect(this); + + // fire signal + _sig_disconnected(); + + // delete + delete this; +} + void NetworkNode::send (NetworkChannelID channel_id, const NetworkPacket &pkt, bool reliable = true) { assert(channel_id > 0);