/* Set various general curl flags */ int ocset_curl_flags(OCstate* state) { CURLcode cstat = CURLE_OK; CURL* curl = state->curl; struct OCcurlflags* flags = &state->curlflags; #ifdef CURLOPT_ENCODING if (flags->compress) { cstat = curl_easy_setopt(curl, CURLOPT_ENCODING,"deflate, gzip"); if(cstat != CURLE_OK) goto fail; OCDBG(1,"CURLOPT_ENCODING=deflate, gzip"); } #endif if (flags->cookiejar || flags->cookiefile) { cstat = curl_easy_setopt(curl, CURLOPT_COOKIESESSION, 1); if (cstat != CURLE_OK) goto fail; OCDBG(1,"CURLOPT_COOKIESESSION=1"); } if (flags->cookiejar) { cstat = curl_easy_setopt(curl, CURLOPT_COOKIEJAR, flags->cookiejar); if (cstat != CURLE_OK) goto fail; OCDBG1(1,"CURLOPT_COOKIEJAR=%s",flags->cookiejar); } if (flags->cookiefile) { cstat = curl_easy_setopt(curl, CURLOPT_COOKIEFILE, flags->cookiefile); if (cstat != CURLE_OK) goto fail; OCDBG1(1,"CURLOPT_COOKIEFILE=%s",flags->cookiefile); } if (flags->verbose) { cstat = curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); if (cstat != CURLE_OK) goto fail; OCDBG1(1,"CURLOPT_VERBOSE=%ld",1L); } if (flags->timeout) { cstat = curl_easy_setopt(curl, CURLOPT_TIMEOUT, (long)flags->timeout); if (cstat != CURLE_OK) goto fail; OCDBG1(1,"CURLOPT_TIMEOUT=%ld",1L); } /* Following are always set */ cstat = curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); OCDBG1(1,"CURLOPT_FOLLOWLOCATION=%ld",1L); cstat = curl_easy_setopt(curl, CURLOPT_MAXREDIRS, 10L); OCDBG1(1,"CURLOPT_FOLLOWLOCATION=%ld",1L); cstat = curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, state->error.curlerrorbuf); OCDBG1(1,"CURLOPT_ERRORBUFFER",0); return OC_NOERR; fail: return OC_ECURL; }
/* Set various general curl flags */ int ocset_curl_flags(OCstate* state) { CURLcode cstat = CURLE_OK; CURL* curl = state->curl; struct OCcurlflags* flags = &state->curlflags; #if 0 cstat = curl_easy_reset(curl); #endif #ifdef CURLOPT_ENCODING if (flags->compress) { cstat = curl_easy_setopt(curl, CURLOPT_ENCODING,"deflate, gzip"); if(cstat != CURLE_OK) goto done; OCDBG(1,"CURLOPT_ENCODING=deflate, gzip"); } #endif #if 0 Do not think this is correct if (flags->cookiejar) { cstat = curl_easy_setopt(curl, CURLOPT_COOKIESESSION, 1); if (cstat != CURLE_OK) goto done; OCDBG(1,"CURLOPT_COOKIESESSION=1"); } #endif if (flags->cookiejar) { cstat = curl_easy_setopt(curl, CURLOPT_COOKIEJAR, flags->cookiejar); if (cstat != CURLE_OK) goto done; OCDBG1(1,"CURLOPT_COOKIEJAR=%s",flags->cookiejar); cstat = curl_easy_setopt(curl, CURLOPT_COOKIEFILE, flags->cookiejar); if (cstat != CURLE_OK) goto done; } if (flags->verbose) { cstat = curl_easy_setopt(curl, CURLOPT_VERBOSE, 1L); if (cstat != CURLE_OK) goto done; OCDBG1(1,"CURLOPT_VERBOSE=%ld",1L); } if (flags->timeout) { cstat = curl_easy_setopt(curl, CURLOPT_TIMEOUT, (long)flags->timeout); if (cstat != CURLE_OK) goto done; OCDBG1(1,"CURLOPT_TIMEOUT=%ld",1L); } if (flags->useragent) { cstat = curl_easy_setopt(curl, CURLOPT_USERAGENT, flags->useragent); if (cstat != CURLE_OK) goto done; OCDBG1(1,"CURLOPT_USERAGENT=%s",flags->useragent); } /* Following are always set */ cstat = curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L); OCDBG1(1,"CURLOPT_FOLLOWLOCATION=%ld",1L); cstat = curl_easy_setopt(curl, CURLOPT_UNRESTRICTED_AUTH, 1L); OCDBG1(1,"CURLOPT_UNRESTRICTED_AUTH=%ld",1L); cstat = curl_easy_setopt(curl, CURLOPT_MAXREDIRS, OC_MAX_REDIRECTS); OCDBG1(1,"CURLOPT_MAXREDIRS=%ld",OC_MAX_REDIRECTS); #if 0 cstat = curl_setopt(curl,CURLOPT_RETURNTRANSFER, 1L); OCDBG1(1,"CURLOPT_RETURNTRANSFER=%ld",1L); #endif cstat = curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, state->error.curlerrorbuf); OCDBG1(1,"CURLOPT_ERRORBUFFER",0); done: return cstat; }