Commit 1f26ea4a authored by Dan Fandrich's avatar Dan Fandrich
Browse files

Added test case 1051 to test Location: following with PUT, as reported

by Ben Sutcliffe.  The test when run manually shows a problem in curl,
but the test harness web server doesn't run the test correctly so it's
disabled for now.
parent 912c29fd
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -10,6 +10,11 @@ Daniel Fandrich (29 Jul 2008)
- Fixed --use-ascii to properly convert text files on Symbian OS, MS-DOS
  and OS/2.

- Added test case 1051 to test Location: following with PUT, as reported
  by Ben Sutcliffe.  The test when run manually shows a problem in curl,
  but the test harness web server doesn't run the test correctly so it's
  disabled for now.

Daniel Fandrich (28 Jul 2008)
- Fixed display of the interface bind address in the trace output when it's
  an IPv6 address.
+1 −0
Original line number Diff line number Diff line
@@ -4,3 +4,4 @@
# per line.
# Lines starting with '#' letters are treated as comments.
1041
1051
+1 −1
Original line number Diff line number Diff line
@@ -54,7 +54,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
 test556 test1031 test628 test629 test630 test631 test632 test1032         \
 test1033 test539 test1034 test1035 test1036 test1037 test1038 test1039    \
 test1040 test1041 test1042 test1043 test1044 test1045 test1046 test1047   \
 test1048 test1049 test1050
 test1048 test1049 test1050 test1051

filecheck:
	@mkdir test-place; \

tests/data/test1051

0 → 100644
+103 −0
Original line number Diff line number Diff line
<testcase>
<info>
<keywords>
HTTP
HTTP PUT
followlocation
</keywords>

</info>
# Server-side
<reply>
<data>
HTTP/1.1 301 Redirect swsclose
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Location: data/10510002.txt?coolsite=yes
Content-Length: 0
Connection: close

</data>
<data2>
HTTP/1.1 100 Continue

HTTP/1.1 200 Followed here fine swsclose
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 51

If this is received, the location following worked
</data2>
<datacheck>
HTTP/1.1 301 Redirect
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Location: data/10510002.txt?coolsite=yes
Content-Length: 0
Connection: Keep-Alive

HTTP/1.1 100 Continue

HTTP/1.1 200 Followed here fine swsclose
Date: Thu, 29 Jul 2008 14:49:00 GMT
Server: test-server/fake
Content-Length: 51

If this is received, the location following worked
</datacheck>
</reply>

# Client-side
<client>
<server>
http
</server>
 <name>
HTTP PUT with Location: following
 </name>
 <command>
http://%HOSTIP:%HTTPPORT/want/1051 -L -T log/test1051.txt
</command>
<file name="log/test1051.txt">
Weird
     file
         to
   upload
for
   testing
the
   PUT
      feature
</file>
</client>

# Verify data after the test has been "shot"
<verify>
<strip>
^User-Agent:.*
</strip>
<protocol>
PUT /want/1051 HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 78
Expect: 100-continue

PUT /want/data/10510002.txt?coolsite=yes HTTP/1.1
Host: %HOSTIP:%HTTPPORT
Accept: */*
Content-Length: 78
Expect: 100-continue

Weird
     file
         to
   upload
for
   testing
the
   PUT
      feature
</protocol>
</verify>
</testcase>
+3 −3
Original line number Diff line number Diff line
@@ -351,7 +351,7 @@ int ProcessRequest(struct httprequest *req)
       headers, for the pipelining case mostly */
    req->checkindex += (end - line) + strlen(END_OF_HEADERS);

  /* **** Persistancy ****
  /* **** Persistency ****
   *
   * If the request is a HTTP/1.0 one, we close the connection unconditionally
   * when we're done.
@@ -539,7 +539,7 @@ static int get_request(curl_socket_t sock, struct httprequest *req)
    pipereq_length = req->offset - req->checkindex;
  }

  /*** Init the httpreqest structure properly for the upcoming request ***/
  /*** Init the httprequest structure properly for the upcoming request ***/

  req->checkindex = 0;
  req->offset = 0;
@@ -1049,7 +1049,7 @@ int main(int argc, char *argv[])
      send_doc(msgsock, &req);

      if((req.testno < 0) && (req.testno != DOCNUMBER_CONNECT)) {
        logmsg("special request received, no persistancy");
        logmsg("special request received, no persistency");
        break;
      }
      if(!req.open) {