httpd-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Dirk-Willem van Gulik <di...@webweaving.org>
Subject Other methods than GET
Date Thu, 18 Dec 2003 14:25:44 GMT

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;
 	    }

Mime
View raw message