Added test case 217 that verified CURLINFO_HTTP_CONNECTCODE, and I made the
authorDaniel Stenberg <daniel@haxx.se>
Tue, 21 Dec 2004 19:59:35 +0000 (19:59 +0000)
committerDaniel Stenberg <daniel@haxx.se>
Tue, 21 Dec 2004 19:59:35 +0000 (19:59 +0000)
-w option support 'http_connect' to make it easier to verify!

CHANGES
docs/curl.1
src/writeout.c
tests/data/Makefile.am
tests/data/test217 [new file with mode: 0644]

diff --git a/CHANGES b/CHANGES
index 2c181b1..33f9a20 100644 (file)
--- a/CHANGES
+++ b/CHANGES
@@ -7,6 +7,14 @@
                                   Changelog
 
 
+Daniel (21 December 2004)
+- Added test case 217 that verified CURLINFO_HTTP_CONNECTCODE, and I made the
+  -w option support 'http_connect' to make it easier to verify!
+
+- Fixed lib/select.c include order to build fine on FreeBSD
+
+- Fixed failf()'s reuse of the va_list variable that crashed on FreeBSD.
+
 Version 7.12.3 (20 December 2004)
 
 Daniel (19 December 2004)
index 03f334b..394b693 100644 (file)
@@ -931,6 +931,10 @@ to follow location: headers.
 .B http_code
 The numerical code that was found in the last retrieved HTTP(S) page.
 .TP
+.B http_connect
+The numerical code that was found in the last response (from a proxy) to a
+curl CONNECT request. (Added in 7.12.4)
+.TP
 .B time_total
 The total time, in seconds, that the full operation lasted. The time will be
 displayed with millisecond resolution.
index a7b8729..99a95ae 100644 (file)
@@ -52,6 +52,7 @@ typedef enum {
   VAR_SPEED_DOWNLOAD,
   VAR_SPEED_UPLOAD,
   VAR_HTTP_CODE,
+  VAR_HTTP_CODE_PROXY,
   VAR_HEADER_SIZE,
   VAR_REQUEST_SIZE,
   VAR_EFFECTIVE_URL,
@@ -71,6 +72,7 @@ struct variable {
 static const struct variable replacements[]={
   {"url_effective", VAR_EFFECTIVE_URL},
   {"http_code", VAR_HTTP_CODE},
+  {"http_connect", VAR_HTTP_CODE_PROXY},
   {"time_total", VAR_TOTAL_TIME},
   {"time_namelookup", VAR_NAMELOOKUP_TIME},
   {"time_connect", VAR_CONNECT_TIME},
@@ -127,6 +129,12 @@ void ourWriteOut(CURL *curl, char *writeinfo)
                    curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &longinfo))
                   fprintf(stream, "%03ld", longinfo);
                 break;
+              case VAR_HTTP_CODE_PROXY:
+                if(CURLE_OK ==
+                   curl_easy_getinfo(curl, CURLINFO_HTTP_CONNECTCODE,
+                                     &longinfo))
+                  fprintf(stream, "%03ld", longinfo);
+                break;
               case VAR_HEADER_SIZE:
                 if(CURLE_OK ==
                    curl_easy_getinfo(curl, CURLINFO_HEADER_SIZE, &longinfo))
index 41a9366..1e8de00 100644 (file)
@@ -30,7 +30,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46        \
  test193 test194 test195 test196 test197 test198 test515 test516       \
  test517 test518 test210 test211 test212 test220 test221 test222       \
  test223 test224 test206 test207 test208 test209 test213 test240        \
- test241 test242 test519 test214 test215 test216
+ test241 test242 test519 test214 test215 test216 test217
 
 # The following tests have been removed from the dist since they no longer
 # work. We need to fix the test suite's FTPS server first, then bring them
diff --git a/tests/data/test217 b/tests/data/test217
new file mode 100644 (file)
index 0000000..1b0c6a5
--- /dev/null
@@ -0,0 +1,44 @@
+# Server-side
+<reply>
+
+# this is returned first since we get no proxy-auth
+<data nocheck=1>
+HTTP/1.1 405 Method Not Allowed swsclose\r
+\r
+And you should ignore this data.
+</data>
+
+</reply>
+
+# Client-side
+<client>
+<server>
+http
+</server>
+ <name>
+HTTP proxy CONNECT to proxy returning 405
+ </name>
+ <command>
+http://test.remote.server.com:217/path/2170002 --proxy http://%HOSTIP:%HTTPPORT --proxytunnel -w '%{http_code} %{http_connect}\n'
+</command>
+</test>
+
+# Verify data after the test has been "shot"
+<verify>
+<strip>
+^User-Agent: curl/.*
+</strip>
+<protocol>
+CONNECT test.remote.server.com:217 HTTP/1.0\r
+\r
+</protocol>
+# CURLE_RECV_ERROR
+<errorcode>
+56
+</errorcode>
+<stdout>
+HTTP/1.1 405 Method Not Allowed swsclose\r
+\r
+000 405
+</stdout>
+</verify>