X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Fsubnet.c;h=13c4603018b74070fd7887fae502c2f8fb2da66c;hb=8156f3760973c17256a93ab48016b8b84f5444de;hp=e72cdaa4a32393130e7a8dc13cbd5406a04f3224;hpb=3a316823b971396a428f020f401b9fe41252d98d;p=tinc diff --git a/src/subnet.c b/src/subnet.c index e72cdaa4..13c46030 100644 --- a/src/subnet.c +++ b/src/subnet.c @@ -22,16 +22,13 @@ #include "splay_tree.h" #include "control_common.h" -#include "device.h" #include "hash.h" #include "logger.h" -#include "names.h" #include "net.h" #include "netutl.h" #include "node.h" #include "script.h" #include "subnet.h" -#include "utils.h" #include "xalloc.h" /* lists type of subnet */ @@ -92,15 +89,19 @@ void subnet_add(node_t *n, subnet_t *subnet) { subnet->owner = n; splay_insert(subnet_tree, subnet); - if (n) + + if(n) { splay_insert(n->subnet_tree, subnet); + } subnet_cache_flush(); } void subnet_del(node_t *n, subnet_t *subnet) { - if (n) + if(n) { splay_delete(n->subnet_tree, subnet); + } + splay_delete(subnet_tree, subnet); subnet_cache_flush(); @@ -117,26 +118,31 @@ subnet_t *lookup_subnet_mac(const node_t *owner, const mac_t *address) { // Check if this address is cached - if((r = hash_search(mac_cache, address))) + if((r = hash_search(mac_cache, address))) { return r; + } // Search all subnets for a matching one for splay_each(subnet_t, p, owner ? owner->subnet_tree : subnet_tree) { - if(!p || p->type != SUBNET_MAC) + if(!p || p->type != SUBNET_MAC) { continue; + } if(!memcmp(address, &p->net.mac.address, sizeof(*address))) { r = p; - if(!p->owner || p->owner->status.reachable) + + if(!p->owner || p->owner->status.reachable) { break; + } } } // Cache the result - if(r) + if(r) { hash_insert(mac_cache, address, r); + } return r; } @@ -146,26 +152,31 @@ subnet_t *lookup_subnet_ipv4(const ipv4_t *address) { // Check if this address is cached - if((r = hash_search(ipv4_cache, address))) + if((r = hash_search(ipv4_cache, address))) { return r; + } // Search all subnets for a matching one for splay_each(subnet_t, p, subnet_tree) { - if(!p || p->type != SUBNET_IPV4) + if(!p || p->type != SUBNET_IPV4) { continue; + } if(!maskcmp(address, &p->net.ipv4.address, p->net.ipv4.prefixlength)) { r = p; - if(!p->owner || p->owner->status.reachable) + + if(!p->owner || p->owner->status.reachable) { break; + } } } // Cache the result - if(r) + if(r) { hash_insert(ipv4_cache, address, r); + } return r; } @@ -175,26 +186,31 @@ subnet_t *lookup_subnet_ipv6(const ipv6_t *address) { // Check if this address is cached - if((r = hash_search(ipv6_cache, address))) + if((r = hash_search(ipv6_cache, address))) { return r; + } // Search all subnets for a matching one for splay_each(subnet_t, p, subnet_tree) { - if(!p || p->type != SUBNET_IPV6) + if(!p || p->type != SUBNET_IPV6) { continue; + } if(!maskcmp(address, &p->net.ipv6.address, p->net.ipv6.prefixlength)) { r = p; - if(!p->owner || p->owner->status.reachable) + + if(!p->owner || p->owner->status.reachable) { break; + } } } // Cache the result - if(r) + if(r) { hash_insert(ipv6_cache, address, r); + } return r; } @@ -225,15 +241,18 @@ void subnet_update(node_t *owner, subnet_t *subnet, bool up) { if(!subnet) { for splay_each(subnet_t, subnet, owner->subnet_tree) { - if(!net2str(netstr, sizeof(netstr), subnet)) + if(!net2str(netstr, sizeof(netstr), subnet)) { continue; + } // Strip the weight from the subnet, and put it in its own environment variable char *weight = strchr(netstr, '#'); - if(weight) + + if(weight) { *weight++ = 0; - else + } else { weight = empty; + } // Prepare the SUBNET and WEIGHT variables environment_update(&env, env_subnet, "SUBNET=%s", netstr); @@ -245,10 +264,12 @@ void subnet_update(node_t *owner, subnet_t *subnet, bool up) { if(net2str(netstr, sizeof(netstr), subnet)) { // Strip the weight from the subnet, and put it in its own environment variable char *weight = strchr(netstr, '#'); - if(weight) + + if(weight) { *weight++ = 0; - else + } else { weight = empty; + } // Prepare the SUBNET and WEIGHT variables environment_update(&env, env_subnet, "SUBNET=%s", netstr); @@ -265,12 +286,13 @@ bool dump_subnets(connection_t *c) { for splay_each(subnet_t, subnet, subnet_tree) { char netstr[MAXNETSTR]; - if(!net2str(netstr, sizeof(netstr), subnet)) + if(!net2str(netstr, sizeof(netstr), subnet)) { continue; + } send_request(c, "%d %d %s %s", - CONTROL, REQ_DUMP_SUBNETS, - netstr, subnet->owner ? subnet->owner->name : "(broadcast)"); + CONTROL, REQ_DUMP_SUBNETS, + netstr, subnet->owner ? subnet->owner->name : "(broadcast)"); } return send_request(c, "%d %d", CONTROL, REQ_DUMP_SUBNETS);