1
0
Fork 0
mirror of https://git.rwth-aachen.de/acs/public/villas/node/ synced 2025-03-09 00:00:00 +01:00

websocket: improve error handling for buffer creation

This commit is contained in:
Steffen Vogel 2018-05-24 09:10:56 +02:00
parent 07ce4e9229
commit 6c4127da2e

View file

@ -35,6 +35,8 @@
#include <villas/format_type.h>
#include <villas/formats/msg_format.h>
#define DEFAULT_WEBSOCKET_BUFFER_SIZE (1 << 12)
/* Private static storage */
static struct list connections = { .state = STATE_DESTROYED }; /**< List of active libwebsocket connections which receive samples from all nodes (catch all) */
static struct web *web;
@ -109,8 +111,13 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
c->wsi = wsi;
c->state = STATE_ESTABLISHED;
buffer_init(&c->buffers.recv, 1 << 12);
buffer_init(&c->buffers.send, 1 << 12);
ret = buffer_init(&c->buffers.recv, DEFAULT_WEBSOCKET_BUFFER_SIZE);
if (ret)
return -1;
ret = buffer_init(&c->buffers.send, DEFAULT_WEBSOCKET_BUFFER_SIZE);
if (ret)
return ret;
debug(LOG_WEBSOCKET | 10, "Established WebSocket connection: %s", websocket_connection_name(c));
@ -171,8 +178,13 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
if (ret)
return -1;
buffer_init(&c->buffers.recv, 1 << 12);
buffer_init(&c->buffers.send, 1 << 12);
ret = buffer_init(&c->buffers.recv, DEFAULT_WEBSOCKET_BUFFER_SIZE);
if (ret)
return -1;
ret = buffer_init(&c->buffers.send, DEFAULT_WEBSOCKET_BUFFER_SIZE);
if (ret)
return ret;
ret = queue_init(&c->queue, DEFAULT_QUEUELEN, &memtype_hugepage);
if (ret)
@ -218,8 +230,13 @@ int websocket_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, voi
if (ret)
return ret;
buffer_destroy(&c->buffers.recv);
buffer_destroy(&c->buffers.send);
ret = buffer_destroy(&c->buffers.recv);
if (ret)
return ret;
ret = buffer_destroy(&c->buffers.send);
if (ret)
return ret;
c->wsi = NULL;