]> git.meshlink.io Git - meshlink/commitdiff
Move node_tree to mesh->nodes.
authorGuus Sliepen <guus@sliepen.org>
Mon, 21 Apr 2014 19:00:21 +0000 (21:00 +0200)
committerGuus Sliepen <guus@sliepen.org>
Mon, 21 Apr 2014 19:00:21 +0000 (21:00 +0200)
src/graph.c
src/net.c
src/node.c
src/node.h
src/protocol_auth.c
src/protocol_key.c

index ce8fa6264ca2cafc61f5b06f286fa0a6899c0ce0..a7612ab0aa6d94c01230f7d7cc0ed2e36a29f61b 100644 (file)
@@ -71,7 +71,7 @@ static void mst_kruskal(void) {
 
        /* Clear visited status on nodes */
 
-       for splay_each(node_t, n, node_tree)
+       for splay_each(node_t, n, mesh->nodes)
                n->status.visited = false;
 
        /* Starting point */
@@ -120,7 +120,7 @@ static void sssp_bfs(void) {
 
        /* Clear visited status on nodes */
 
-       for splay_each(node_t, n, node_tree) {
+       for splay_each(node_t, n, mesh->nodes) {
                n->status.visited = false;
                n->status.indirect = true;
                n->distance = -1;
@@ -196,7 +196,7 @@ static void sssp_bfs(void) {
 static void check_reachability(void) {
        /* Check reachability status. */
 
-       for splay_each(node_t, n, node_tree) {
+       for splay_each(node_t, n, mesh->nodes) {
                if(n->status.visited != n->status.reachable) {
                        n->status.reachable = !n->status.reachable;
                        n->last_state_change = now.tv_sec;
index b8ea3cbd96af65b9a2ba4c18ac11c7f98efd7db2..8b118dde6d860b0012a474fc988ce664ad76364a 100644 (file)
--- a/src/net.c
+++ b/src/net.c
@@ -49,7 +49,7 @@ void purge(void) {
 
        /* Remove all edges owned by unreachable nodes. */
 
-       for splay_each(node_t, n, node_tree) {
+       for splay_each(node_t, n, mesh->nodes) {
                if(!n->status.reachable) {
                        logger(DEBUG_SCARY_THINGS, LOG_DEBUG, "Purging node %s (%s)", n->name, n->hostname);
 
@@ -62,7 +62,7 @@ void purge(void) {
 
        /* Check if anyone else claims to have an edge to an unreachable node. If not, delete node. */
 
-       for splay_each(node_t, n, node_tree) {
+       for splay_each(node_t, n, mesh->nodes) {
                if(!n->status.reachable) {
                        for splay_each(edge_t, e, mesh->edges)
                                if(e->to == n)
@@ -180,7 +180,7 @@ static void periodic_handler(void *data) {
 
        /* If AutoConnect is set, check if we need to make or break connections. */
 
-       if(autoconnect && node_tree->count > 1) {
+       if(autoconnect && mesh->nodes->count > 1) {
                /* Count number of active connections */
                int nc = 0;
                for list_each(connection_t, c, connection_list) {
@@ -194,10 +194,10 @@ static void periodic_handler(void *data) {
                           and we are not already trying to make one, create an
                           outgoing connection to this node.
                        */
-                       int r = rand() % node_tree->count;
+                       int r = rand() % mesh->nodes->count;
                        int i = 0;
 
-                       for splay_each(node_t, n, node_tree) {
+                       for splay_each(node_t, n, mesh->nodes) {
                                if(i++ != r)
                                        continue;
 
index 83f4a743e92547bd0a582a470647c2995870d1c8..52aa6d429789785b872b2a9e0e29fc8bb1df67c3 100644 (file)
@@ -29,7 +29,6 @@
 #include "utils.h"
 #include "xalloc.h"
 
-splay_tree_t *node_tree;
 static hash_t *node_udp_cache;
 
 static int node_compare(const node_t *a, const node_t *b) {
@@ -37,13 +36,13 @@ static int node_compare(const node_t *a, const node_t *b) {
 }
 
 void init_nodes(void) {
-       node_tree = splay_alloc_tree((splay_compare_t) node_compare, (splay_action_t) free_node);
+       mesh->nodes = splay_alloc_tree((splay_compare_t) node_compare, (splay_action_t) free_node);
        node_udp_cache = hash_alloc(0x100, sizeof(sockaddr_t));
 }
 
 void exit_nodes(void) {
        hash_free(node_udp_cache);
-       splay_delete_tree(node_tree);
+       splay_delete_tree(mesh->nodes);
 }
 
 node_t *new_node(void) {
@@ -81,14 +80,14 @@ void free_node(node_t *n) {
 }
 
 void node_add(node_t *n) {
-       splay_insert(node_tree, n);
+       splay_insert(mesh->nodes, n);
 }
 
 void node_del(node_t *n) {
        for splay_each(edge_t, e, n->edge_tree)
                edge_del(e);
 
-       splay_delete(node_tree, n);
+       splay_delete(mesh->nodes, n);
 }
 
 node_t *lookup_node(char *name) {
@@ -96,7 +95,7 @@ node_t *lookup_node(char *name) {
 
        n.name = name;
 
-       return splay_search(node_tree, &n);
+       return splay_search(mesh->nodes, &n);
 }
 
 node_t *lookup_node_udp(const sockaddr_t *sa) {
index a341f2bb429a2adbec5369b4be44e66507fdbe1c..f6415a1d075f0191ff60abe819b9e567dbdd01d8 100644 (file)
@@ -88,8 +88,6 @@ typedef struct node_t {
        uint64_t out_bytes;
 } node_t;
 
-extern struct splay_tree_t *node_tree;
-
 extern void init_nodes(void);
 extern void exit_nodes(void);
 extern node_t *new_node(void) __attribute__ ((__malloc__));
index 14686ac903b1c5d9b1c0e9af186c9f5aa34c1035..2d5990e32c32e053093e590e38d9e0dfe2ca1280 100644 (file)
@@ -394,7 +394,7 @@ static void send_everything(connection_t *c) {
                send_tcppacket(c, &zeropkt.pkt);
        }
 
-       for splay_each(node_t, n, node_tree) {
+       for splay_each(node_t, n, mesh->nodes) {
                for splay_each(edge_t, e, n->edge_tree)
                        send_add_edge(c, e);
        }
index ef182b346ad07d40c297607133ad77245f81f39e..c490a8d215bab845a19a07884e645a9a34aaf7d9 100644 (file)
@@ -40,7 +40,7 @@ void send_key_changed(void) {
 
        /* Force key exchange for connections using SPTPS */
 
-       for splay_each(node_t, n, node_tree)
+       for splay_each(node_t, n, mesh->nodes)
                if(n->status.reachable && n->status.validkey)
                        sptps_force_kex(&n->sptps);
 }