[netperf-dev] netperf2 commit notice r127 - in trunk: . src src/NetPerfDir src/NetServerDir

raj at netperf.org raj at netperf.org
Thu Jun 14 10:56:39 PDT 2007


Author: raj
Date: 2007-06-14 10:56:36 -0700 (Thu, 14 Jun 2007)
New Revision: 127

Modified:
   trunk/AUTHORS
   trunk/README.windows
   trunk/Release_Notes
   trunk/src/NetPerfDir/sources
   trunk/src/NetServerDir/sources
   trunk/src/nettest_bsd.c
Log:
replace struct sockaddr_in with struct sockaddr_storage

Modified: trunk/AUTHORS
===================================================================
--- trunk/AUTHORS	2007-06-08 23:43:41 UTC (rev 126)
+++ trunk/AUTHORS	2007-06-14 17:56:36 UTC (rev 127)
@@ -206,3 +206,6 @@
 Dan Yost
 Fix to fflush() each interim result in demo mode to make things
 happier for folks redirecting same to a file.
+
+Alexander Duyck
+Fixes to replace struct sockaddr_in with struct sockaddr_storage
\ No newline at end of file

Modified: trunk/README.windows
===================================================================
--- trunk/README.windows	2007-06-08 23:43:41 UTC (rev 126)
+++ trunk/README.windows	2007-06-14 17:56:36 UTC (rev 127)
@@ -12,14 +12,17 @@
    (target OS version; free vs checked build; x86, AMD64, or IA64).
    This is picked from the "Start\Developer Kits" path.
 
-C) enter the netperf\src directory
+C) enter the src\NetPerfDir directory
 
 D) Edit sources to enable any desired optional features (eg
-   -DWANT_HISTOGRAM)
+   -DWANT_HISTOGRAM) or to remove features which your version of
+   Windows might not support (eg -DHAVE_STRUCT_SOCKADDR_STORAGE)
 
-E) while still in the netperf\src directory type "build /cD".
+E) while still in the src\NetperfDir directory type "build /cD".
 
-F) the target files will be in a directory like:
+F) Repeat steps C through E in src\NetServerDir
+
+G) the target files will be in a directory like:
    NetPerfDir\objchk_wnet_IA64\IA64, NetServerDir\objchk_wnet_IA64\IA64
    NetPerfDir\objfre_wnet_x86\i386, or NetPerfDir\objfre_wnet_AMD64\amd64
 

Modified: trunk/Release_Notes
===================================================================
--- trunk/Release_Notes	2007-06-08 23:43:41 UTC (rev 126)
+++ trunk/Release_Notes	2007-06-14 17:56:36 UTC (rev 127)
@@ -2,6 +2,11 @@
 
 Things changed in this release:
 
+*) Convert a number of struct sockaddr_in's to struct
+   sockaddr_storage's and add requisite casts to deal with some abort
+   problems on Windows and perhaps other platforms as well. Kudos to
+   Alexander Duyck.
+
 *) One can now pass a value of 'x' to the global -f option to specify
    the units as transactions per second.  This is the default for any
    request/response test, which is determined by there being a "double

Modified: trunk/src/NetPerfDir/sources
===================================================================
--- trunk/src/NetPerfDir/sources	2007-06-08 23:43:41 UTC (rev 126)
+++ trunk/src/NetPerfDir/sources	2007-06-14 17:56:36 UTC (rev 127)
@@ -14,7 +14,7 @@
 
 MSC_WARNING_LEVEL=/W3 /WX
 
-C_DEFINES=$(C_DEFINES) -D_CONSOLE_ -DHAVE_GETADDRINFO -DHAVE_GETNAMEINFO -DSTDC_HEADERS
+C_DEFINES=$(C_DEFINES) -D_CONSOLE_ -DHAVE_STRUCT_SOCKADDR_STORAGE -DHAVE_GETADDRINFO -DHAVE_GETNAMEINFO -DSTDC_HEADERS
 
 SOURCES= \
         ..\netcpu_ntperf.c \

Modified: trunk/src/NetServerDir/sources
===================================================================
--- trunk/src/NetServerDir/sources	2007-06-08 23:43:41 UTC (rev 126)
+++ trunk/src/NetServerDir/sources	2007-06-14 17:56:36 UTC (rev 127)
@@ -14,7 +14,7 @@
 
 MSC_WARNING_LEVEL=/W3 /WX
 
-C_DEFINES=$(C_DEFINES) -D_CONSOLE_ -DHAVE_GETADDRINFO -DHAVE_GETNAMEINFO -DSTDC_HEADERS
+C_DEFINES=$(C_DEFINES) -D_CONSOLE_ -DHAVE_STRUCT_SOCKADDR_STORAGE -DHAVE_GETADDRINFO -DHAVE_GETNAMEINFO -DSTDC_HEADERS
 
 SOURCES= \
         ..\netcpu_ntperf.c \

