bug 828: PacketSocket::Close does not unregister protocol handler
authorQuincy Tse <quincy.tse@gmail.com>
Sun, 30 May 2010 20:53:25 -0700
changeset 6321 7476f746ba5d
parent 6320 06d80fe1d3b0
child 6322 d36455b47a34
bug 828: PacketSocket::Close does not unregister protocol handler
src/node/packet-socket.cc
--- a/src/node/packet-socket.cc	Sun May 30 20:40:05 2010 -0700
+++ b/src/node/packet-socket.cc	Sun May 30 20:53:25 2010 -0700
@@ -185,6 +185,10 @@
       m_errno = ERROR_BADF;
       return -1;
     }
+  else if (m_state == STATE_BOUND || m_state == STATE_CONNECTED)
+    {
+      m_node->UnregisterProtocolHandler (MakeCallback (&PacketSocket::ForwardUp, this));
+    }
   m_state = STATE_CLOSED;
   m_shutdownSend = true;
   m_shutdownRecv = true;