aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJosé Bollo <jose.bollo@iot.bzh>2018-03-16 11:39:07 +0100
committerJosé Bollo <jose.bollo@iot.bzh>2018-03-16 16:27:01 +0100
commit1fca4b9b36dc1bb3c5ee7ec1ce6b5d74ffbfe29c (patch)
tree942598aca919fc4b38f48515a694f989191ce742
parent24d000c2290126abf88204089d132229d63f9a05 (diff)
afb-websock: Fix double close
Integration with newer versions of libmicrohttpd was closing two times the file descriptor: - one time by the websocket within afb - one time by the upgrade close of libmicrohttpd Thanks to 'autoclose' feature of 'fdev', the solution is quiet easily. Bug-AGL: SPEC-1345 Change-Id: Ifb691b3f69c095b5ff44bfd7f7267ea24d52df6d Signed-off-by: José Bollo <jose.bollo@iot.bzh>
-rw-r--r--src/afb-websock.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/src/afb-websock.c b/src/afb-websock.c
index 257bd193..fdfca9d7 100644
--- a/src/afb-websock.c
+++ b/src/afb-websock.c
@@ -31,6 +31,7 @@
#include "afb-websock.h"
#include "afb-ws-json1.h"
#include "afb-fdev.h"
+#include "fdev.h"
/**************** WebSocket connection upgrade ****************************/
@@ -150,6 +151,7 @@ static void upgrade_to_websocket(
/* TODO */
close_websocket(urh);
} else {
+ fdev_set_autoclose(fdev, 0);
ws = memo->proto->create(fdev, memo->apiset, &memo->hreq->xreq.context, close_websocket, urh);
if (ws == NULL) {
/* TODO */