dirkx       99/09/27 13:27:37

  Modified:    src/support ab.c ab.8
  Log:
  Adding a fifth, sixth or seventh wheel to this croaking cart... HEAD support.
  
  Revision  Changes    Path
  1.31      +20 -9     apache-1.3/src/support/ab.c
  
  Index: ab.c
  ===================================================================
  RCS file: /x3/home/cvs/apache-1.3/src/support/ab.c,v
  retrieving revision 1.30
  retrieving revision 1.31
  diff -u -r1.30 -r1.31
  --- ab.c      1999/08/25 13:02:04     1.30
  +++ ab.c      1999/09/27 20:27:24     1.31
  @@ -254,7 +254,7 @@
       out[0].iov_base = request;
       out[0].iov_len = reqlen;
   
  -    if (posting) {
  +    if (posting>0) {
        out[1].iov_base = postdata;
        out[1].iov_len = postlen;
        outcnt = 2;
  @@ -263,7 +263,7 @@
       writev(c->fd,out, outcnt);
   #else
       write(c->fd,request,reqlen);
  -    if (posting) {
  +    if (posting>0) {
           write(c->fd,postdata,postlen);
           totalposted += (reqlen + postlen);
       }
  @@ -331,7 +331,7 @@
       if (keepalive)
        printf("Keep-Alive requests:    %d\n", doneka);
       printf("Total transferred:      %d bytes\n", totalread);
  -    if (posting)
  +    if (posting>0)
        printf("Total POSTed:           %d\n", totalposted);
       printf("HTML transferred:       %d bytes\n", totalbread);
   
  @@ -340,7 +340,7 @@
        printf("Requests per second:    %.2f\n", 1000 * (float) (done) / 
timetaken);
        printf("Transfer rate:          %.2f kb/s received\n",
               (float) (totalread) / timetaken);
  -     if (posting) {
  +     if (posting>0) {
            printf("                        %.2f kb/s sent\n",
                   (float) (totalposted) / timetaken);
            printf("                        %.2f kb/s total\n",
  @@ -429,7 +429,7 @@
       printf("<tr %s><th colspan=2 %s>Total transferred:</th>"
           "<td colspan=2 %s>%d bytes</td></tr>\n",
           trstring, tdstring, tdstring, totalread);
  -    if (posting)
  +    if (posting>0)
        printf("<tr %s><th colspan=2 %s>Total POSTed:</th>"
               "<td colspan=2 %s>%d</td></tr>\n",
               trstring, tdstring, tdstring, totalposted);
  @@ -445,7 +445,7 @@
        printf("<tr %s><th colspan=2 %s>Transfer rate:</th>"
               "<td colspan=2 %s>%.2f kb/s received</td></tr>\n",
             trstring, tdstring, tdstring, (float) (totalread) / timetaken);
  -     if (posting) {
  +     if (posting>0) {
            printf("<tr %s><td colspan=2 %s>&nbsp;</td>"
                   "<td colspan=2 %s>%.2f kb/s sent</td></tr>\n",
                   trstring, tdstring, tdstring,
  @@ -769,13 +769,14 @@
       FD_ZERO(&writebits);
   
       /* setup request */
  -    if (!posting) {
  -     sprintf(request, "GET %s HTTP/1.0\r\n"
  +    if (posting <= 0) {
  +     sprintf(request, "%s %s HTTP/1.0\r\n"
                "User-Agent: ApacheBench/%s\r\n"
                "%s" "%s" "%s"
                "Host: %s\r\n"
                "Accept: */*\r\n"
                "%s" "\r\n",
  +             (posting == 0) ? "GET" : "HEAD",
                path,
                VERSION,
                keepalive ? "Connection: Keep-Alive\r\n" : "",
  @@ -890,6 +891,7 @@
       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");
  @@ -983,7 +985,7 @@
       auth[0] = '\0';
       hdrs[0] = '\0';
       optind = 1;
  -    while ((c = getopt(argc, argv, "n:c:t:T:p:v:kVhwx:y:z:C:H:P:A:")) > 0) {
  +    while ((c = getopt(argc, argv, "n:c:t:T:p:v:kVhwix:y:z:C:H:P:A:")) > 0) {
        switch (c) {
        case 'n':
            requests = atoi(optarg);
  @@ -997,7 +999,16 @@
        case 'c':
            concurrency = atoi(optarg);
            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;
            }
  
  
  
  1.7       +6 -1      apache-1.3/src/support/ab.8
  
  Index: ab.8
  ===================================================================
  RCS file: /x3/home/cvs/apache-1.3/src/support/ab.8,v
  retrieving revision 1.6
  retrieving revision 1.7
  diff -u -r1.6 -r1.7
  --- ab.8      1999/04/07 14:51:43     1.6
  +++ ab.8      1999/09/27 20:27:27     1.7
  @@ -1,5 +1,5 @@
   .TH ab 1 "March 1998"
  -.\" $Id: ab.8,v 1.6 1999/04/07 14:51:43 martin Exp $
  +.\" $Id: ab.8,v 1.7 1999/09/27 20:27:27 dirkx Exp $
   .\" Copyright (c) 1998-1999 The Apache Group. All rights reserved.
   .\"
   .\" Redistribution and use in source and binary forms, with or without
  @@ -59,6 +59,8 @@
   [
   .B \-k
   ] [
  +.B \-i
  +] [
   .BI \-n " requests"
   ] [
   .BI \-t " timelimit"
  @@ -112,6 +114,9 @@
   .B \-k 
   Enable the HTTP KeepAlive feature, i.e. perform multiple requests within one
   HTTP session instead. Default is no KeepAlive.
  +.TP 12
  +.B \-i
  +Use an HTTP 'HEAD' instead of the GET method. Cannot be mixed with POST.
   .TP 12
   .BI \-n " requests"
   Number of requests to perform for the benchmarking session.  The default is 
to
  
  
  

Reply via email to