Skip site navigation (1)Skip section navigation (2)
Date:      Mon, 23 Mar 2015 11:15:36 +0000 (UTC)
From:      Tilman Keskinoz <arved@FreeBSD.org>
To:        ports-committers@freebsd.org, svn-ports-all@freebsd.org, svn-ports-head@freebsd.org
Subject:   svn commit: r381986 - in head/benchmarks/netio: . files
Message-ID:  <201503231115.t2NBFaOJ010838@svn.freebsd.org>

next in thread | raw e-mail | index | archive | help
Author: arved
Date: Mon Mar 23 11:15:35 2015
New Revision: 381986
URL: https://svnweb.freebsd.org/changeset/ports/381986
QAT: https://qat.redports.org/buildarchive/r381986/

Log:
  Remove unnecessary whitespace changes in patchfile
  add in previous commit

Modified:
  head/benchmarks/netio/Makefile
  head/benchmarks/netio/files/patch-netio.c

Modified: head/benchmarks/netio/Makefile
==============================================================================
--- head/benchmarks/netio/Makefile	Mon Mar 23 08:42:57 2015	(r381985)
+++ head/benchmarks/netio/Makefile	Mon Mar 23 11:15:35 2015	(r381986)
@@ -13,6 +13,7 @@ COMMENT=	Network benchmark
 
 WRKSRC=		${WRKDIR}
 USES=		gmake zip
+PATCH_ARGS=	-d ${PATCH_WRKSRC} -N -s -E ${PATCH_STRIP} -l
 PLIST_FILES=	bin/netio
 
 CFLAGS+=	-DUNIX -DSOCKLEN_T

