[Sumover-dev] [svn commit] r4681 - vic/branches/mpeg4/net

sumover-dev at cs.ucl.ac.uk sumover-dev at cs.ucl.ac.uk
Sun Mar 7 22:36:12 GMT 2010


Author: douglask
Date: Sun Mar  7 22:36:12 2010
New Revision: 4681

Modified:
   vic/branches/mpeg4/net/net-ip.cpp

Log:
Set network buffer size to 1024, if not sucessful, divide by 2 until a size that is able to be allocated


Modified: vic/branches/mpeg4/net/net-ip.cpp
==============================================================================
--- vic/branches/mpeg4/net/net-ip.cpp	(original)
+++ vic/branches/mpeg4/net/net-ip.cpp	Sun Mar  7 22:36:12 2010
@@ -476,14 +476,13 @@
 	}
 	/*
 	 * XXX don't need this for the session socket.
-	 */	
-	int bufsize = 80 * 1024;
-	if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&bufsize,
-			sizeof(bufsize)) < 0) {
-		bufsize = 32 * 1024;
+	 */
+	for (int bufsize = 1024 * 1024; bufsize >= 32 * 1024; bufsize /= 2) {
 		if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&bufsize,
-				sizeof(bufsize)) < 0)
-			perror("SO_RCVBUF");
+			       sizeof(bufsize)) >= 0)
+		{
+			break;
+		}
 	}
 	return (fd);
 }
@@ -592,13 +591,12 @@
 	/*
 	 * XXX don't need this for the session socket.
 	 */
-	int bufsize = 80 * 1024;
-	if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char *)&bufsize,
-		       sizeof(bufsize)) < 0) {
-		bufsize = 48 * 1024;
-		if (setsockopt(fd, SOL_SOCKET, SO_SNDBUF, (char *)&bufsize,
-			       sizeof(bufsize)) < 0)
-			perror("SO_SNDBUF");
+	for (int bufsize = 1024 * 1024; bufsize >= 32 * 1024; bufsize /= 2) {
+		if (setsockopt(fd, SOL_SOCKET, SO_RCVBUF, (char *)&bufsize,
+			       sizeof(bufsize)) >= 0)
+		{
+			break;
+		}
 	}
 	return (fd);
 }
@@ -607,7 +605,7 @@
 {
 	memset((char *)&sin, 0, sizeof(sin));
 	sin.sin_family = AF_UNSPEC;
- 	return connect(fd, (struct sockaddr *)&sin, sizeof(sin));
+	return connect(fd, (struct sockaddr *)&sin, sizeof(sin));
 }
 
 



More information about the Sumover-dev mailing list