]> git.meshlink.io Git - meshlink/blobdiff - src/protocol_auth.c
Fix potential memory leaks in the autoconnect algorithm.
[meshlink] / src / protocol_auth.c
index e9aa0c51ddb4370bf4ba4135c92224e434e5845b..5ae4501e2cbb6feee7f7d62f954b50b9f3ba1fa1 100644 (file)
@@ -329,7 +329,7 @@ bool id_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
        }
 
        if(n->status.blacklisted) {
-               logger(mesh, MESHLINK_EPEER, "Peer %s is blacklisted", c->name);
+               logger(mesh, MESHLINK_WARNING, "Peer %s is blacklisted", c->name);
                return false;
        }
 
@@ -395,7 +395,7 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
                return false;
        }
 
-       if(devclass < 0 || devclass > _DEV_CLASS_MAX) {
+       if(devclass < 0 || devclass >= DEV_CLASS_COUNT) {
                logger(mesh, MESHLINK_ERROR, "Got bad %s from %s: %s", "ACK", c->name, "devclass invalid");
                return false;
        }
@@ -432,7 +432,7 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
        n->devclass = devclass;
        n->status.dirty = true;
 
-       n->last_successfull_connection = time(NULL);
+       n->last_successfull_connection = mesh->loop.now.tv_sec;
 
        n->connection = c;
        c->node = n;
@@ -450,13 +450,13 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) {
 
        /* Create an edge_t for this connection */
 
-       assert(devclass >= 0 && devclass <= _DEV_CLASS_MAX);
+       assert(devclass >= 0 && devclass < DEV_CLASS_COUNT);
 
        c->edge = new_edge();
        c->edge->from = mesh->self;
        c->edge->to = n;
        sockaddrcpy_setport(&c->edge->address, &c->address, atoi(hisport));
-       c->edge->weight = dev_class_traits[devclass].edge_weight;
+       c->edge->weight = mesh->dev_class_traits[devclass].edge_weight;
        c->edge->connection = c;
 
        edge_add(mesh, c->edge);