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();
// 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)) {
+ 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;
}
// 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;
}
// 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;
}
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);
execute_script(name, &env);
}
} else {
- if(net2str(netstr, sizeof netstr, subnet)) {
+ 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);
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);