websocket: accept empty protocol
authorJosé Bollo <jose.bollo@iot.bzh>
Thu, 19 May 2016 11:18:16 +0000 (13:18 +0200)
committerJosé Bollo <jose.bollo@iot.bzh>
Thu, 19 May 2016 11:18:16 +0000 (13:18 +0200)
Change-Id: If4d8609d5340faa53fea9e133a5415a576cbf5c5
Signed-off-by: José Bollo <jose.bollo@iot.bzh>
src/afb-websock.c

index 3ad9e20..0228ce1 100644 (file)
@@ -102,6 +102,10 @@ static const struct protodef *search_proto(const struct protodef *protodefs, con
        int i;
        size_t len;
 
+       if (protocols == NULL) {
+               /* return NULL; */
+               return protodefs != NULL && protodefs->name != NULL ? protodefs : NULL;
+       }
        for(;;) {
                protocols += strspn(protocols, vseparators);
                if (!*protocols)
@@ -154,7 +158,7 @@ static int check_websocket_upgrade(struct MHD_Connection *con, const struct prot
 
        /* is the protocol supported ? */
        protocols = MHD_lookup_connection_value(con, MHD_HEADER_KIND, sec_websocket_protocol_s);
-       proto = protocols == NULL ? NULL : search_proto(protodefs, protocols);
+       proto = search_proto(protodefs, protocols);
        if (proto == NULL) {
                response = MHD_create_response_from_buffer(0, NULL, MHD_RESPMEM_PERSISTENT);
                MHD_queue_response(con, MHD_HTTP_PRECONDITION_FAILED, response);