X-Git-Url: https://gerrit.automotivelinux.org/gerrit/gitweb?a=blobdiff_plain;f=src%2Fafb-websock.c;h=0247aae6948a47a315caaf595092edbe3639c717;hb=7ea1657b459aea2cc6ef9332621a19d7e2676b1d;hp=283a88bc9111552c4dfc6d65d988b14979c0553b;hpb=26cefa686d680bcfd36d69cab18a25e986acc217;p=src%2Fapp-framework-binder.git diff --git a/src/afb-websock.c b/src/afb-websock.c index 283a88bc..0247aae6 100644 --- a/src/afb-websock.c +++ b/src/afb-websock.c @@ -28,6 +28,7 @@ #include "afb-ws-json.h" #include "afb-method.h" +#include "afb-context.h" #include "afb-hreq.h" #include "afb-websock.h" @@ -162,7 +163,7 @@ static int check_websocket_upgrade(struct MHD_Connection *con, const struct prot } /* create the web socket */ - ws = proto->create(dup(MHD_get_connection_info(con, MHD_CONNECTION_INFO_CONNECTION_FD)->connect_fd), + ws = proto->create(MHD_get_connection_info(con, MHD_CONNECTION_INFO_CONNECTION_FD)->connect_fd, context, (void*)MHD_resume_connection, con); @@ -203,9 +204,12 @@ int afb_websock_check_upgrade(struct afb_hreq *hreq) return 0; ws = NULL; - rc = check_websocket_upgrade(hreq->connection, protodefs, afb_hreq_context(hreq), &ws); - if (rc && ws != NULL) - hreq->upgrade = 1; + rc = check_websocket_upgrade(hreq->connection, protodefs, hreq->context.session, &ws); + if (rc == 1) { + hreq->replied = 1; + if (ws != NULL) + hreq->upgrade = 1; + } return rc; }