aboutsummaryrefslogtreecommitdiff
path: root/src/net.c
diff options
context:
space:
mode:
authorBrian Tierney <bltierney@es.net>2009-10-27 03:06:56 +0000
committerBrian Tierney <bltierney@es.net>2009-10-27 03:06:56 +0000
commit1b85468f0cc5dfca22c1fe6896810d0deda1d338 (patch)
treed3ffc4298c4581c0eb5ffea535c4a40ce5726420 /src/net.c
parent513fcaefe16e7d44a870404a28cc51b0d92fae49 (diff)
downloadiperf3-1b85468f0cc5dfca22c1fe6896810d0deda1d338.tar.gz
more cleanup of TCP/UDP code
Diffstat (limited to 'src/net.c')
-rw-r--r--src/net.c12
1 files changed, 7 insertions, 5 deletions
diff --git a/src/net.c b/src/net.c
index 133e12e..5813fa8 100644
--- a/src/net.c
+++ b/src/net.c
@@ -91,12 +91,12 @@ netannounce(int proto, char *local, int port)
/********************************************************************/
int
-Nread(int fd, char *buf, int count, int udp)
+Nread(int fd, char *buf, int count, int prot)
{
struct sockaddr from;
socklen_t len = sizeof(from);
register int cnt;
- if (udp)
+ if (prot == SOCK_DGRAM)
{
cnt = recvfrom(fd, buf, count, 0, &from, &len);
} else
@@ -111,15 +111,17 @@ Nread(int fd, char *buf, int count, int udp)
* N W R I T E
*/
int
-Nwrite(int fd, char *buf, int count, int udp, struct sockaddr dest)
+Nwrite(int fd, char *buf, int count, int prot)
{
register int cnt;
- if (udp)
+ if (prot == SOCK_DGRAM) /* UDP mode */
{
again:
- cnt = sendto(fd, buf, count, 0, &dest, (socklen_t) sizeof(dest));
+ cnt = send(fd, buf, count, 0);
if (cnt < 0 && errno == ENOBUFS)
{
+ /* wait if run out of buffers */
+ /* XXX: but how long to wait? Start shorter and increase delay each time?? */
delay(18000); /* XXX: Fixme! */
errno = 0;
goto again;