Update copyright dates
[src/app-framework-binder.git] / src / afb-api-ws.c
index 3d2445a..4ea8610 100644 (file)
@@ -1,5 +1,5 @@
 /*
- * Copyright (C) 2015-2019 "IoT.bzh"
+ * Copyright (C) 2015-2020 "IoT.bzh"
  * Author José Bollo <jose.bollo@iot.bzh>
  *
  * Licensed under the Apache License, Version 2.0 (the "License");
@@ -130,7 +130,9 @@ static void api_ws_server_accept(struct api_ws_server *apiws)
                        close(fd);
                } else {
                        server = afb_stub_ws_create_server(fdev, &apiws->uri[apiws->offapi], apiws->apiset);
-                       if (!server)
+                       if (server)
+                               afb_stub_ws_set_on_hangup(server, afb_stub_ws_unref);
+                       else
                                ERROR("can't serve accepted connection to %s: %m", apiws->uri);
                }
        }
@@ -142,10 +144,10 @@ static void api_ws_server_listen_callback(void *closure, uint32_t revents, struc
 {
        struct api_ws_server *apiws = closure;
 
-       if ((revents & EPOLLIN) != 0)
-               api_ws_server_accept(apiws);
        if ((revents & EPOLLHUP) != 0)
                api_ws_server_connect(apiws);
+       else if ((revents & EPOLLIN) != 0)
+               api_ws_server_accept(apiws);
 }
 
 static void api_ws_server_disconnect(struct api_ws_server *apiws)