X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Faddress_cache.c;h=d9996fb0b53f6fc354a8899b305a442c96ce1172;hb=d93d4f9dbd09bc5e53a9b5eeb1cc94939fee32bc;hp=df465da3a00df076a352433392b95f823e93687a;hpb=7ab400aebdc38e7ee5dafc0a2291bbbea25e3f7c;p=tinc diff --git a/src/address_cache.c b/src/address_cache.c index df465da3..d9996fb0 100644 --- a/src/address_cache.c +++ b/src/address_cache.c @@ -32,7 +32,7 @@ static struct addrinfo *get_known_addresses(node_t *n) { struct addrinfo *ai = NULL; struct addrinfo *oai = NULL; - for splay_each(edge_t, e, n->edge_tree) { + for splay_each(edge_t, e, &n->edge_tree) { if(!e->reverse) { continue; } @@ -147,7 +147,7 @@ const sockaddr_t *get_recent_address(address_cache_t *cache) { // Otherwise, check if there are any known Address statements if(!cache->config_tree) { - init_configuration(&cache->config_tree); + cache->config_tree = create_configuration(); read_host_config(cache->config_tree, cache->node->name, false); cache->cfg = lookup_config(cache->config_tree, "Address"); } @@ -213,7 +213,9 @@ const sockaddr_t *get_recent_address(address_cache_t *cache) { } // We're all out of addresses. - exit_configuration(&cache->config_tree); + exit_configuration(cache->config_tree); + cache->config_tree = NULL; + return false; } @@ -255,7 +257,8 @@ void reset_address_cache(address_cache_t *cache, const sockaddr_t *sa) { } if(cache->config_tree) { - exit_configuration(&cache->config_tree); + exit_configuration(cache->config_tree); + cache->config_tree = NULL; } if(cache->ai) { @@ -271,7 +274,8 @@ void reset_address_cache(address_cache_t *cache, const sockaddr_t *sa) { void close_address_cache(address_cache_t *cache) { if(cache->config_tree) { - exit_configuration(&cache->config_tree); + exit_configuration(cache->config_tree); + cache->config_tree = NULL; } if(cache->ai) {