Modified: head/benchmarks/netio/files/patch-netio.c
==============================================================================
--- head/benchmarks/netio/files/patch-netio.c	Mon Mar 23 08:42:57 2015	(r381985)
+++ head/benchmarks/netio/files/patch-netio.c	Mon Mar 23 11:15:35 2015	(r381986)
@@ -1,3126 +1,335 @@
---- netio.c.orig	2015-03-22 18:03:25.739744000 +0100
-+++ netio.c	2015-03-22 18:03:36.459543000 +0100
-@@ -1,1505 +1,1618 @@
--/* netio.c
-- *
-- * Author:  Kai-Uwe Rommel <rommel@ars.de>
-- * Created: Wed Sep 25 1996
-- */
--
--static char *rcsid =
--"$Id: netio.c,v 1.32 2012/11/22 16:47:24 Rommel Exp Rommel $";
--static char *rcsrev = "$Revision: 1.32 $";
--
--/*
-- * $Log: netio.c,v $
-- * Revision 1.32  2012/11/22 16:47:24  Rommel
-- * added binding to client sockets, too
-- *
-- * Revision 1.31  2010/10/14 16:44:38  Rommel
-- * fixed sleep calls
-- *
-- * Revision 1.30  2010/10/14 14:32:41  Rommel
-- * removed NetBIOS code
-- * added server side result printing
-- * fixed packet loss calculation (data type bug)
-- *
-- * Revision 1.29  2010/10/14 11:28:19  Rommel
-- * central printing routine
-- *
-- * Revision 1.28  2009/09/07 14:09:39  Rommel
-- * changed number output from bytes/KB to bytes/KB/MB
-- *
-- * Revision 1.27  2008/02/11 09:00:22  Rommel
-- * re-randomize buffer data for each loop run
-- *
-- * Revision 1.26  2005/08/30 14:45:51  Rommel
-- * minor fixes
-- *
-- * Revision 1.25  2004/05/26 07:23:04  Rommel
-- * some more corrections from Oliver Lau and Frank Schnell
-- *
-- * Revision 1.24  2004/05/17 16:01:03  Rommel
-- * fix for _send/_recv from Thomas Jahns
-- *
-- * Revision 1.23  2003/09/30 09:32:22  Rommel
-- * corrections from Matthias Scheler for error handling
-- * added socket buffer size setting
-- * added htonl/ntohl code (hint from Oliver Lau)
-- * restructured send/recv error/result checking
-- * more verbose server side messages
-- * other minor changes
-- *
-- * Revision 1.22  2003/09/22 14:58:33  Rommel
-- * added server side progress messages
-- *
-- * Revision 1.21  2003/08/28 12:44:11  Rommel
-- * fixed display of non-k-multiple packet sizes
-- *
-- * Revision 1.20  2003/08/27 11:05:48  Rommel
-- * allow block size specifikation in bytes or k bytes
-- *
-- * Revision 1.19  2003/08/17 16:53:45  Rommel
-- * added Unix/Linux pthreads support (required for UDP)
-- *
-- * Revision 1.18  2003/08/17 14:46:17  Rommel
-- * added UDP benchmark
-- * several minor changes (cleanup)
-- * configurable binding address
-- *
-- * Revision 1.17  2003/07/12 17:25:00  Rommel
-- * made block size selectable
-- *
-- * Revision 1.16  2003/02/10 09:06:59  Rommel
-- * fixed sender algorithm
-- *
-- * Revision 1.15  2001/09/17 13:56:40  Rommel
-- * changed to perform bidirectional benchmarks
-- *
-- * Revision 1.14  2001/04/19 12:20:55  Rommel
-- * added fixes for Unix systems
-- *
-- * Revision 1.13  2001/03/26 11:37:41  Rommel
-- * avoid integer overflows during throughput calculation
-- *
-- * Revision 1.12  2000/12/01 15:57:57  Rommel
-- * *** empty log message ***
-- *
-- * Revision 1.11  2000/03/01 12:21:47  rommel
-- * fixed _INTEGRAL_MAX_BITS problem for WIN32
-- *
-- * Revision 1.10  1999/10/28 17:36:57  rommel
-- * fixed OS/2 timer code
-- *
-- * Revision 1.9  1999/10/28 17:04:12  rommel
-- * fixed timer code
-- *
-- * Revision 1.8  1999/10/24 19:08:20  rommel
-- * imported DOS support from G. Vanem <giva@bgnett.no>
-- *
-- *
-- * Revision 1.8  1999/10/12 11:02:00  giva
-- * added Watt-32 with djgpp support. Added debug mode.
-- * G. Vanem <giva@bgnett.no>
-- *
-- * Revision 1.7  1999/06/13 18:42:25  rommel
-- * added Linux port with patches from Detlef Plotzky <plo@bvu.de>
-- *
-- * Revision 1.6  1998/10/12 11:14:58  rommel
-- * change to malloc'ed (and tiled) memory for transfer buffers
-- * (hint from Guenter Kukkukk <kukuk@berlin.snafu.de>)
-- * for increased performance
-- *
-- * Revision 1.5  1998/07/31 14:15:03  rommel
-- * added random buffer data
-- * fixed bugs
-- *
-- * Revision 1.4  1997/09/12 17:35:04  rommel
-- * termination bug fixes
-- *
-- * Revision 1.3  1997/09/12 12:00:15  rommel
-- * added Win32 port
-- * (tested for Windows NT only)
-- *
-- * Revision 1.2  1997/09/12 10:44:22  rommel
-- * added TCP/IP and a command line interface
-- *
-- * Revision 1.1  1996/09/25 08:42:29  rommel
-- * Initial revision
-- *
-- */
--
--#ifdef WIN32
--#define _INTEGRAL_MAX_BITS 64
--#endif
--
--#include <stdio.h>
--#include <stdlib.h>
--#include <string.h>
--#include <ctype.h>
--#include <signal.h>
--#if defined(UNIX) || defined(DJGPP)
--#include <sys/time.h>
--#include <unistd.h>
--#include <errno.h>
--#else
--#include <process.h>
--#include "getopt.h"
--#endif
--
--#define DEFAULTPORT 0x494F /* "IO" */
--#define DEFAULTNBSRV "NETIOSRV"
--#define DEFAULTNBCLT "NETIOCLT"
--#define THREADSTACK 65536
--
--/* TCP/IP system specific details */
--
--#ifdef OS2
--
--#define BSD_SELECT
--#include <types.h>
--#include <netinet/in.h>
--#include <sys/select.h>
--#include <sys/socket.h>
--#include <sys/time.h>
--#include <netdb.h>
--
--#ifdef __IBMC__
--#define newthread(entry) (_beginthread(entry, 0, THREADSTACK, 0) == -1)
--#else
--#define newthread(entry) (_beginthread(entry, THREADSTACK, 0) == -1)
--#endif
--#define THREAD void
--#define THREADRESULT 
--
--#endif /* OS2 */
--
--#ifdef WATT32
--
--#include <tcp.h>       /* sock_init() etc. */
--#include <netinet/in.h>
--#include <sys/socket.h>
--#include <netdb.h>
--#define soclose     close_s
--#define select      select_s
--#define psock_errno perror
--
--#endif /* WATT32 */
--
--#ifdef WIN32
--
--#include <windows.h>
--#include <winsock.h>
--#define soclose closesocket
--
--int sock_init(void)
--{
--  WSADATA wsaData;
--  return WSAStartup(MAKEWORD(1, 1), &wsaData);
--}
--
--void psock_errno(char *text)
--{
--  int rc = WSAGetLastError();
--  printf("%s: error code %d\n", text, rc);
--}
--
--#ifdef __IBMC__
--#define newthread(entry) (_beginthread(entry, 0, THREADSTACK, 0) == -1)
--#else
--#define newthread(entry) (_beginthread(entry, THREADSTACK, 0) == -1)
--#endif
--#define THREAD void
--#define THREADRESULT 
--
--#endif /* WIN32 */
--
--#ifdef UNIX
--
--#include <sys/types.h>
--#include <sys/socket.h>
--#include <sys/time.h>
--#include <time.h>
--#include <netinet/in.h>
--#include <netdb.h>
--
--#define psock_errno(x) perror(x)
--#define soclose(x) close(x)
--
--int sock_init(void)
--{
--  return 0;
--}
--
--#include <pthread.h>
--pthread_t thread;
--#define newthread(entry) (pthread_create(&thread, 0, entry, 0) != 0)
--#define THREAD void*
--#define THREADRESULT ((void*)0)
--
--#endif /* UNIX */
--
--#ifdef SOCKLEN_T
--typedef socklen_t socklen_type;
--#else
--typedef size_t socklen_type;
--#endif
--
--/* global data */
--
--#ifndef max
--#define max(x, y) ((x) > (y) ? (x) : (y))
--#endif
--
--#ifndef min
--#define min(x, y) ((x) < (y) ? (x) : (y))
--#endif
--
--#ifndef EINTR
--#define EINTR 0
--#endif
--
--int nSizes[] = {1024, 2048, 4096, 8192, 16384, 32768};
--size_t nnSizes = sizeof(nSizes) / sizeof(int);
--#define NMAXSIZE 65536
--
--int tSizes[] = {1024, 2048, 4096, 8192, 16384, 32767};
--size_t ntSizes = sizeof(tSizes) / sizeof(int);
--#define TMAXSIZE 65536
--
--#define INTERVAL 6
--
--/* you may need to adapt this to your platform/compiler */
--typedef unsigned int uint32;
--
--typedef struct
--{
--  uint32 cmd;
--  uint32 data;
--}
--CONTROL;
--
--#define CMD_QUIT  0
--#define CMD_C2S   1
--#define CMD_S2C   2
--#define CMD_RES   3
--
--#define CTLSIZE sizeof(CONTROL)
--
--/* timer code */
--
--int bTimeOver;
--
--#ifdef OS2
--
--#define INCL_DOS
--#define INCL_NOPM
--#include <os2.h>
--
--typedef QWORD TIMER;
--
--void APIENTRY TimerThread(ULONG nSeconds)
--{
--  HEV hSem;
--  HTIMER hTimer;
--
--  DosCreateEventSem(0, &hSem, DC_SEM_SHARED, 0);
--
--  DosAsyncTimer(nSeconds * 1000, (HSEM) hSem, &hTimer);
--  DosWaitEventSem(hSem, SEM_INDEFINITE_WAIT);
--  DosStopTimer(hTimer);
--
--  DosCloseEventSem(hSem);
--
--  bTimeOver = 1;
--
--  DosExit(EXIT_THREAD, 0);
--}
--
--int StartAlarm(long nSeconds)
--{
--  TID ttid;
--
--  bTimeOver = 0;
--
--  if (DosCreateThread(&ttid, TimerThread, nSeconds, 0, THREADSTACK))
--    return printf("Cannot create timer thread.\n"), -1;
--
--  return 0;
--}
--
--int StartTimer(TIMER *nStart)
--{
--  if (DosTmrQueryTime(nStart))
--    return printf("Timer error.\n"), -1;
--
--  return 0;
--}
--
--long StopTimer(TIMER *nStart, int nAccuracy)
--{
--  TIMER nStop;
--  ULONG nFreq;
--
--  if (DosTmrQueryTime(&nStop))
--    return printf("Timer error.\n"), -1;
--  if (DosTmrQueryFreq(&nFreq))
--    return printf("Timer error.\n"), -1;
--
--  nFreq = (nFreq + nAccuracy / 2) / nAccuracy;
--
--  return (* (long long *) &nStop - * (long long *) nStart) / nFreq;
--}
--
--#endif /* OS2 */
--
--#ifdef WIN32
--
--typedef LARGE_INTEGER TIMER;
--
--#define sleep(x) Sleep((x) * 1000);
--
--DWORD CALLBACK TimerThread(void *pArg)
--{
--  long nSeconds = * (long *) pArg;
--
--  Sleep(nSeconds * 1000);
--  bTimeOver = 1;
--
--  return 0;
--}
--
--int StartAlarm(long nSeconds)
--{
--  static long sSeconds;
--  DWORD ttid;
--
--  sSeconds = nSeconds;
--
--  bTimeOver = 0;
--
--  if (CreateThread(0, THREADSTACK, TimerThread, (void *) &sSeconds, 0, &ttid) == NULL)
--    return printf("Cannot create timer thread.\n"), -1;
--
--  return 0;
--}
--
--int StartTimer(TIMER *nStart)
--{
--  if (!QueryPerformanceCounter(nStart))
--    return printf("Timer error.\n"), -1;
--
--  return 0;
--}
--
--long StopTimer(TIMER *nStart, int nAccuracy)
--{
--  TIMER nStop, nFreq;
--
--  if (!QueryPerformanceCounter(&nStop))
--    return printf("Timer error.\n"), -1;
--  if (!QueryPerformanceFrequency(&nFreq))
--    return printf("Timer error.\n"), -1;
--
--  nFreq.QuadPart = (nFreq.QuadPart + nAccuracy / 2) / nAccuracy;
--
--  return (nStop.QuadPart - nStart->QuadPart) / nFreq.QuadPart;
--}
--
--#endif /* WIN32 */
--
--#if defined(UNIX) || defined(DJGPP)
--
--typedef struct timeval TIMER;
--
--void on_alarm(int signum)
--{
--  alarm(0);
--  bTimeOver = 1;
--}
--
--int StartAlarm(long nSeconds)
--{
--  bTimeOver = 0;
--  signal(SIGALRM, on_alarm);
--  alarm(nSeconds);
--  return 0;
--}
--
--int StartTimer(TIMER *nStart)
--{
--  struct timezone tz = {0, 0};
--
--  gettimeofday(nStart, &tz);
--
--  return 0;
--}
--
--long StopTimer(TIMER *nStart, int nAccuracy)
--{
--  struct timezone tz = {0, 0};
--  TIMER nStop;
--
--  gettimeofday(&nStop, &tz);
--
--  return (nStop.tv_sec - nStart->tv_sec) * nAccuracy
--       + (nStop.tv_usec - nStart->tv_usec) * nAccuracy / 1000000;
--}
--
--#endif /* UNIX || DJGPP */
--
--/* initialize data to transfer */
--
--void GenerateRandomData(char *cBuffer, size_t nSize)
--{
--  if (cBuffer != NULL)
--  {
--    size_t i;
-- 
--    cBuffer[0] = 0;
--    srand(time(NULL));
-- 
--    for (i = 1; i < nSize; i++)
--      cBuffer[i] = (char) rand();
--  }
--}
-- 
--char *InitBuffer(size_t nSize)
--{
-- char *cBuffer = malloc(nSize); 
-- GenerateRandomData(cBuffer, nSize); 
-- return cBuffer;
--}
--
--char *PacketSize(int nSize)
--{
--  static char szBuffer[64];
--
--  if ((nSize % 1024) == 0 || (nSize % 1024) == 1023)
--    sprintf(szBuffer, "%2dk", (nSize + 512) / 1024);
--  else
--    sprintf(szBuffer, "%d", nSize);
--
--  return szBuffer;
--}
--
--/* print results */
--
--typedef enum {nf_auto, nf_bytes, nf_kbytes, nf_mbytes, nf_gbytes} numberformat;
--numberformat nFormat = nf_auto;
--
--void print_result(long long nData, long nTime)
--{
--  numberformat nThisFormat = nFormat;
--  double nResult;
--  
--  if (nThisFormat == nf_auto)
--  {
--    if (nData < 10 * 1024 * INTERVAL)
--      nThisFormat = nf_bytes;
--    else if (nData < 10 * 1024 * 1024 * INTERVAL)
--      nThisFormat = nf_kbytes;
--    else if (nData < (long long) 1024 * 1024 * 1024 * INTERVAL)
--      nThisFormat = nf_mbytes;
--    else
--      nThisFormat = nf_gbytes;
--  }
--
--  switch(nThisFormat)
--  {
--  case nf_bytes:
--    nResult = (double) nData * 1024 / nTime;
--    printf(" %0.0f Byte/s", nResult);
--    break;
--
--  case nf_kbytes:
--    nResult = (double) nData / nTime;
--    printf(" %0.2f KByte/s", nResult);
--    break;
--
--  case nf_mbytes:
--    nResult = (double) nData / nTime / 1024;
--    printf(" %0.2f MByte/s", nResult);
--    break;
--
--  case nf_gbytes:
--    nResult = (double) nData / nTime / 1024 / 1024;
--    printf(" %0.3f GByte/s", nResult);
--    break;
--  }
--}
--
--/* TCP/IP code */
--
--int send_data(int socket, void *buffer, size_t size, int flags)
--{
--  int rc = send(socket, buffer, size, flags);
--
--  if (rc < 0)
--  {
--    psock_errno("send()");
--    return -1;
--  }
--
--  if (rc != size)
--    return 1;
--
--  return 0;
--}
--
--int recv_data(int socket, void *buffer, size_t size, int flags)
--{
--  size_t rc = recv(socket, buffer, size, flags);
--
--  if (rc < 0)
--  {
--    psock_errno("recv()");
--    return -1;
--  }
--
--  if (rc != size)
--    return 1;
--
--  return 0;
--}
--
--const int sobufsize = 131072;
--int nPort = DEFAULTPORT;
--int nAuxPort = DEFAULTPORT + 1;
--struct in_addr addr_server;
--struct in_addr addr_local;
--
--int udpsocket, udpd;
--unsigned long nUDPCount;
--long long nUDPData;
--
--THREAD TCP_Server(void *arg)
--{
--  char *cBuffer;
--  CONTROL ctl;
--  TIMER nTimer;
--  long nTime;
--  long long nData;
--  struct sockaddr_in sa_server, sa_client;
--  int server, client;
--  socklen_type length;
--  struct timeval tv;
--  fd_set fds;
--  int rc;
--  int nByte;
--
--  if ((cBuffer = InitBuffer(TMAXSIZE)) == NULL)
--  {
--    perror("malloc()");
--    return THREADRESULT;
--  }
--
--  if ((server = socket(PF_INET, SOCK_STREAM, 0)) < 0)
--  {
--    psock_errno("socket()");
--    free(cBuffer);
--    return THREADRESULT;
--  }
--
--  setsockopt(server, SOL_SOCKET, SO_RCVBUF, (char *) &sobufsize, sizeof(sobufsize));
--  setsockopt(server, SOL_SOCKET, SO_SNDBUF, (char *) &sobufsize, sizeof(sobufsize));
--
--  sa_server.sin_family = AF_INET;
--  sa_server.sin_port = htons(nPort);
--  sa_server.sin_addr = addr_local;
--
--  if (bind(server, (struct sockaddr *) &sa_server, sizeof(sa_server)) < 0)
--  {
--    psock_errno("bind()");
--    soclose(server);
--    free(cBuffer);
--    return THREADRESULT;
--  }
--
--  if (listen(server, 2) != 0)
--  {
--    psock_errno("listen()");
--    soclose(server);
--    free(cBuffer);
--    return THREADRESULT;
--  }
--
--  for (;;)
--  {
--    printf("TCP server listening.\n");
--
--    FD_ZERO(&fds);
--    FD_SET(server, &fds);
--    tv.tv_sec  = 3600;
--    tv.tv_usec = 0;
--
--    if ((rc = select(FD_SETSIZE, &fds, 0, 0, &tv)) < 0)
--    {
--      psock_errno("select()");
--      break;
--    }
--
--    if (rc == 0 || FD_ISSET(server, &fds) == 0)
--      continue;
--
--    length = sizeof(sa_client);
--    if ((client = accept(server, (struct sockaddr *) &sa_client, &length)) == -1)
--      continue;
--
--    setsockopt(client, SOL_SOCKET, SO_RCVBUF, (char *) &sobufsize, sizeof(sobufsize));
--    setsockopt(client, SOL_SOCKET, SO_SNDBUF, (char *) &sobufsize, sizeof(sobufsize));
--
--    printf("TCP connection established ... ");
--    fflush(stdout);
--
--    for (;;)
--    {
--      if (recv_data(client, (void *) &ctl, CTLSIZE, 0))
--	break;
--
--      ctl.cmd = ntohl(ctl.cmd);
--      ctl.data = ntohl(ctl.data);
--
--      if (ctl.cmd == CMD_C2S)
--      {
--	StartTimer(&nTimer);
--
--	printf("\nReceiving from client, packet size %s ... ", PacketSize(ctl.data));
--	nData = 0;
--
--	do
--	{
--	  for (nByte = 0; nByte < ctl.data; )
--	  {
--	    rc = recv(client, cBuffer + nByte, ctl.data - nByte, 0);
--
--	    if (rc < 0 && errno != EINTR)
--	    {
--	      psock_errno("recv()");
--	      break;
--	    }
--	    
--	    if (rc > 0)
--	      nByte += rc;
--	  }
--
--	  nData += ctl.data;
--	}
--	while (cBuffer[0] == 0 && rc > 0);
--
--	if ((nTime = StopTimer(&nTimer, 1024)) != -1)
--	  print_result(nData, nTime);
--      }
--      else if (ctl.cmd == CMD_S2C)
--      {
--	if (StartAlarm(INTERVAL) == 0)
--	{
--	  StartTimer(&nTimer);
--
--	  printf("\nSending to client, packet size %s ... ", PacketSize(ctl.data));
--	  cBuffer[0] = 0;
--	  nData = 0;
--
--	  while (!bTimeOver)
--	  {
--	    //GenerateRandomData(cBuffer, ctl.data);
--
--	    for (nByte = 0; nByte < ctl.data; )
--	    {
--	      rc = send(client, cBuffer + nByte, ctl.data - nByte, 0);
--
--	      if (rc < 0 && errno != EINTR)
--	      {
--		psock_errno("send()");
--		break;
--	      }
--
--	      if (rc > 0)
--		nByte += rc;
--	    }
--
--	    nData += ctl.data;
--	  }
--
--	  cBuffer[0] = 1;
--
--	  if (send_data(client, cBuffer, ctl.data, 0))
--	    break;
--
--	  if ((nTime = StopTimer(&nTimer, 1024)) != -1)
--	    print_result(nData, nTime);
--	}
--      }
--      else /* quit */
--	break;
--    }
--
--    printf("\nDone.\n");
--
--    soclose(client);
--
--    if (rc < 0)
--      break;
--  }
--
--  soclose(server);
--  free(cBuffer);
--
--  return THREADRESULT;
--}
--
--void TCP_Bench(void *arg)
--{
--  char *cBuffer;
--  CONTROL ctl;
--  TIMER nTimer;
--  long nTime;
--  long long nData;
--  int i;
--  struct sockaddr_in sa_server, sa_client;
--  int server;
--  int rc;
--  int nByte;
--
--  if ((cBuffer = InitBuffer(TMAXSIZE)) == NULL)
--  {
--    perror("malloc()");
--    return;
--  }
--
--  if ((server = socket(PF_INET, SOCK_STREAM, 0)) < 0)
--  {
--    psock_errno("socket()");
--    free(cBuffer);
--    return;
--  }
--
--  setsockopt(server, SOL_SOCKET, SO_RCVBUF, (char *) &sobufsize, sizeof(sobufsize));
--  setsockopt(server, SOL_SOCKET, SO_SNDBUF, (char *) &sobufsize, sizeof(sobufsize));
--
--  sa_client.sin_family = AF_INET;
--  sa_client.sin_port = htons(0);
--  sa_client.sin_addr = addr_local;
--
--  if (bind(server, (struct sockaddr *) &sa_client, sizeof(sa_client)) < 0)
--  {
--    psock_errno("bind()");
--    soclose(server);
--    free(cBuffer);
--    return THREADRESULT;
--  }
--
--  sa_server.sin_family = AF_INET;
--  sa_server.sin_port = htons(nPort);
--  sa_server.sin_addr = addr_server;
--
--  if (connect(server, (struct sockaddr *) &sa_server, sizeof(sa_server)) < 0)
--  {
--    psock_errno("connect()");
--    soclose(server);
--    free(cBuffer);
--    return;
--  }
--
--  printf("\nTCP connection established.\n");
--
--  for (i = 0; i < ntSizes; i++)
--  {
--    printf("Packet size %s bytes: ", PacketSize(tSizes[i]));
--    fflush(stdout);
--
--    /* tell the server we will send it data now */
--
--    ctl.cmd = htonl(CMD_C2S);
--    ctl.data = htonl(tSizes[i]);
--
--    if (send_data(server, (void *) &ctl, CTLSIZE, 0))
--      break;
--
--    /* 1 - Tx test */
--
--    if (StartAlarm(INTERVAL) == 0)
--    {
--      StartTimer(&nTimer);
--      nData = 0;
--      cBuffer[0] = 0;
--
--      while (!bTimeOver)
--      {
--	//GenerateRandomData(cBuffer, tSizes[i]);
--
--	for (nByte = 0; nByte < tSizes[i]; )
--	{
--	  rc = send(server, cBuffer + nByte, tSizes[i] - nByte, 0);
--
--	  if (rc < 0 && errno != EINTR)
--	  {
--	    psock_errno("send()");
--	    break;
--	  }
--	  
--	  if (rc > 0)
--	    nByte += rc;
--	}
--
--	nData += tSizes[i];
--      }
--
--      if ((nTime = StopTimer(&nTimer, 1024)) == -1)
--	printf(" (failed)");
--      else
--	print_result(nData, nTime);
--
--      printf(" Tx, ");
--      fflush(stdout);
--
--      cBuffer[0] = 1;
--
--      if (send_data(server, cBuffer, tSizes[i], 0))
--	break;
--    }
--
--    /* tell the server we expect him to send us data now */
--
--    ctl.cmd = htonl(CMD_S2C);
--    ctl.data = htonl(tSizes[i]);
--
--    if (send_data(server, (void *) &ctl, CTLSIZE, 0))
--      break;
--
--    /* 2 - Rx test */
--
--    StartTimer(&nTimer);
--    nData = 0;
--
--    do
--    {
--      for (nByte = 0; nByte < tSizes[i]; )
--      {
--	rc = recv(server, cBuffer + nByte, tSizes[i] - nByte, 0);
--
--	if (rc < 0 && errno != EINTR)
--	{
--	  psock_errno("recv()");
--	  break;
--	}
--	  
--	if (rc > 0)
--	  nByte += rc;
--      }
--
--      nData += tSizes[i];
--    }
--    while (cBuffer[0] == 0 && rc > 0);
--
--    if ((nTime = StopTimer(&nTimer, 1024)) == -1)
--      printf(" (failed)");
--    else
--      print_result(nData, nTime);
--
--    printf(" Rx.\n");
--  }
--
--  ctl.cmd = htonl(CMD_QUIT);
--  ctl.data = 0;
--
--  send_data(server, (void *) &ctl, CTLSIZE, 0);
--
--  printf("Done.\n");
--
--  soclose(server);
--  free(cBuffer);
--}
--
--THREAD UDP_Receiver(void *arg)
--{
--  char *cBuffer;
--  struct sockaddr_in sa_server, sa_client;
--  int rc;
--  socklen_type nBytes;
--
--  if ((cBuffer = InitBuffer(TMAXSIZE)) == NULL)
--  {
--    perror("malloc()");
--    return THREADRESULT;
--  }
--
--  if ((udpsocket = socket(PF_INET, SOCK_DGRAM, 0)) < 0)
--  {
--    psock_errno("socket(DGRAM)");
--    free(cBuffer);
--    return THREADRESULT;
--  }
--  
--  setsockopt(udpsocket, SOL_SOCKET, SO_RCVBUF, (char *) &sobufsize, sizeof(sobufsize));
--  setsockopt(udpsocket, SOL_SOCKET, SO_SNDBUF, (char *) &sobufsize, sizeof(sobufsize));
--
--  sa_server.sin_family = AF_INET;
--  sa_server.sin_port = htons(nAuxPort);
--  sa_server.sin_addr = addr_local;
--
--  if (bind(udpsocket, (struct sockaddr *) &sa_server, sizeof(sa_server)) < 0)
--  {
--    psock_errno("bind(DGRAM)");
--    soclose(udpsocket);
--    free(cBuffer);
--    return THREADRESULT;
--  }
--
--  udpd = 1;
--
--  for (;;)
--  {
--    nBytes = sizeof(sa_client);
--    rc = recvfrom(udpsocket, cBuffer, TMAXSIZE, 0, (struct sockaddr *) &sa_client, &nBytes);
--
--    if (rc < 0 && errno != EINTR)
--      psock_errno("recvfrom()");
--
--    if (rc > 0)
--    {
--      nUDPCount++;
--      nUDPData += rc;
--    }
--  }
--
--  soclose(udpsocket);
--  free(cBuffer);
--
--  return THREADRESULT;
--}
--
--THREAD UDP_Server(void *arg)
--{
--  char *cBuffer;
--  CONTROL ctl;
--  TIMER nTimer;
--  long nTime;
--  long long nData;
--  struct sockaddr_in sa_server, sa_client;
--  int server, client;
--  struct timeval tv;
--  fd_set fds;
--  int rc, nByte;
--  socklen_type nLength;
--
--  if ((cBuffer = InitBuffer(TMAXSIZE)) == NULL)
--  {

*** DIFF OUTPUT TRUNCATED AT 1000 LINES ***



Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201503231115.t2NBFaOJ010838>