X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fprotocol_auth.c;h=573da14817126e6876bed2d15397f747adc2d815;hb=d02bbd19c40e977f019d2c8bc80fe57059946d6e;hp=f46a4f473c6d5059b5ba449b8cf9fe8852c4a764;hpb=8eb1e508a3fd32a93f1dabab098b3293f527ac2b;p=meshlink-tiny diff --git a/src/protocol_auth.c b/src/protocol_auth.c index f46a4f4..573da14 100644 --- a/src/protocol_auth.c +++ b/src/protocol_auth.c @@ -173,23 +173,6 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { n = new_node(); n->name = xstrdup(c->name); node_add(mesh, n); - } else { - if(n->connection) { - /* Oh dear, we already have a connection to this node. */ - logger(mesh, MESHLINK_INFO, "Established a second connection with %s, closing old connection", n->connection->name); - - if(n->connection->outgoing) { - if(c->outgoing) { - logger(mesh, MESHLINK_WARNING, "Two outgoing connections to the same node!"); - } else { - c->outgoing = n->connection->outgoing; - } - - n->connection->outgoing = NULL; - } - - terminate_connection(mesh, n->connection, false); - } } n->devclass = devclass; @@ -213,26 +196,9 @@ bool ack_h(meshlink_handle_t *mesh, connection_t *c, const char *request) { mesh->meta_status_cb(mesh, (meshlink_node_t *)n, true); } - /* Terminate any connections to this node that are not activated yet */ - - for list_each(connection_t, other, mesh->connections) { - if(!other->status.active && !strcmp(other->name, c->name)) { - if(other->outgoing) { - if(c->outgoing) { - logger(mesh, MESHLINK_WARNING, "Two outgoing connections to the same node!"); - } else { - c->outgoing = other->outgoing; - } - - other->outgoing = NULL; - } - - logger(mesh, MESHLINK_DEBUG, "Terminating pending second connection with %s", n->name); - terminate_connection(mesh, other, false); - } - } - - /* TODO: Create an edge_t for this connection, send it */ + send_add_edge(mesh, c, 0); + n->status.reachable = true; + update_node_status(mesh, c->node); /* Request a session key to jump start UDP traffic */