r2907 - in trunk/libmnetutil: include/libmnetutil source

mikma at minisip.org mikma at minisip.org
Wed Nov 15 16:41:51 CET 2006


Author: mikma
Date: 2006-11-15 16:41:50 +0100 (Wed, 15 Nov 2006)
New Revision: 2907

Modified:
   trunk/libmnetutil/include/libmnetutil/Socket.h
   trunk/libmnetutil/source/ServerSocket.cxx
   trunk/libmnetutil/source/Socket.cxx
Log:
* Add Socket::getLocalAddress
* Set TCP server socket type to SOCKET_TYPE_TCP



Modified: trunk/libmnetutil/include/libmnetutil/Socket.h
===================================================================
--- trunk/libmnetutil/include/libmnetutil/Socket.h	2006-11-13 19:49:07 UTC (rev 2906)
+++ trunk/libmnetutil/include/libmnetutil/Socket.h	2006-11-15 15:41:50 UTC (rev 2907)
@@ -48,6 +48,8 @@
 #	endif
 #endif
 
+class IPAddress;
+
 class LIBMNETUTIL_API Socket : public MObject {
 	public:
 		Socket();
@@ -68,6 +70,8 @@
 
 		virtual int getAddressFamily();
 
+		virtual MRef<IPAddress *> getLocalAddress() const;
+
 //#ifdef _WIN32_WCE
 /* Undef this ... it causes a link problem ... */
 //#undef close

Modified: trunk/libmnetutil/source/ServerSocket.cxx
===================================================================
--- trunk/libmnetutil/source/ServerSocket.cxx	2006-11-13 19:49:07 UTC (rev 2906)
+++ trunk/libmnetutil/source/ServerSocket.cxx	2006-11-15 15:41:50 UTC (rev 2907)
@@ -52,6 +52,7 @@
 #endif
 
 ServerSocket::ServerSocket(int32_t domain, int32_t listenport){
+	type = SOCKET_TYPE_TCP;
 	this->domain=domain;
 	this->listen_port=listenport;
 	fd = (int32_t)::socket(domain, SOCK_STREAM, IPPROTO_TCP);

Modified: trunk/libmnetutil/source/Socket.cxx
===================================================================
--- trunk/libmnetutil/source/Socket.cxx	2006-11-13 19:49:07 UTC (rev 2906)
+++ trunk/libmnetutil/source/Socket.cxx	2006-11-15 15:41:50 UTC (rev 2907)
@@ -74,6 +74,12 @@
 }
 
 int32_t Socket::getPort(){
+	MRef<IPAddress *> addr = getLocalAddress();
+	int32_t port2 = addr->getPort();
+	return port2;
+}
+
+MRef<IPAddress *> Socket::getLocalAddress() const{
 	struct sockaddr_storage sa;
 	socklen_t sz = sizeof(sa);
 	if (getsockname(fd, (struct sockaddr *)&sa, &sz)){
@@ -81,8 +87,7 @@
 	}
 
 	MRef<IPAddress *> addr = IPAddress::create((struct sockaddr*)&sa, sz);
-	int32_t port2 = addr->getPort();
-	return port2;
+	return addr;
 }
 
 



More information about the Minisip-devel mailing list