]> git.meshlink.io Git - meshlink/blobdiff - src/protocol_edge.c
Fix memory leaks from timers.
[meshlink] / src / protocol_edge.c
index 405961ed7f508791b179aae761e91c91ca695d37..74ace0cc6d05cfeb42dad8f5821c383e978ef36d 100644 (file)
@@ -108,12 +108,12 @@ bool add_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
 
        // Check if devclasses are valid
 
-       if(from_devclass < 0 || from_devclass > _DEV_CLASS_MAX) {
+       if(from_devclass < 0 || from_devclass >= DEV_CLASS_COUNT) {
                logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ADD_EDGE", c->name, "from devclass invalid");
                return false;
        }
 
-       if(to_devclass < 0 || to_devclass > _DEV_CLASS_MAX) {
+       if(to_devclass < 0 || to_devclass >= DEV_CLASS_COUNT) {
                logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ADD_EDGE", c->name, "to devclass invalid");
                return false;
        }
@@ -180,6 +180,8 @@ bool add_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
                node_add(mesh, to);
        }
 
+       to->devclass = to_devclass;
+
        /* Convert addresses */
 
        address = str2sockaddr(to_address, to_port);
@@ -199,7 +201,6 @@ bool add_edge_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
                                logger(mesh, MESHLINK_WARNING, "Got %s from %s which does not match existing entry",
                                       "ADD_EDGE", c->name);
                                edge_del(mesh, e);
-                               graph(mesh);
                        }
                } else {
                        return true;