summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLubomir Rintel <lkundrak@v3.sk>2017-03-22 15:28:06 +0100
committerLubomir Rintel <lkundrak@v3.sk>2017-03-22 18:52:56 +0000
commitac0f454cfb69cfc7c8709a8c66bf7b517f377793 (patch)
tree4a5a15a4469d540106b9399b4a470b4c3344c772
parent71b8d16eb8c7c66f6f74244167b70364576623c0 (diff)
downloadNetworkManager-ac0f454cfb69cfc7c8709a8c66bf7b517f377793.tar.gz
connectivity: conclude the check as soon as we see the magic header
No need to read the rest of the reponse.
-rw-r--r--src/nm-connectivity.c11
1 files changed, 3 insertions, 8 deletions
diff --git a/src/nm-connectivity.c b/src/nm-connectivity.c
index 882674574d..11659acdf1 100644
--- a/src/nm-connectivity.c
+++ b/src/nm-connectivity.c
@@ -204,7 +204,6 @@ typedef struct {
size_t msg_size;
char *msg;
struct curl_slist *request_headers;
- gboolean online_header;
} ConCheckCbData;
static void
@@ -276,12 +275,6 @@ curl_check_connectivity (CURLM *mhandle, CURLMcode ret)
goto cleanup;
}
- if (cb_data->online_header) {
- _LOGD ("check for uri '%s' with Status header successful.", cb_data->uri);
- new_state = NM_CONNECTIVITY_FULL;
- goto cleanup;
- }
-
/* Check response */
if (cb_data->msg && g_str_has_prefix (cb_data->msg, cb_data->response)) {
_LOGD ("Check for uri '%s' successful.", cb_data->uri);
@@ -414,7 +407,9 @@ easy_header_cb (char *buffer, size_t size, size_t nitems, void *userdata)
if ( len >= sizeof (HEADER_STATUS_ONLINE) - 1
&& !g_ascii_strncasecmp (buffer, HEADER_STATUS_ONLINE, sizeof (HEADER_STATUS_ONLINE) - 1)) {
- cb_data->online_header = TRUE;
+ _LOGD ("check for uri '%s' with Status header successful.", cb_data->uri);
+ finish_cb_data (cb_data, NM_CONNECTIVITY_FULL);
+ return 0;
}
return len;