Hello,
This is a apache bench patch. Since ab support only HEAD, GET and POST, I added -m
option to specify methods so that we can do PROFIND or PROPATCH benchmark using ab.
Index: ab.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/support/ab.c,v
retrieving revision 1.116
diff -u -r1.116 ab.c
--- ab.c 3 Aug 2002 22:01:40 -0000 1.116
+++ ab.c 30 Aug 2002 04:48:02 -0000
@@ -300,6 +300,7 @@
char *gnuplot; /* GNUplot file */
char *csvperc; /* CSV Percentile file */
char url[1024];
+char method[256]="GET"; /* Method name. Default is GET */
char * fullurl, * colonhost;
int isproxy = 0;
apr_interval_time_t aprtimeout = apr_time_from_sec(30); /* timeout value */
@@ -1573,14 +1574,14 @@
"Host: %s%s\r\n"
"Accept: */*\r\n"
"%s" "\r\n",
- (posting == 0) ? "GET" : "HEAD",
+ (posting == 0) ? method : "HEAD",
(isproxy) ? fullurl : path,
AP_AB_BASEREVISION,
keepalive ? "Connection: Keep-Alive\r\n" : "",
cookie, auth, host_field, colonhost, hdrs);
}
else {
- sprintf(request, "POST %s HTTP/1.0\r\n"
+ sprintf(request, "%s %s HTTP/1.0\r\n"
"User-Agent: ApacheBench/%s\r\n"
"%s" "%s" "%s"
"Host: %s%s\r\n"
@@ -1589,6 +1590,7 @@
"Content-type: %s\r\n"
"%s"
"\r\n",
+ method,
(isproxy) ? fullurl : path,
AP_AB_BASEREVISION,
keepalive ? "Connection: Keep-Alive\r\n" : "",
@@ -1765,7 +1767,8 @@
fprintf(stderr, " -n requests Number of requests to perform\n");
fprintf(stderr, " -c concurrency Number of multiple requests to make\n");
fprintf(stderr, " -t timelimit Seconds to max. wait for responses\n");
- fprintf(stderr, " -p postfile File containing data to POST\n");
+ fprintf(stderr, " -p postfile File containing data to POST, PUT or etc\n");
+ fprintf(stderr, " -m method Method to test\n");
fprintf(stderr, " -T content-type Content-type header for POSTing\n");
fprintf(stderr, " -v verbosity How much troubleshooting info to print\n");
fprintf(stderr, " -w Print out results in HTML tables\n");
@@ -1954,7 +1957,7 @@
#endif
apr_getopt_init(&opt, cntxt, argc, argv);
- while ((status = apr_getopt(opt, "n:c:t:T:p:v:kVhwix:y:z:C:H:P:A:g:X:de:Sq"
+ while ((status = apr_getopt(opt, "n:c:t:T:p:v:m:kVhwix:y:z:C:H:P:A:g:X:de:Sq"
#ifdef USE_SSL
"s"
#endif
@@ -2021,6 +2024,9 @@
break;
case 'T':
strcpy(content_type, optarg);
+ break;
+ case 'm': /* method */
+ strcpy(method, optarg);
break;
case 'C':
strncat(cookie, "Cookie: ", sizeof(cookie));
--
Sung Kim <[EMAIL PROTECTED]>
http://www.cse.ucsc.edu/~hunkim
"Dreams become reality!"