Jef Poskanzer
0e60ef1f9c
Get rid of some compiler warnings about iprintf.
2013-11-08 21:19:59 -08:00
Jef Poskanzer
d38ab4c8df
Added the -T / --title flag.
2013-11-08 20:31:19 -08:00
Jef Poskanzer
082cbb0ee6
The ctrl_sck does not need to be in the select write_set, and indeed
...
having it there may cause the select to return immediately every
time. Which is bad, m'kay?
Also, changed the coding idiom used to keep track of the maximum fd
in the fd sets, to be clearer.
2013-11-08 15:59:17 -08:00
Jef Poskanzer
4e2ef5070b
More sizeof changes.
...
A couple more sizeof issues found and fixed. One of them is
actually another protocol change, but due to a fortuitous accident
it should remain compatible with older versions.
Detailed explanation: When a client attempts to connect to a server that
is already busy, the server is supposed to return ACCESS_DENIED as a
state value. It was doing so, but was writing it as an int, even though
state values are supposed to be signed chars. The client read the value
correctly as a signed char, getting one byte and throwing away the rest.
So why did this ever work? Because ACCESS_DENIED is the value -1, and
any byte of an int -1 equals a signed char -1. If ACCESS_DENIED had been
any other value, this would have been an opvious bug and would have long
since been fixed. As is, it stuck around working by accident until now.
2013-11-06 11:05:46 -08:00
Jef Poskanzer
38917b1f3f
Run -i interval timers on the server as well as the client.
2013-11-01 13:59:33 -07:00
Jef Poskanzer
afe6222a89
Move termination signal handing from main into iperf_run_client
...
and iperf_run_server, so that API users get it too. Also, call
iperf_errexit with an appropriate message, which in -J mode dumps
out any accumulated JSON data.
2013-10-29 15:03:17 -07:00
Jef Poskanzer
69376ec7ed
Fix retransmit accounting so it works right with the --omit flag.
2013-10-28 17:13:30 -07:00
Jef Poskanzer
8a7e01eb8f
Implement -A flag to set CPU affinity.
2013-10-25 17:00:52 -07:00
Jef Poskanzer
a953f5aa2c
Re-do of how --omit works.
2013-10-24 14:08:04 -07:00
Jef Poskanzer
e32a7bcd77
Added the -F / --file flag, to use a specified file instead
...
of random data for sending, and to save the data in the file
on receiving.
2013-10-19 07:43:38 -07:00
Jef Poskanzer
f8bd11af23
Ran across a little error in some code that is currently
...
commented out. Worth fixing anyway.
2013-09-12 11:01:48 -07:00
Jef Poskanzer
8bdc8fffcf
Fix bug in reverse mode.
2013-08-29 11:38:20 -07:00
Jef Poskanzer
5c01581b32
Detect that the system doesn't support IPv6 and try falling back to IPv4.
2013-08-19 10:02:01 -07:00
Jef Poskanzer
019434022c
test->state needs to be explicitly signed char to accomodate a couple
...
of error states which are negative. On most systems this doesn't
matter because char is signed, but on ARM CPUs char is unsigned.
2013-08-16 13:19:42 -07:00
Jef Poskanzer
d611f13e18
Fix incorrect default bandwidth limit when using the API instead
...
of the command line.
2013-07-12 19:56:49 -07:00
Jef Poskanzer
5789260432
Changed the -I / --ignore flag to -O / --omit, so that we can use the
...
same flag in bwctl.
2013-07-05 13:52:19 -07:00
Jef Poskanzer
c969359995
Added -I flag to ignore an initial period of data transfer,
...
defaulting to one second.
2013-07-03 12:01:57 -07:00
Jef Poskanzer
647d3b95a8
New implementation of the -b bandwidth limit flag, that applies to
...
TCP as well as UDP.
2013-06-24 07:14:14 -07:00
Jef Poskanzer
69bdbfd36d
Handle retransmits correctly in reverse mode.
2013-05-29 15:18:18 -07:00
Jef Poskanzer
2c042fd469
Simplify multiple client/server forward/reverse checks into
...
a single sender boolean.
2013-05-29 12:32:42 -07:00
Jef Poskanzer
12d474e2b4
A couple other places that used struct sockaddr_in when they should
...
have used struct sockaddr_storage - fixed now.
2013-05-02 15:28:30 -07:00
Jef Poskanzer
111645ed0f
Fix UDP for IPv6 and dual-stack.
2013-05-02 15:18:07 -07:00
Jef Poskanzer
e96ab74093
Move the JSON initialization/finalization insode the API.
2013-03-08 20:56:52 -08:00
Jef Poskanzer
987b432316
A bunch of changes mixed together in this commit, but the significant
...
one is the new -Z flag.
- Fixed potential bug in net.c's Nread and Nwrite routines. If they
had ever needed to loop they would have read/written the wrong address,
due to incorrect pointer arithmetic - sizeof(void) is not 1. Fix
was to change the type of the buffer pointer to char*, which also
meant adding casts to some callers.
- Better checking for conflicts between command-line flags - now they
should no longer be order-dependent.
- Added a new -Z / --zerocopy flag, to use a "zero copy" method of
sending data, such as sendfile(2) instead of the usual write(2).
- Renumbered error enum to make inserting new ones easier.
2013-03-04 15:55:16 -08:00
Jef Poskanzer
b5e0751f59
(Mostly) switched error reporting to a single routine that handles JSON mode.
2013-02-07 12:35:17 -08:00
Jef Poskanzer
9bfb54c0cc
Add -J flag to produce JSON output instead.
2013-02-01 11:42:35 -08:00
Jef Poskanzer
6177a7f1f1
Get rid of extra select() calls before reading and writing,
...
in both client and server. Instead we pass in and use the
fdsets from the main loop's select().
2013-01-18 10:17:05 -08:00
Jef Poskanzer
ec2d0670b8
Switched to using a new timer package, adapted from thttpd and http_load.
2012-12-11 22:29:26 -08:00
jef
98ce496b1b
Some changes to the iperf3 API to work with bwctl, mostly having to
...
do with what defs are in which include file. End result is we now have
only one public include file, iperf_api.h.
2012-09-28 16:00:14 -07:00
Jon Dugan
7d375156aa
update license info for all source files
2011-04-20 20:33:09 +00:00
sethdelliott
3331e801b9
Added portable CPU utilization code. Still need to exchange utilizations between client and server.
2011-02-24 17:08:54 +00:00
Jon Dugan
1fac1d2626
add queue.h from OpenBSD; use self contained queue.h from OpenBSD; fix indenting on previous commit
2010-09-08 20:35:47 +00:00
sethdelliott
02a35f07e3
Merged print mss (-m) into verbose mode (-V)
2010-08-04 19:19:08 +00:00
sethdelliott
0bd8d9da6e
Added ability to set TCP window size (-w). Modified code to keep test structures intact after a test is complete. Improved interval timer granularity. Fixed a bug with timeval_diff.
2010-08-02 22:45:53 +00:00
sethdelliott
dd4bc0089b
Stream list is now managed by queue.h SLIST macros
2010-07-28 20:29:25 +00:00
sethdelliott
ffdcc7d457
Updated iperf_error and moved the SIGINT handler out of the library
2010-07-27 22:11:09 +00:00
sethdelliott
f99bd3b2c6
Added support for IPv6 mode (-6)
2010-07-27 20:27:34 +00:00
sethdelliott
a1344ede16
Added support for binding (-B) to a specific interface
2010-07-26 21:30:34 +00:00
sethdelliott
4df383f6d8
Added callback functions to the iperf API
2010-07-23 20:46:58 +00:00
sethdelliott
112a907cc3
More code restructuring
2010-07-23 18:39:14 +00:00
sethdelliott
66ce7ad49d
Made the protocol implementation better. Lots of code clean up
2010-07-22 23:26:38 +00:00
sethdelliott
8a0b5a5d18
Added support for adding new protocols. Slightly modified iperf_error()
2010-07-22 18:57:08 +00:00
sethdelliott
b60a49dd37
All error handling is now handled by iperf_error. Also cleaned up some code
2010-07-20 22:27:50 +00:00
sethdelliott
c81883bf08
Added support for setting the MAXSEG (MSS) and NODELAY TCP options. Setting MSS is still a little buggy.
2010-07-15 23:19:42 +00:00
sethdelliott
8556db5d08
Added support for UDP mode (-b mode not yet supported). Added htonll/ntohll functions. Cleaned up code.
2010-07-14 23:24:58 +00:00
Jon Dugan
b0b16b86cc
rename uuid.[ch] to iperf_util.[ch] to avoid confusion on some platforms
2010-07-09 00:29:51 +00:00
sethdelliott
1ac522ec39
Fixed a bug where the server died on client interrupt. Also updated README, TODO, and man page.
2010-07-08 22:41:22 +00:00
sethdelliott
f1b3bd81f9
Quite a bit of code restructuring.
2010-07-07 21:54:24 +00:00
sethdelliott
b68ac00ee9
Some code restructuring.
2010-07-06 23:12:54 +00:00
sethdelliott
bfd0c25dba
Fixed an error when compiling on Ubuntu systems. Also fixed a small server memory leak.
2010-07-01 21:21:04 +00:00