bmsd/websocket.c

changeset 679
48f8f3fce7c0
parent 678
14322825cb3d
child 680
0bb48333d133
--- a/bmsd/websocket.c	Thu May 14 14:38:20 2020 +0200
+++ b/bmsd/websocket.c	Mon May 18 11:00:59 2020 +0200
@@ -27,6 +27,7 @@
 #include "bms.h"
 #include "xutil.h"
 #include "websocket.h"
+#include "fermenters.h"
 #include "co2meters.h"
 #include <libwebsockets.h>
 
@@ -48,6 +49,9 @@
  */
 #define MAX_MESSAGE_QUEUE 512
 
+#define WS_INBUF	  2048
+
+
 /*
  * one of these created for each message
  */
@@ -66,7 +70,7 @@
 {
     struct per_session_data__lws_mirror *pss = (struct per_session_data__lws_mirror *)user;
     int		n, m;
-    char	buf[513];
+    char	buf[WS_INBUF + 1];
 
     switch (reason) {
 
@@ -116,7 +120,9 @@
 		memcpy(buf, in, len);
 		buf[len] = '\0';
 		syslog(LOG_NOTICE, "ws: reveived %ld bytes %s", len, buf);
-		if (strncmp(buf, (char *)"{\"device\":\"co2meters\",", 22) == 0) {
+		if (strncmp(buf, (char *)"{\"device\":\"fermenters\",", 23) == 0) {
+		    fermenter_ws_receive(buf);
+		} else if (strncmp(buf, (char *)"{\"device\":\"co2meters\",", 22) == 0) {
 		    co2meter_ws_receive(buf);
 		}
 
@@ -137,7 +143,7 @@
 
 
 static struct lws_protocols protocols[] = {
-	{ "bmsd-protocol", callback_ws, sizeof(struct per_session_data__lws_mirror), 512 },
+	{ "bmsd-protocol", callback_ws, sizeof(struct per_session_data__lws_mirror), WS_INBUF },
         { NULL, NULL, 0, 0 } /* terminator */
 };
 

mercurial