X-Git-Url: https://tinc-vpn.org/git/browse?a=blobdiff_plain;f=src%2Froute.c;h=cec35cae13b37b51fbeb5d7596bdafc00815aa73;hb=0b8b23e0dd7219344543f135ca0aeba8a4a42d48;hp=4c4312cd01a7729b3fa56fff7f65b224cd650d94;hpb=19be9cf7150858311f7898fa3fb525d692d02f64;p=tinc diff --git a/src/route.c b/src/route.c index 4c4312cd..cec35cae 100644 --- a/src/route.c +++ b/src/route.c @@ -20,7 +20,6 @@ #include "system.h" -#include "splay_tree.h" #include "connection.h" #include "control_common.h" #include "ethernet.h" @@ -187,15 +186,10 @@ static void swap_mac_addresses(vpn_packet_t *packet) { } static void age_subnets(int fd, short events, void *data) { - subnet_t *s; - connection_t *c; - splay_node_t *node, *next, *node2; bool left = false; time_t now = time(NULL); - for(node = myself->subnet_tree->head; node; node = next) { - next = node->next; - s = node->data; + for splay_each(subnet_t, s, myself->subnet_tree) { if(s->expires && s->expires < now) { if(debug_level >= DEBUG_TRAFFIC) { char netstr[MAXNETSTR]; @@ -203,11 +197,9 @@ static void age_subnets(int fd, short events, void *data) { logger(DEBUG_TRAFFIC, LOG_INFO, "Subnet %s expired", netstr); } - for(node2 = connection_tree->head; node2; node2 = node2->next) { - c = node2->data; + for list_each(connection_t, c, connection_list) if(c->status.active) send_del_subnet(c, s); - } subnet_del(myself, s); } else { @@ -221,11 +213,7 @@ static void age_subnets(int fd, short events, void *data) { } static void learn_mac(mac_t *address) { - subnet_t *subnet; - splay_node_t *node; - connection_t *c; - - subnet = lookup_subnet_mac(myself, address); + subnet_t *subnet = lookup_subnet_mac(myself, address); /* If we don't know this MAC address yet, store it */ @@ -244,11 +232,9 @@ static void learn_mac(mac_t *address) { /* And tell all other tinc daemons it's our MAC */ - for(node = connection_tree->head; node; node = node->next) { - c = node->data; + for list_each(connection_t, c, connection_list) if(c->status.active) send_add_subnet(c, subnet); - } if(!timeout_initialized(&age_subnets_event)) timeout_set(&age_subnets_event, age_subnets, NULL); @@ -878,8 +864,8 @@ static void route_mac(node_t *source, vpn_packet_t *packet) { static void send_pcap(vpn_packet_t *packet) { pcap = false; - for(splay_node_t *node = connection_tree->head; node; node = node->next) { - connection_t *c = node->data; + + for list_each(connection_t, c, connection_list) { if(!c->status.pcap) continue;