X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=12e81e4c7063c4d32096c22210536dddc6f27075;hb=46e373d99b4559245885c94930a6979d03a6f12b;hp=e2fe28b40d972d68a5a8023d5c4cef71045599f0;hpb=1442d234fb6681e32b10348a6c7b226c11629203;p=meshlink diff --git a/src/protocol_auth.c b/src/protocol_auth.c index e2fe28b4..12e81e4c 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -248,6 +248,9 @@ static bool receive_invitation_sptps(void *handle, uint8_t type, const void *dat } bool id_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { + assert(request); + assert(*request); + char name[MAX_STRING_SIZE]; if(sscanf(request, "%*d " MAX_STRING " %d.%d", name, &c->protocol_major, &c->protocol_minor) < 2) { @@ -329,7 +332,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; } @@ -371,14 +374,7 @@ bool id_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { } bool send_ack(meshlink_handle_t *mesh, connection_t *c) { - - /* Check some options */ - - if(mesh->self->options & OPTION_PMTU_DISCOVERY) { - c->options |= OPTION_PMTU_DISCOVERY; - } - - return send_request(mesh, c, NULL, "%d %s %d %x", ACK, mesh->myport, mesh->devclass, (c->options & 0xffffff) | (PROT_MINOR << 24)); + return send_request(mesh, c, NULL, "%d %s %d %x", ACK, mesh->myport, mesh->devclass, OPTION_PMTU_DISCOVERY | (PROT_MINOR << 24)); } static void send_everything(meshlink_handle_t *mesh, connection_t *c) { @@ -392,6 +388,9 @@ static void send_everything(meshlink_handle_t *mesh, connection_t *c) { } bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { + assert(request); + assert(*request); + char hisport[MAX_STRING_SIZE]; int devclass; uint32_t options; @@ -402,7 +401,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; } @@ -439,18 +438,11 @@ 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; - if(!(c->options & options & OPTION_PMTU_DISCOVERY)) { - c->options &= ~OPTION_PMTU_DISCOVERY; - options &= ~OPTION_PMTU_DISCOVERY; - } - - c->options |= options; - /* Activate this connection */ c->allow_request = ALL; @@ -464,15 +456,14 @@ 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; - c->edge->options = c->options; edge_add(mesh, c->edge);