[Sumover-dev] [svn commit] r3798 - in vic/trunk: net

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Wed Aug 23 16:13:04 BST 2006


Author: piers
Date: Wed Aug 23 16:12:45 2006
New Revision: 3798

Modified:
   vic/trunk/net/net-ip.cpp
   vic/trunk/net/net-ipv6.cpp
   vic/trunk/net/net.cpp
   vic/trunk/net/net.h
   vic/trunk/rtp/session.cpp

Log:
Fixes for SSM on Linux


Modified: vic/trunk/net/net-ip.cpp
==============================================================================
--- vic/trunk/net/net-ip.cpp	(original)
+++ vic/trunk/net/net-ip.cpp	Wed Aug 23 16:12:45 2006
@@ -225,7 +225,8 @@
 		char s_addr_ssm[MAXHOSTNAMELEN];
 		int i=0;
 		while (&host[i]<g_addr) {
-			s_addr_ssm[i]=host[i++];
+			s_addr_ssm[i]=host[i];
+                        i++;
 		}
 		s_addr_ssm[i]='\0';
 		g_addr_=++g_addr;
@@ -288,7 +289,7 @@
 		p->sin_port = 0;
 	}
 	// Use Local interface name if already set via command line
-	if (local_.isset()) {
+	if (local_.is_set()) {
 		p->sin_addr.s_addr=(IPAddress&)local_;
 		return (0);
 	}
@@ -363,7 +364,7 @@
 #ifdef IP_ADD_SOURCE_MEMBERSHIP  
         struct ip_mreq_source mrs;
 		/* Check if an Src addr - as in S,G has been set */
-        if (s_addr_ssm.isset()) {
+        if (s_addr_ssm.is_set()) {
                 mrs.imr_sourceaddr.s_addr = g_addri_ssm;
                 mrs.imr_multiaddr.s_addr = g_addri;
                 mrs.imr_interface.s_addr = INADDR_ANY;
@@ -422,7 +423,7 @@
 		 * (try to) connect the foreign host's address to this socket.
 		 */
 		sin.sin_port = 0;
-		sin.sin_addr.s_addr = (IPAddress&)addr;
+		sin.sin_addr.s_addr = g_addri;
 		connect(fd, (struct sockaddr *)&sin, sizeof(sin));
 #endif
 	}

Modified: vic/trunk/net/net-ipv6.cpp
==============================================================================
--- vic/trunk/net/net-ipv6.cpp	(original)
+++ vic/trunk/net/net-ipv6.cpp	Wed Aug 23 16:12:45 2006
@@ -263,7 +263,8 @@
 		char s_addr_ssm[MAXHOSTNAMELEN];
 		int i=0;
 		while (&host[i]<g_addr) {
-			s_addr_ssm[i]=host[i++];
+			s_addr_ssm[i]=host[i];
+                        i++;
 		}
 		s_addr_ssm[i]='\0';
 		g_addr_=++g_addr;
@@ -329,7 +330,7 @@
 
 	// Use Local name if already set via command line
 	// But use port derived from getsockname
-  if (local_.isset()) {
+  if (local_.is_set()) {
 		p->sin6_addr=(IP6Address&)local_;
 		return (result);
 	}
@@ -406,7 +407,7 @@
 #ifdef IPV6_ADD_SOURCE_MEMBERSHIP  
         struct ipv6_mreq_source mrs;
 		/* Check if an Src addr - as in S,G has been set */
-        if (s_addr_ssm.isset()) {
+        if (s_addr_ssm.is_set()) {
                 mrs.ipv6mr_sourceaddr = (IP6Address&)s_addr_ssm;
 				mrs.ipv6mr_interface = (ifIndex_<0)?0:ifIndex_;
 				mrs.ipv6mr_multiaddr = (IP6Address&)g_addr;

Modified: vic/trunk/net/net.cpp
==============================================================================
--- vic/trunk/net/net.cpp	(original)
+++ vic/trunk/net/net.cpp	Wed Aug 23 16:12:45 2006
@@ -110,7 +110,7 @@
 	Address * result = alloc(name);
 	return (result ? result : new Address());
 }
-int Address::isset() {
+int Address::is_set() {
 	if (text_!=0) 
 		if (*text_!='\0') return 1;
 	return 0;

Modified: vic/trunk/net/net.h
==============================================================================
--- vic/trunk/net/net.h	(original)
+++ vic/trunk/net/net.h	Wed Aug 23 16:12:45 2006
@@ -68,7 +68,7 @@
 
 	static Address * alloc(const char * name);
 	static Address * default_alloc();
-	int isset();
+	int is_set();
 protected:
 	char *text_;
 };

Modified: vic/trunk/rtp/session.cpp
==============================================================================
--- vic/trunk/rtp/session.cpp	(original)
+++ vic/trunk/rtp/session.cpp	Wed Aug 23 16:12:45 2006
@@ -260,7 +260,7 @@
 	srcid += (u_int32_t)getuid();
 	srcid += (u_int32_t)getpid();
 /* __IPv6 changed srcid computation */
-	for(int i = 0; i < (addr.length() % sizeof(u_int32_t)); i++) {
+	for(unsigned int i = 0; i < (addr.length() % sizeof(u_int32_t)); i++) {
 		srcid += ((u_int32_t*)((const void*)addr))[i];
 	}
 	return (srcid);
@@ -740,7 +740,7 @@
 		pb->release();
 		return;
 	}
-	if (cc < sizeof(rtphdr)) {
+	if (cc < (int)sizeof(rtphdr)) {
 		++nrunt_;
 		pb->release();
 		return;



More information about the Sumover-dev mailing list