From e14507cb71131c6fd993346f38d894c29cc5e4c3 Mon Sep 17 00:00:00 2001 From: Tobias Brunner Date: Thu, 22 May 2014 15:11:23 +0200 Subject: [PATCH] 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. --- src/libstrongswan/plugins/curl/curl_fetcher.c | 19 +++++-------------- 1 file changed, 5 insertions(+), 14 deletions(-) diff --git a/src/libstrongswan/plugins/curl/curl_fetcher.c b/src/libstrongswan/plugins/curl/curl_fetcher.c index 573c4c3696..620cf74f3d 100644 --- a/src/libstrongswan/plugins/curl/curl_fetcher.c +++ b/src/libstrongswan/plugins/curl/curl_fetcher.c @@ -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; } -- 2.47.3