blob: a9c46be9c08106d4732bae5fd20204eacdc6e767 [file] [log] [blame] [edit]
--- src/netserver.c 2007-10-17 14:09:12.000000000 -0700
+++ src.patch/netserver.c 2008-11-05 10:23:55.253300000 -0800
@@ -527,7 +527,7 @@
if ((bind (server_control,
local_res_temp->ai_addr,
local_res_temp->ai_addrlen) != SOCKET_ERROR) &&
- (listen (server_control,5) != SOCKET_ERROR)) {
+ (listen (server_control, 512) != SOCKET_ERROR)) {
not_listening = 0;
break;
}
--- src/netsh.c 2007-08-08 13:29:21.000000000 -0700
+++ src.patch/netsh.c 2008-11-05 09:45:47.967668000 -0800
@@ -93,7 +93,7 @@
/* Some of the args take optional parameters. Since we are using */
/* getopt to parse the command line, we will tell getopt that they do */
/* not take parms, and then look for them ourselves */
-#define GLOBAL_CMD_LINE_ARGS "A:a:b:B:CcdDf:F:H:hi:I:k:K:l:L:n:NO:o:P:p:rt:T:v:VW:w:46"
+#define GLOBAL_CMD_LINE_ARGS "A:a:b:B:CcdDf:F:H:hi:I:k:K:l:L:n:NO:o:P:p:rt:s:T:v:VW:w:46"
/************************************************************************/
/* */
@@ -174,6 +174,10 @@
remote_send_offset = 0,
remote_recv_offset = 0;
+/* wait time between control/data connection establishment and
+ start of data traffic */
+int wait_time_secs;
+
#if defined(WANT_INTERVALS) || defined(WANT_DEMO)
int
interval_usecs,
@@ -269,6 +273,7 @@
-p port,lport* Specify netserver port number and/or local port\n\
-P 0|1 Don't/Do display test headers\n\
-r Allow confidence to be hit on result only\n\
+ -s time Time to wait before starting data traffic\n\
-t testname Specify test to perform\n\
-T lcpu,rcpu Request netperf/netserver be bound to local/remote cpu\n\
-v verbosity Specify the verbosity level\n\
@@ -697,6 +702,9 @@
test_time = 0;
}
break;
+ case 's':
+ wait_time_secs = convert(optarg);
+ break;
case 'v':
/* say how much to say */
verbosity = convert(optarg);
--- src/netsh.h 2007-08-08 13:30:15.000000000 -0700
+++ src.patch/netsh.h 2008-11-05 09:45:48.020604000 -0800
@@ -65,6 +65,8 @@
test_bytes, /* test ends on byte count */
test_trans; /* test ends on tran count */
+extern int wait_time_secs;
+
/* the alignment conditions for the tests */
extern int
local_recv_align, /* alignment for local receives */
--- src/nettest_bsd.c 2007-10-17 14:17:13.000000000 -0700
+++ src.patch/nettest_bsd.c 2008-11-05 10:41:34.391144000 -0800
@@ -306,6 +306,12 @@
#endif
#endif
+#define WAIT_BEFORE_DATA_TRAFFIC() \
+{ \
+ if (wait_time_secs) \
+ sleep(wait_time_secs); \
+} \
+
#ifdef WANT_DEMO
#ifdef HAVE_GETHRTIME
static hrtime_t demo_one;
@@ -1535,6 +1541,8 @@
/* we'll see it here. If it didn't, we might as well start pumping */
/* data. */
+ WAIT_BEFORE_DATA_TRAFFIC();
+
/* Set-up the test end conditions. For a stream test, they can be */
/* either time or byte-count based. */
@@ -2229,6 +2237,8 @@
/* we'll see it here. If it didn't, we might as well start pumping */
/* data. */
+ WAIT_BEFORE_DATA_TRAFFIC();
+
/* Set-up the test end conditions. For a maerts test, they can be */
/* either time or byte-count based. */
@@ -3681,7 +3691,7 @@
tcp_stream_request->cpu_rate = remote_cpu_rate;
if (test_time) {
- tcp_stream_request->test_length = test_time;
+ tcp_stream_request->test_length = test_time + wait_time_secs;
}
else {
tcp_stream_request->test_length = test_bytes;
@@ -3762,6 +3772,8 @@
we'll see it here. If it didn't, we might as well start pumping
data. */
+ WAIT_BEFORE_DATA_TRAFFIC();
+
/* Set-up the test end conditions. For a stream test, they can be */
/* either time or byte-count based. */
@@ -5149,7 +5161,7 @@
tcp_rr_request->so_rcvavoid = rem_rcvavoid;
tcp_rr_request->so_sndavoid = rem_sndavoid;
if (test_time) {
- tcp_rr_request->test_length = test_time;
+ tcp_rr_request->test_length = test_time + wait_time_secs;
}
else {
tcp_rr_request->test_length = test_trans * -1;
@@ -5211,6 +5223,8 @@
exit(1);
}
+
+ WAIT_BEFORE_DATA_TRAFFIC();
/* Data Socket set-up is finished. If there were problems, either the */
/* connect would have failed, or the previous response would have */
@@ -5925,6 +5939,8 @@
fflush(where);
}
}
+
+ WAIT_BEFORE_DATA_TRAFFIC();
/* set up the timer to call us after test_time. one of these days, */
/* it might be nice to figure-out a nice reliable way to have the */
@@ -6776,7 +6792,7 @@
udp_rr_request->so_rcvavoid = rem_rcvavoid;
udp_rr_request->so_sndavoid = rem_sndavoid;
if (test_time) {
- udp_rr_request->test_length = test_time;
+ udp_rr_request->test_length = test_time + wait_time_secs;
}
else {
udp_rr_request->test_length = test_trans * -1;
@@ -6847,6 +6863,8 @@
/* message after the accept on the remote. If it failed, we'll see it */
/* here. If it didn't, we might as well start pumping data. */
+ WAIT_BEFORE_DATA_TRAFFIC();
+
/* Set-up the test end conditions. For a request/response test, they */
/* can be either time or transaction based. */
@@ -8128,7 +8146,7 @@
tcp_conn_rr_request->so_rcvavoid = rem_rcvavoid;
tcp_conn_rr_request->so_sndavoid = rem_sndavoid;
if (test_time) {
- tcp_conn_rr_request->test_length = test_time;
+ tcp_conn_rr_request->test_length = test_time + wait_time_secs;
}
else {
tcp_conn_rr_request->test_length = test_trans * -1;
@@ -8199,6 +8217,8 @@
/* Set-up the test end conditions. For a request/response test, they */
/* can be either time or transaction based. */
+ WAIT_BEFORE_DATA_TRAFFIC();
+
if (test_time) {
/* The user wanted to end the test after a period of time. */
times_up = 0;
@@ -10313,7 +10333,7 @@
tcp_rr_request->so_rcvavoid = rem_rcvavoid;
tcp_rr_request->so_sndavoid = rem_sndavoid;
if (test_time) {
- tcp_rr_request->test_length = test_time;
+ tcp_rr_request->test_length = test_time + wait_time_secs;
}
else {
tcp_rr_request->test_length = test_trans * -1;
@@ -10379,7 +10399,9 @@
/* indicated a problem. I failed to see the value of the extra */
/* message after the accept on the remote. If it failed, we'll see it */
/* here. If it didn't, we might as well start pumping data. */
-
+
+ WAIT_BEFORE_DATA_TRAFFIC();
+
/* Set-up the test end conditions. For a request/response test, they */
/* can be either time or transaction based. */