src/proto2/NetworkNode.cc
branchno-netsession
changeset 36 785d220fc6b7
parent 33 e53f09b378f4
child 37 ed2957490bbf
--- 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);