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