r3233 - in trunk/libmsip: include/libmsip source

erik at minisip.org erik at minisip.org
Wed Mar 7 23:12:35 CET 2007


Author: erik
Date: 2007-03-07 23:12:34 +0100 (Wed, 07 Mar 2007)
New Revision: 3233

Modified:
   trunk/libmsip/include/libmsip/SipSocketServer.h
   trunk/libmsip/source/SipLayerTransport.cxx
   trunk/libmsip/source/SipSocketServer.cxx
Log:


 * libmsip: Break SipSocketServer internal reference loop

   SipSocketServer objects reference themselve (the subclass
   is the handler registred to the superclass).





Modified: trunk/libmsip/include/libmsip/SipSocketServer.h
===================================================================
--- trunk/libmsip/include/libmsip/SipSocketServer.h	2007-03-07 21:34:40 UTC (rev 3232)
+++ trunk/libmsip/include/libmsip/SipSocketServer.h	2007-03-07 22:12:34 UTC (rev 3233)
@@ -45,6 +45,7 @@
 	public:
 		SipSocketServer(MRef<SipLayerTransport*> r, MRef<Socket*> sock );
 		virtual ~SipSocketServer();
+		void free();
 		std::string getMemObjectType() const {return "SipSocketServer";}
 
 		MRef<Socket *> getSocket() const;

Modified: trunk/libmsip/source/SipLayerTransport.cxx
===================================================================
--- trunk/libmsip/source/SipLayerTransport.cxx	2007-03-07 21:34:40 UTC (rev 3232)
+++ trunk/libmsip/source/SipLayerTransport.cxx	2007-03-07 22:12:34 UTC (rev 3233)
@@ -390,8 +390,8 @@
 		MRef<SipSocketServer *> server = *i;
 		server->join();
 		server->closeSockets();
+		server->free();
 		server->setReceiver(NULL);
-		*i=NULL;
 	}
 
 	servers.clear();

Modified: trunk/libmsip/source/SipSocketServer.cxx
===================================================================
--- trunk/libmsip/source/SipSocketServer.cxx	2007-03-07 21:34:40 UTC (rev 3232)
+++ trunk/libmsip/source/SipSocketServer.cxx	2007-03-07 22:12:34 UTC (rev 3233)
@@ -47,6 +47,10 @@
 SipSocketServer::~SipSocketServer(){
 }
 
+void SipSocketServer::free(){
+	removeSocket(ssock);
+}
+
 bool SipSocketServer::isIpv6() const{
 	return ssock->getLocalAddress()->getType() == IP_ADDRESS_TYPE_V6;
 }



More information about the Minisip-devel mailing list