]> git.meshlink.io Git - meshlink/commitdiff
Remove disconnect code from autoconnect because it makes the mesh flapping debug/autoconnect
authorSaverio Proto <zioproto@gmail.com>
Fri, 5 Sep 2014 17:33:02 +0000 (19:33 +0200)
committerSaverio Proto <zioproto@gmail.com>
Fri, 5 Sep 2014 17:33:02 +0000 (19:33 +0200)
src/net.c

index 8400b936bd4f08d18ed8c5fe44a31e053098ed1c..212ff6c4c26b91c749b49e45db6749a3caab89d3 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -494,81 +494,6 @@ static void periodic_handler(event_loop_t *loop, void *data) {
                }
 
 
-               // disconnect suboptimal outgoing connections
-
-               if(min_connects < cur_connects && cur_connects <= max_connects)
-               {
-                       unsigned int connects = 0;
-
-                       for(int devclass = 0; devclass <= mesh->devclass; ++devclass)
-                       {
-                               for list_each(connection_t, c, mesh->connections)
-                               {
-                                       if(!c->status.remove_unused && c->node && c->node->devclass == devclass)
-                                               { connects += 1; }
-                               }
-
-                               if( min_connects < connects )
-                               {
-                                       splay_tree_t *nodes = splay_alloc_tree(node_compare_devclass_desc, NULL);
-
-                                       for list_each(connection_t, c, mesh->connections)
-                                       {
-                                               if(!c->status.remove_unused && c->outgoing && c->node && c->node->devclass >= devclass)
-                                                       { splay_insert(nodes, c->node); }
-                                       }
-
-                                       if(nodes->head)
-                                       {
-                                               logger(mesh, MESHLINK_INFO, "* disconnect suboptimal outgoing connection");
-                                               disconnect_from = (node_t*)nodes->head->data;
-                                       }
-
-                                       splay_free_tree(nodes);
-                                       break;
-                               }
-                       }
-
-                       if(!disconnect_from)
-                               { logger(mesh, MESHLINK_INFO, "* no suboptimal outgoing connections"); }
-               }
-
-
-               // disconnect connections (too many connections)
-
-               if(!disconnect_from && max_connects < cur_connects)
-               {
-                       splay_tree_t *nodes = splay_alloc_tree(node_compare_devclass_desc, NULL);
-
-                       for list_each(connection_t, c, mesh->connections)
-                       {
-                               if(!c->status.remove_unused && c->node)
-                                       { splay_insert(nodes, c->node); }
-                       }
-
-                       if(nodes->head)
-                       {
-                               logger(mesh, MESHLINK_INFO, "* disconnect connection (too many connections)");
-
-                               //timeout = 0;
-                               disconnect_from = (node_t*)nodes->head->data;
-                       }
-                       else
-                               { logger(mesh, MESHLINK_INFO, "* no node we want to disconnect, even though we have too many connections"); }
-
-                       splay_free_tree(nodes);
-               }
-
-
-               // perform disconnect
-
-               if(disconnect_from && disconnect_from->connection)
-               {
-                       logger(mesh, MESHLINK_INFO, "Autodisconnecting from %s", disconnect_from->connection->name);
-                       list_delete(mesh->outgoings, disconnect_from->connection->outgoing);
-                       disconnect_from->connection->outgoing = NULL;
-                       terminate_connection(mesh, disconnect_from->connection, disconnect_from->connection->status.active);
-               }
 
 
                // done!