diff -urN webbench-1.5/Makefile webbench-1.5-bak/Makefile --- webbench-1.5/Makefile 2004-06-25 17:59:19.000000000 +0800 +++ webbench-1.5-bak/Makefile 2020-05-03 15:32:02.994638565 +0800 @@ -12,11 +12,10 @@ -ctags *.c install: webbench + install -d $(DESTDIR)$(PREFIX)/bin + install -d $(DESTDIR)$(PREFIX)/share/man/man1 install -s webbench $(DESTDIR)$(PREFIX)/bin - install -m 644 webbench.1 $(DESTDIR)$(PREFIX)/man/man1 - install -d $(DESTDIR)$(PREFIX)/share/doc/webbench - install -m 644 debian/copyright $(DESTDIR)$(PREFIX)/share/doc/webbench - install -m 644 debian/changelog $(DESTDIR)$(PREFIX)/share/doc/webbench + install -m 644 webbench.1 $(DESTDIR)$(PREFIX)/share/man/man1 webbench: webbench.o Makefile $(CC) $(CFLAGS) $(LDFLAGS) -o webbench webbench.o $(LIBS) @@ -28,13 +27,13 @@ -debian/rules clean rm -rf $(TMPDIR) install -d $(TMPDIR) - cp -p Makefile webbench.c socket.c webbench.1 $(TMPDIR) + cp -p Makefile webbench.c webbench.1 $(TMPDIR) install -d $(TMPDIR)/debian -cp -p debian/* $(TMPDIR)/debian ln -sf debian/copyright $(TMPDIR)/COPYRIGHT ln -sf debian/changelog $(TMPDIR)/ChangeLog -cd $(TMPDIR) && cd .. && tar cozf webbench-$(VERSION).tar.gz webbench-$(VERSION) -webbench.o: webbench.c socket.c Makefile +webbench.o: webbench.c Makefile .PHONY: clean install all tar diff -urN webbench-1.5/socket.c webbench-1.5-bak/socket.c --- webbench-1.5/socket.c 2004-01-12 22:46:42.000000000 +0800 +++ webbench-1.5-bak/socket.c 1970-01-01 08:00:00.000000000 +0800 @@ -1,58 +0,0 @@ -/* $Id: socket.c 1.1 1995/01/01 07:11:14 cthuang Exp $ - * - * This module has been modified by Radim Kolar for OS/2 emx - */ - -/*********************************************************************** - module: socket.c - program: popclient - SCCS ID: @(#)socket.c 1.5 4/1/94 - programmer: Virginia Tech Computing Center - compiler: DEC RISC C compiler (Ultrix 4.1) - environment: DEC Ultrix 4.3 - description: UNIX sockets code. - ***********************************************************************/ - -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include -#include - -int Socket(const char *host, int clientPort) -{ - int sock; - unsigned long inaddr; - struct sockaddr_in ad; - struct hostent *hp; - - memset(&ad, 0, sizeof(ad)); - ad.sin_family = AF_INET; - - inaddr = inet_addr(host); - if (inaddr != INADDR_NONE) - memcpy(&ad.sin_addr, &inaddr, sizeof(inaddr)); - else - { - hp = gethostbyname(host); - if (hp == NULL) - return -1; - memcpy(&ad.sin_addr, hp->h_addr, hp->h_length); - } - ad.sin_port = htons(clientPort); - - sock = socket(AF_INET, SOCK_STREAM, 0); - if (sock < 0) - return sock; - if (connect(sock, (struct sockaddr *)&ad, sizeof(ad)) < 0) - return -1; - return sock; -} - diff -urN webbench-1.5/webbench.c webbench-1.5-bak/webbench.c --- webbench-1.5/webbench.c 2004-06-25 17:50:00.000000000 +0800 +++ webbench-1.5-bak/webbench.c 2020-05-03 15:15:41.193484347 +0800 @@ -14,8 +14,15 @@ * 2 - bad param * 3 - internal error, fork failed * - */ -#include "socket.c" + */ +#include +#include +#include +#include +#include +#include +#include + #include #include #include @@ -99,6 +106,48 @@ " -V|--version Display program version.\n" ); }; + +int createSock(const char * addr, unsigned short port) +{ + int sock; + int ret; + struct sockaddr_in svr_addr; + struct hostent *host = NULL; + + if (!addr) { + return -1; + } + bzero(&svr_addr,sizeof(struct sockaddr_in)); + + svr_addr.sin_addr.s_addr=inet_addr(addr); + if (svr_addr.sin_addr.s_addr == INADDR_NONE) { + //try gethostbyname + host = gethostbyname(addr); + if (!host) { + printf("Can not resolve address : %s\n", addr); + return -1; + } + memcpy(&svr_addr.sin_addr, host->h_addr, host->h_length); + } + + sock = socket(AF_INET, SOCK_STREAM, 0); + if (sock < 0) { + return -1; + } + + svr_addr.sin_family=AF_INET; + svr_addr.sin_port = htons(port); + + ret = connect(sock, (struct sockaddr*)&svr_addr, sizeof(svr_addr)); + if (ret < 0) { + printf("Can not connect to address %s:%d\n", addr, port); + return -1; + } + + return sock; +} + + int main(int argc, char *argv[]) { int opt=0; @@ -298,7 +347,7 @@ FILE *f; /* check avaibility of target server */ - i=Socket(proxyhost==NULL?host:proxyhost,proxyport); + i=createSock(proxyhost==NULL?host:proxyhost,proxyport); if(i<0) { fprintf(stderr,"\nConnect to server failed. Aborting benchmark.\n"); return 1; @@ -421,7 +470,7 @@ } return; } - s=Socket(host,port); + s=createSock(host,port); if(s<0) { failed++;continue;} if(rlen!=write(s,req,rlen)) {failed++;close(s);continue;} if(http10==0)