Skip to content
Snippets Groups Projects
Commit 57f0e329 authored by Daniel Stenberg's avatar Daniel Stenberg
Browse files

used this to verify bug report 651460

parent da5ae565
No related branches found
No related tags found
No related merge requests found
#include "test.h"
/*
* Source code in here hugely as reported in bug report 651460 by
* Christopher R. Palmer.
*
* Use multi interface to get HTTPS document over proxy, and provide
* auth info.
*/
CURLcode test(char *URL)
{
CURL *c;
CURLM *m;
curl_global_init(CURL_GLOBAL_ALL);
c = curl_easy_init();
curl_easy_setopt(c, CURLOPT_PROXY, arg2); /* set in first.c */
curl_easy_setopt(c, CURLOPT_URL, URL);
curl_easy_setopt(c, CURLOPT_USERPWD, "test:ing");
curl_easy_setopt(c, CURLOPT_PROXYUSERPWD, "test:ing");
curl_easy_setopt(c, CURLOPT_HTTPPROXYTUNNEL, 1);
curl_easy_setopt(c, CURLOPT_HEADER, 1);
{
CURLMcode res;
int running;
char done=FALSE;
m = curl_multi_init();
res = curl_multi_add_handle(m, c);
while(!done) {
fd_set rd, wr, exc;
int max_fd;
while (res == CURLM_CALL_MULTI_PERFORM) {
res = curl_multi_perform(m, &running);
if (running <= 0) {
done = TRUE;
break;
}
}
if(done)
break;
if (res != CURLM_OK) {
fprintf(stderr, "not okay???\n");
return 80;
}
FD_ZERO(&rd);
FD_ZERO(&wr);
FD_ZERO(&exc);
max_fd = 0;
if (curl_multi_fdset(m, &rd, &wr, &exc, &max_fd) != CURLM_OK) {
fprintf(stderr, "unexpected failured of fdset.\n");
return 89;
}
if (select(max_fd+1, &rd, &wr, &exc, NULL) == -1) {
fprintf(stderr, "bad select??\n");
return 95;
}
res = CURLM_CALL_MULTI_PERFORM;
}
}
curl_multi_remove_handle(m, c);
curl_easy_cleanup(c);
curl_multi_cleanup(m);
return 0;
}
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment