curl: Don't set CURLOPT_FAILONERROR

With the strongTNC REST API some errors will actually be accompanied by
a response we want to receive completely.
This commit is contained in:
Tobias Brunner 2014-05-22 15:11:23 +02:00 committed by Andreas Steffen
parent 344c9f91f3
commit e14507cb71
1 changed files with 5 additions and 14 deletions

View File

@ -108,7 +108,7 @@ METHOD(fetcher_t, fetch, status_t,
goto out;
}
curl_easy_setopt(this->curl, CURLOPT_ERRORBUFFER, error);
curl_easy_setopt(this->curl, CURLOPT_FAILONERROR, TRUE);
curl_easy_setopt(this->curl, CURLOPT_FAILONERROR, FALSE);
curl_easy_setopt(this->curl, CURLOPT_NOSIGNAL, TRUE);
if (this->timeout)
{
@ -129,25 +129,16 @@ METHOD(fetcher_t, fetch, status_t,
status = NOT_SUPPORTED;
break;
case CURLE_OK:
curl_easy_getinfo(this->curl, CURLINFO_RESPONSE_CODE,
&result);
if (this->result)
{
curl_easy_getinfo(this->curl, CURLINFO_RESPONSE_CODE,
&result);
*this->result = result;
}
status = SUCCESS;
status = (result >= 200 && result < 300) ? SUCCESS : FAILED;
break;
default:
if (this->result)
{ /* don't log an error in this case */
curl_easy_getinfo(this->curl, CURLINFO_RESPONSE_CODE,
&result);
*this->result = result;
}
else
{
DBG1(DBG_LIB, "libcurl http request failed: %s", error);
}
DBG1(DBG_LIB, "libcurl http request failed: %s", error);
status = FAILED;
break;
}