Modified: trunk/src/nettest_bsd.c
===================================================================
--- trunk/src/nettest_bsd.c	2007-06-08 23:43:41 UTC (rev 126)
+++ trunk/src/nettest_bsd.c	2007-06-14 17:56:36 UTC (rev 127)
@@ -4215,7 +4215,7 @@
 recv_tcp_stream()
 {
   
-  struct sockaddr_in myaddr_in, peeraddr_in;
+  struct sockaddr_storage myaddr_in, peeraddr_in;
   SOCKET s_listen,s_data;
   netperf_socklen_t addrlen;
   int	len;
@@ -4389,7 +4389,8 @@
   /* returned to the sender also implicitly telling the sender that the */
   /* socket buffer sizing has been done. */
   
-  tcp_stream_response->data_port_number = (int) ntohs(myaddr_in.sin_port);
+  tcp_stream_response->data_port_number = 
+    (int) ntohs(((struct sockaddr_in *)&myaddr_in)->sin_port);
   netperf_response.content.serv_errno   = 0;
   
   /* But wait, there's more. If the initiator wanted cpu measurements, */
@@ -4551,7 +4552,7 @@
 recv_tcp_maerts()
 {
   
-  struct sockaddr_in myaddr_in, peeraddr_in;
+  struct sockaddr_storage myaddr_in, peeraddr_in;
   struct addrinfo *local_res;
   char  local_name[BUFSIZ];
   char  port_buffer[PORTBUFSIZE];
@@ -4722,7 +4723,8 @@
   /* returned to the sender also implicitly telling the sender that the */
   /* socket buffer sizing has been done. */
   
-  tcp_maerts_response->data_port_number = (int) ntohs(myaddr_in.sin_port);
+  tcp_maerts_response->data_port_number = 
+    (int) ntohs(((struct sockaddr_in *)&myaddr_in)->sin_port);
   netperf_response.content.serv_errno   = 0;
   
   /* But wait, there's more. If the initiator wanted cpu measurements, */
@@ -6263,10 +6265,10 @@
   char local_name[BUFSIZ];
   char port_buffer[PORTBUFSIZE];
 
-  struct sockaddr_in myaddr_in;
+  struct sockaddr_storage myaddr_in;
   SOCKET	s_data;
   netperf_socklen_t 	addrlen;
-  struct sockaddr_in remote_addr;
+  struct sockaddr_storage remote_addr;
   netperf_socklen_t remote_addrlen;
 
   int	len = 0;
@@ -6393,7 +6395,8 @@
   /* returned to the sender also implicitly telling the sender that the */
   /* socket buffer sizing has been done. */
   
-  udp_stream_response->data_port_number = (int) ntohs(myaddr_in.sin_port);
+  udp_stream_response->data_port_number = 
+    (int) ntohs(((struct sockaddr_in *)&myaddr_in)->sin_port);
   netperf_response.content.serv_errno   = 0;
   
   /* But wait, there's more. If the initiator wanted cpu measurements, */
@@ -7215,7 +7218,7 @@
   char local_name[BUFSIZ];
   char port_buffer[PORTBUFSIZE];
 
-  struct sockaddr_in        myaddr_in;
+  struct sockaddr_storage        myaddr_in;
   struct sockaddr_storage    peeraddr; 
   SOCKET	s_data;
   netperf_socklen_t 	addrlen;
@@ -7352,11 +7355,14 @@
   /* returned to the sender also implicitly telling the sender that the */
   /* socket buffer sizing has been done. */
   
-  udp_rr_response->data_port_number = (int) ntohs(myaddr_in.sin_port);
+  udp_rr_response->data_port_number = 
+    (int) ntohs(((struct sockaddr_in *)&myaddr_in)->sin_port);
   netperf_response.content.serv_errno   = 0;
   
   if (debug) {
-    fprintf(where,"recv port number %d\n",myaddr_in.sin_port);
+    fprintf(where,
+	    "recv port number %d\n",
+	    ((struct sockaddr_in *)&myaddr_in)->sin_port);
     fflush(where);
   }
   
@@ -9101,16 +9107,16 @@
   /* protocols and such, we are passed the name of the remote host and */
   /* must turn that into the test specific addressing information. */
   
-  myaddr = (struct sockaddr_in *)malloc(sizeof(struct sockaddr_in));
+  myaddr = (struct sockaddr_storage *)malloc(sizeof(struct sockaddr_storage));
   if (myaddr == NULL) {
-    printf("malloc(%d) failed!\n", sizeof(struct sockaddr_in));
+    printf("malloc(%d) failed!\n", sizeof(struct sockaddr_storage));
     exit(1);
   }
 
   bzero((char *)&server,
 	sizeof(server));
   bzero((char *)myaddr,
-	sizeof(struct sockaddr_in));
+	sizeof(struct sockaddr_storage));
   myaddr->sin_family = AF_INET;
 
   complete_addrinfos(&remote_res,
@@ -9348,7 +9354,7 @@
     /* we want to bind our socket to a particular port number. */
     if (bind(send_socket,
 	     (struct sockaddr *)myaddr,
-	     sizeof(struct sockaddr_in)) == SOCKET_ERROR) {
+	     sizeof(struct sockaddr_storage)) == SOCKET_ERROR) {
       /* if the bind failed, someone else must have that port number */
       /* - perhaps in the listen state. since we can't use it, skip to */
       /* the next port number. we may have to do this again later, but */
@@ -10003,7 +10009,7 @@
 			  tcp_tran_rr_request->response_size,
 			  MSG_EOF,
 			  (struct sockaddr *)&peeraddr_in,
-			  sizeof(struct sockaddr_in))) == SOCKET_ERROR) {
+			  sizeof(struct sockaddr_storage))) == SOCKET_ERROR) {
       if (SOCKET_EINTR(bytes_sent)) {
 	/* the test timer has popped */
 	timed_out = 1;



More information about the netperf-dev mailing list