X-Git-Url: http://git.meshlink.io/?a=blobdiff_plain;f=src%2Fnode.c;h=54887a3bcda12eef09667edf8a3a9cbdca0025d2;hb=93f89bcae11e8d250831896bc5694ee8bd2ad22b;hp=527970540868007a5296bca04b0d8e2a277b5cf8;hpb=2956559f7d12caa9779207525419801e0e9ab3e3;p=meshlink diff --git a/src/node.c b/src/node.c index 52797054..54887a3b 100644 --- a/src/node.c +++ b/src/node.c @@ -21,6 +21,7 @@ #include "hash.h" #include "logger.h" +#include "meshlink_internal.h" #include "net.h" #include "netutl.h" #include "node.h" @@ -28,23 +29,20 @@ #include "utils.h" #include "xalloc.h" -splay_tree_t *node_tree; static hash_t *node_udp_cache; -node_t *myself; - static int node_compare(const node_t *a, const node_t *b) { return strcmp(a->name, b->name); } 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) { @@ -67,7 +65,7 @@ void free_node(node_t *n) { ecdsa_free(n->ecdsa); sptps_stop(&n->sptps); - timeout_del(&n->mtutimeout); + timeout_del(&mesh->loop, &n->mtutimeout); if(n->hostname) free(n->hostname); @@ -82,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) { @@ -97,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) { @@ -105,8 +103,8 @@ node_t *lookup_node_udp(const sockaddr_t *sa) { } void update_node_udp(node_t *n, const sockaddr_t *sa) { - if(n == myself) { - logger(DEBUG_ALWAYS, LOG_WARNING, "Trying to update UDP address of myself!"); + if(n == mesh->self) { + logger(DEBUG_ALWAYS, LOG_WARNING, "Trying to update UDP address of mesh->self!"); return; } @@ -115,8 +113,8 @@ void update_node_udp(node_t *n, const sockaddr_t *sa) { if(sa) { n->address = *sa; n->sock = 0; - for(int i = 0; i < listen_sockets; i++) { - if(listen_socket[i].sa.sa.sa_family == sa->sa.sa_family) { + for(int i = 0; i < mesh->listen_sockets; i++) { + if(mesh->listen_socket[i].sa.sa.sa_family == sa->sa.sa_family) { n->sock = i; break; }