Needed to do things like PUT and PROPFIND from ab. This patch
may be of use to some. Not in anywhere near to a state to be commited.
Dw
Index: src/support/ab.c
===================================================================
RCS file: /home/cvs/apache-1.3/src/support/ab.c,v
retrieving revision 1.70
diff -u -r1.70 ab.c
--- src/support/ab.c 31 Jul 2003 20:30:26 -0000 1.70
+++ src/support/ab.c 18 Dec 2003 14:26:57 -0000
@@ -249,6 +249,7 @@
int proxyport = 0; /* proxy port */
int isproxy = 0;
char path[1024]; /* path name */
+char method[256]="GET"; /* Method name, default is GET */
char postfile[1024]; /* name of file containing post data */
char *postdata; /* *buffer containing data from postfile */
char *gnuplot; /* GNUplot file */
@@ -1262,7 +1263,7 @@
"Host: %s%s\r\n"
"Accept: */*\r\n"
"%s" "\r\n",
- (posting == 0) ? "GET" : "HEAD",
+ method,
url_on_request,
VERSION,
keepalive ? "Connection: Keep-Alive\r\n" : "",
@@ -1271,7 +1272,7 @@
}
else {
ap_snprintf(request, sizeof(request),
- "POST %s HTTP/1.0\r\n"
+ "%s %s HTTP/1.0\r\n"
"User-Agent: ApacheBench/%s\r\n"
"%s" "%s" "%s"
"Host: %s%s\r\n"
@@ -1280,6 +1281,7 @@
"Content-type: %s\r\n"
"%s"
"\r\n",
+ method,
url_on_request,
VERSION,
keepalive ? "Connection: Keep-Alive\r\n" : "",
@@ -1384,11 +1386,11 @@
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 containg data to POST\n");
+ fprintf(stderr, " -p postfile File containg data to post in body (use -m
POST for posting)\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");
- fprintf(stderr, " -i Use HEAD instead of GET\n");
fprintf(stderr, " -x attributes String to insert as table attributes\n");
fprintf(stderr, " -y attributes String to insert as tr attributes\n");
fprintf(stderr, " -z attributes String to insert as td or th attributes\n");
@@ -1515,7 +1517,7 @@
hdrs[0] = '\0';
proxyhost[0] = '\0';
optind = 1;
- while ((c = getopt(argc, argv, "n:c:t:T:p:v:kVhwix:y:z:C:H:P:A:g:X:de:Sq"
+ while ((c = getopt(argc, argv, "n:c:t:T:p:v:m:kVhwx:y:z:C:H:P:A:g:X:de:Sq"
#ifdef USE_SSL
"s"
#endif
@@ -1538,6 +1540,9 @@
case 'k':
keepalive = 1;
break;
+ case 'm':
+ strncpy(method,optarg,sizeof(method));
+ break;
case 'c':
concurrency = atoi(optarg);
break;
@@ -1553,16 +1558,7 @@
case 'S':
confidence = 0;
break;
- case 'i':
- if (posting == 1)
- err("Cannot mix POST and HEAD");
-
- posting = -1;
- break;
case 'p':
- if (posting != 0)
- err("Cannot mix POST and HEAD");
-
if (0 == (r = open_postfile(optarg))) {
posting = 1;
}