[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