diff options
author | Timotej S <6674623+underhood@users.noreply.github.com> | 2020-10-30 10:28:28 +0100 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-30 10:28:28 +0100 |
commit | 593e1b6dbc6c979955e503d431d32c0dce1a2e09 (patch) | |
tree | a38bfeef83a57bd3922b65dd23dacc3dd5708ff3 /aclk | |
parent | 2e2a855935fce6ad9025e81ed479bdbc883d197d (diff) |
allows use of system libwebsockets instead of bundled one (#9984)
* allows usage of system libwebsockets
* fixes problems that were preventing ACLK to work with LWS `4.1.`
* add LWS info to buildinfo
Co-authored-by: Austin S. Hemmelgarn <austin@netdata.cloud>
Diffstat (limited to 'aclk')
-rw-r--r-- | aclk/aclk_lws_https_client.c | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/aclk/aclk_lws_https_client.c b/aclk/aclk_lws_https_client.c index 5d54c79583..c1856ed2c0 100644 --- a/aclk/aclk_lws_https_client.c +++ b/aclk/aclk_lws_https_client.c @@ -12,6 +12,8 @@ struct simple_hcc_data { char *data; size_t data_size; + size_t written; + char lws_work_buffer[1024 + LWS_PRE]; char *payload; int response_code; int done; @@ -28,6 +30,10 @@ static int simple_https_client_callback(struct lws *wsi, enum lws_callback_reaso switch (reason) { case LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ: debug(D_ACLK, "LWS_CALLBACK_RECEIVE_CLIENT_HTTP_READ"); + if (perconn_data->data_size - 1 - perconn_data->written < len) + return 1; + memcpy(&perconn_data->data[perconn_data->written], in, len); + perconn_data->written += len; return 0; case LWS_CALLBACK_RECEIVE_CLIENT_HTTP: debug(D_ACLK, "LWS_CALLBACK_RECEIVE_CLIENT_HTTP"); @@ -35,11 +41,11 @@ static int simple_https_client_callback(struct lws *wsi, enum lws_callback_reaso error("Missing Per Connect Data"); return -1; } - ptr = perconn_data->data; - n = perconn_data->data_size - 1; + n = sizeof(perconn_data->lws_work_buffer) - LWS_PRE; + ptr = perconn_data->lws_work_buffer + LWS_PRE; if (lws_http_client_read(wsi, &ptr, &n) < 0) return -1; - ptr[n] = '\0'; + perconn_data->data[perconn_data->written] = '\0'; return 0; case LWS_CALLBACK_WSI_DESTROY: debug(D_ACLK, "LWS_CALLBACK_WSI_DESTROY"); |