soup: Add support to retrieve the response code

This commit is contained in:
Tobias Brunner
2014-05-19 14:29:48 +02:00
parent 350c1dead9
commit 271c2dd24e
+14 -2
View File
@@ -63,6 +63,11 @@ struct private_soup_fetcher_t {
* Fetcher callback function * Fetcher callback function
*/ */
fetcher_callback_t cb; fetcher_callback_t cb;
/**
* Response status
*/
u_int *result;
}; };
/** /**
@@ -119,12 +124,16 @@ METHOD(fetcher_t, fetch, status_t,
DBG2(DBG_LIB, "sending http request to '%s'...", uri); DBG2(DBG_LIB, "sending http request to '%s'...", uri);
soup_session_send_message(data.session, message); soup_session_send_message(data.session, message);
if (this->result)
{
*this->result = message->status_code;
}
if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code)) if (SOUP_STATUS_IS_SUCCESSFUL(message->status_code))
{ {
status = SUCCESS; status = SUCCESS;
} }
else else if (!this->result)
{ { /* only log an error if the code is not returned */
DBG1(DBG_LIB, "HTTP request failed: %s", message->reason_phrase); DBG1(DBG_LIB, "HTTP request failed: %s", message->reason_phrase);
} }
g_object_unref(G_OBJECT(message)); g_object_unref(G_OBJECT(message));
@@ -157,6 +166,9 @@ METHOD(fetcher_t, set_option, bool,
case FETCH_CALLBACK: case FETCH_CALLBACK:
this->cb = va_arg(args, fetcher_callback_t); this->cb = va_arg(args, fetcher_callback_t);
break; break;
case FETCH_RESPONSE_CODE:
this->result = va_arg(args, u_int*);
break;
default: default:
supported = FALSE; supported = FALSE;
break; break;