diff --git a/lib/api/sessions/http.cpp b/lib/api/sessions/http.cpp index 65b52a772..e55372d3a 100644 --- a/lib/api/sessions/http.cpp +++ b/lib/api/sessions/http.cpp @@ -147,9 +147,11 @@ int api_http_protocol_cb(struct lws *wsi, enum lws_callback_reasons reason, void void *user_ctx = lws_context_user(ctx); Web *w = static_cast(user_ctx); + Http *s = static_cast(user); Api *a = w->getApi(); - Http *s = static_cast(user); + if (a == nullptr) + return -1; switch (reason) { case LWS_CALLBACK_HTTP_BIND_PROTOCOL: diff --git a/lib/api/sessions/websocket.cpp b/lib/api/sessions/websocket.cpp index 86ca8a2b4..79df5bdb7 100644 --- a/lib/api/sessions/websocket.cpp +++ b/lib/api/sessions/websocket.cpp @@ -104,10 +104,12 @@ int api_ws_protocol_cb(lws *wsi, enum lws_callback_reasons reason, void *user, v lws_context *ctx = lws_get_context(wsi); void *user_ctx = lws_context_user(ctx); - Web *w = static_cast(user_ctx); + Web *w = static_cast(user_ctx); + WebSocket *s = static_cast(user); Api *a = w->getApi(); - WebSocket *s = static_cast(user); + if (a == nullptr) + return -1; switch (reason) { case LWS_CALLBACK_ESTABLISHED: diff --git a/src/villas-pipe.cpp b/src/villas-pipe.cpp index 0d8ebfa0e..b47668861 100644 --- a/src/villas-pipe.cpp +++ b/src/villas-pipe.cpp @@ -378,10 +378,7 @@ check: if (optarg == endptr) /* Only start web subsystem if villas-pipe is used with a websocket node */ if (node_type(node)->start == websocket_start) { Web *w = sn.getWeb(); - Api *a = sn.getApi(); - w->start(); - a->start(); } #endif /* WITH_NODE_WEBSOCKET */