Added test case 217 that verified CURLINFO_HTTP_CONNECTCODE, and I made the

-w option support 'http_connect' to make it easier to verify!
This commit is contained in:
Daniel Stenberg 2004-12-21 19:59:35 +00:00
parent 444f6427b8
commit 4ba1eb26fa
5 changed files with 65 additions and 1 deletions

View File

@ -7,6 +7,14 @@
Changelog 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) Version 7.12.3 (20 December 2004)
Daniel (19 December 2004) Daniel (19 December 2004)

View File

@ -931,6 +931,10 @@ to follow location: headers.
.B http_code .B http_code
The numerical code that was found in the last retrieved HTTP(S) page. The numerical code that was found in the last retrieved HTTP(S) page.
.TP .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 .B time_total
The total time, in seconds, that the full operation lasted. The time will be The total time, in seconds, that the full operation lasted. The time will be
displayed with millisecond resolution. displayed with millisecond resolution.

View File

@ -52,6 +52,7 @@ typedef enum {
VAR_SPEED_DOWNLOAD, VAR_SPEED_DOWNLOAD,
VAR_SPEED_UPLOAD, VAR_SPEED_UPLOAD,
VAR_HTTP_CODE, VAR_HTTP_CODE,
VAR_HTTP_CODE_PROXY,
VAR_HEADER_SIZE, VAR_HEADER_SIZE,
VAR_REQUEST_SIZE, VAR_REQUEST_SIZE,
VAR_EFFECTIVE_URL, VAR_EFFECTIVE_URL,
@ -71,6 +72,7 @@ struct variable {
static const struct variable replacements[]={ static const struct variable replacements[]={
{"url_effective", VAR_EFFECTIVE_URL}, {"url_effective", VAR_EFFECTIVE_URL},
{"http_code", VAR_HTTP_CODE}, {"http_code", VAR_HTTP_CODE},
{"http_connect", VAR_HTTP_CODE_PROXY},
{"time_total", VAR_TOTAL_TIME}, {"time_total", VAR_TOTAL_TIME},
{"time_namelookup", VAR_NAMELOOKUP_TIME}, {"time_namelookup", VAR_NAMELOOKUP_TIME},
{"time_connect", VAR_CONNECT_TIME}, {"time_connect", VAR_CONNECT_TIME},
@ -127,6 +129,12 @@ void ourWriteOut(CURL *curl, char *writeinfo)
curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &longinfo)) curl_easy_getinfo(curl, CURLINFO_RESPONSE_CODE, &longinfo))
fprintf(stream, "%03ld", longinfo); fprintf(stream, "%03ld", longinfo);
break; 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: case VAR_HEADER_SIZE:
if(CURLE_OK == if(CURLE_OK ==
curl_easy_getinfo(curl, CURLINFO_HEADER_SIZE, &longinfo)) curl_easy_getinfo(curl, CURLINFO_HEADER_SIZE, &longinfo))

View File

@ -30,7 +30,7 @@ EXTRA_DIST = test1 test108 test117 test127 test20 test27 test34 test46 \
test193 test194 test195 test196 test197 test198 test515 test516 \ test193 test194 test195 test196 test197 test198 test515 test516 \
test517 test518 test210 test211 test212 test220 test221 test222 \ test517 test518 test210 test211 test212 test220 test221 test222 \
test223 test224 test206 test207 test208 test209 test213 test240 \ 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 # 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 # work. We need to fix the test suite's FTPS server first, then bring them

44
tests/data/test217 Normal file
View File

@ -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
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
</protocol>
# CURLE_RECV_ERROR
<errorcode>
56
</errorcode>
<stdout>
HTTP/1.1 405 Method Not Allowed swsclose
000 405
</stdout>
</verify>