--- 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);