diff --git a/webbench-1.5.tar.gz b/webbench-1.5.tar.gz new file mode 100644 index 0000000000000000000000000000000000000000..0827ad34a3547830287c65392d3731d5e3286428 Binary files /dev/null and b/webbench-1.5.tar.gz differ diff --git a/webbench-remove-socket-file-and-reimplement-function.patch b/webbench-remove-socket-file-and-reimplement-function.patch new file mode 100644 index 0000000000000000000000000000000000000000..95755047eddb384aaecf9cb5ae9fc31ba7d570df --- /dev/null +++ b/webbench-remove-socket-file-and-reimplement-function.patch @@ -0,0 +1,184 @@ +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) diff --git a/webbench.spec b/webbench.spec new file mode 100644 index 0000000000000000000000000000000000000000..eba3ffdd8d6b149ef180e561736a06a9a0de2b28 --- /dev/null +++ b/webbench.spec @@ -0,0 +1,45 @@ +#%global debug_package %{nil} + +Name: webbench +Version: 1.5 +Release: 1 +Summary: simple tool for benchmarking WWW or proxy servers +License: GPL +URL: http://home.tiscali.cz/~cz210552/webbench.html +Source0: http://home.tiscali.cz/~cz210552/distfiles/%{name}-%{version}.tar.gz + +Patch0: webbench-remove-socket-file-and-reimplement-function.patch + +BuildRequires: gcc + +%description +Web Bench is very simple tool for benchmarking WWW or proxy servers. Uses fork() for simulating multiple clients and can use HTTP/0.9-HTTP/1.1 requests. This benchmark is not very realistic, but it can test if your HTTPD can realy handle that many clients at once (try to run some CGIs) without taking your machine down. Displays pages/min and bytes/sec. Can be used in more aggressive mode with -f switch + +%prep +%setup -q -n %{name}-%{version}/ +#remove unclear license file socket.c and reimplement socket function. +%patch0 -p1 + +%build +%make_build + +%install +%{__make} install PREFIX="%{buildroot}%{_prefix}" + +%pre +%preun +%post +%postun + +%check + +%files +%license COPYRIGHT +%doc ChangeLog +%{_bindir}/* +%{_mandir}/* + +%changelog +* Sun Mar 29 2020 Wei Xiong +- Package init +