summaryrefslogtreecommitdiffstats
path: root/aclk
diff options
context:
space:
mode:
authorTimotej S <6674623+underhood@users.noreply.github.com>2020-10-30 10:28:28 +0100
committerGitHub <noreply@github.com>2020-10-30 10:28:28 +0100
commit593e1b6dbc6c979955e503d431d32c0dce1a2e09 (patch)
treea38bfeef83a57bd3922b65dd23dacc3dd5708ff3 /aclk
parent2e2a855935fce6ad9025e81ed479bdbc883d197d (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.c12
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");