mirror of
https://github.com/moparisthebest/curl
synced 2024-12-22 08:08:50 -05:00
convert test case 540 to use a custom Host: header as well
This commit is contained in:
parent
1da3192d2d
commit
1da3d402f6
@ -52,7 +52,7 @@ crypto
|
||||
HTTP proxy auth Digest multi API re-using connection
|
||||
</name>
|
||||
<command>
|
||||
http://test.remote.server.com/path/540 http://%HOSTIP:%HTTPPORT silly:person
|
||||
http://test.remote.server.com/path/540 http://%HOSTIP:%HTTPPORT silly:person custom.set.host.name
|
||||
</command>
|
||||
</client>
|
||||
|
||||
@ -63,24 +63,24 @@ http://test.remote.server.com/path/540 http://%HOSTIP:%HTTPPORT silly:person
|
||||
</strip>
|
||||
<protocol>
|
||||
GET http://test.remote.server.com/path/540 HTTP/1.1
|
||||
Host: test.remote.server.com
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
Host: custom.set.host.name
|
||||
|
||||
GET http://test.remote.server.com/path/540 HTTP/1.1
|
||||
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/540", response="ca507dcf189196b6a5374d3233042261"
|
||||
Host: test.remote.server.com
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
Host: custom.set.host.name
|
||||
|
||||
GET http://test.remote.server.com/path/540 HTTP/1.1
|
||||
Proxy-Authorization: Digest username="silly", realm="weirdorealm", nonce="12345", uri="/path/540", response="ca507dcf189196b6a5374d3233042261"
|
||||
Host: test.remote.server.com
|
||||
Pragma: no-cache
|
||||
Accept: */*
|
||||
Proxy-Connection: Keep-Alive
|
||||
Host: custom.set.host.name
|
||||
|
||||
</protocol>
|
||||
</verify>
|
||||
|
@ -13,14 +13,17 @@
|
||||
* argv1 = URL
|
||||
* argv2 = proxy
|
||||
* argv3 = proxyuser:password
|
||||
* argv4 = host name to use for the custom Host: header
|
||||
*/
|
||||
|
||||
#include "test.h"
|
||||
|
||||
#define PROXY arg2
|
||||
#define PROXYUSERPWD arg3
|
||||
#define HOST test_argv[4]
|
||||
|
||||
static void init(CURLM *cm, const char* url, const char* userpwd)
|
||||
static void init(CURLM *cm, const char* url, const char* userpwd,
|
||||
struct curl_slist *headers)
|
||||
{
|
||||
CURL *eh = curl_easy_init();
|
||||
|
||||
@ -30,11 +33,13 @@ static void init(CURLM *cm, const char* url, const char* userpwd)
|
||||
curl_easy_setopt(eh, CURLOPT_PROXYAUTH, CURLAUTH_ANY);
|
||||
curl_easy_setopt(eh, CURLOPT_VERBOSE, 1);
|
||||
curl_easy_setopt(eh, CURLOPT_HEADER, 1);
|
||||
curl_easy_setopt(eh, CURLOPT_HTTPHEADER, headers); /* custom Host: */
|
||||
|
||||
curl_multi_add_handle(cm, eh);
|
||||
}
|
||||
|
||||
static int loop(CURLM *cm, const char* url, const char* userpwd)
|
||||
static int loop(CURLM *cm, const char* url, const char* userpwd,
|
||||
struct curl_slist *headers)
|
||||
{
|
||||
CURLMsg *msg;
|
||||
long L;
|
||||
@ -42,7 +47,7 @@ static int loop(CURLM *cm, const char* url, const char* userpwd)
|
||||
fd_set R, W, E;
|
||||
struct timeval T;
|
||||
|
||||
init(cm, url, userpwd);
|
||||
init(cm, url, userpwd, headers);
|
||||
|
||||
while (U) {
|
||||
while (CURLM_CALL_MULTI_PERFORM == curl_multi_perform(cm, &U));
|
||||
@ -102,18 +107,30 @@ static int loop(CURLM *cm, const char* url, const char* userpwd)
|
||||
int test(char *URL)
|
||||
{
|
||||
CURLM *cm;
|
||||
struct curl_slist *headers = NULL;
|
||||
char buffer[246]; /* naively fixed-size */
|
||||
|
||||
if(test_argc < 4)
|
||||
return 99;
|
||||
|
||||
sprintf(buffer, "Host: %s", HOST);
|
||||
|
||||
/* now add a custom Host: header */
|
||||
headers = curl_slist_append(headers, buffer);
|
||||
|
||||
curl_global_init(CURL_GLOBAL_ALL);
|
||||
|
||||
cm = curl_multi_init();
|
||||
loop(cm, URL, PROXYUSERPWD);
|
||||
loop(cm, URL, PROXYUSERPWD, headers);
|
||||
|
||||
fprintf(stderr, "lib540: now we do the request again\n");
|
||||
loop(cm, URL, PROXYUSERPWD);
|
||||
loop(cm, URL, PROXYUSERPWD, headers);
|
||||
|
||||
curl_multi_cleanup(cm);
|
||||
|
||||
curl_global_cleanup();
|
||||
|
||||
curl_slist_free_all(headers);
|
||||
|
||||
return EXIT_SUCCESS;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user