Restore libgcrypt support.
[tinc] / src / route.c
index aa5634c..79832dc 100644 (file)
@@ -54,10 +54,6 @@ static const size_t icmp6_size = sizeof(struct icmp6_hdr);
 static const size_t ns_size = sizeof(struct nd_neighbor_solicit);
 static const size_t opt_size = sizeof(struct nd_opt_hdr);
 
-#ifndef MAX
-#define MAX(a, b) ((a) > (b) ? (a) : (b))
-#endif
-
 static timeout_t age_subnets_timeout;
 
 /* RFC 1071 */
@@ -485,7 +481,7 @@ static void clamp_mss(const node_t *source, const node_t *via, vpn_packet_t *pac
                csum += csum >> 16;
                csum ^= 0xffff;
                DATA(packet)[start + 16] = csum >> 8;
-               DATA(packet)[start + 17] = csum;
+               DATA(packet)[start + 17] = csum & 0xff;
                break;
        }
 }
@@ -494,7 +490,7 @@ static void age_subnets(void *data) {
        (void)data;
        bool left = false;
 
-       for splay_each(subnet_t, s, myself->subnet_tree) {
+       for splay_each(subnet_t, s, &myself->subnet_tree) {
                if(s->expires && s->expires < now.tv_sec) {
                        if(debug_level >= DEBUG_TRAFFIC) {
                                char netstr[MAXNETSTR];
@@ -504,7 +500,7 @@ static void age_subnets(void *data) {
                                }
                        }
 
-                       for list_each(connection_t, c, connection_list)
+                       for list_each(connection_t, c, &connection_list)
                                if(c->edge) {
                                        send_del_subnet(c, s);
                                }
@@ -543,7 +539,7 @@ static void learn_mac(mac_t *address) {
 
                /* And tell all other tinc daemons it's our MAC */
 
-               for list_each(connection_t, c, connection_list)
+               for list_each(connection_t, c, &connection_list)
                        if(c->edge) {
                                send_add_subnet(c, subnet);
                        }
@@ -587,7 +583,7 @@ static void fragment_ipv4_packet(node_t *dest, vpn_packet_t *packet, length_t et
        todo = ntohs(ip.ip_len) - ip_size;
 
        if(ether_size + ip_size + todo != packet->len) {
-               logger(DEBUG_TRAFFIC, LOG_WARNING, "Length of packet (%d) doesn't match length in IPv4 header (%d)", packet->len, (int)(ether_size + ip_size + todo));
+               logger(DEBUG_TRAFFIC, LOG_WARNING, "Length of packet (%d) doesn't match length in IPv4 header (%zu)", packet->len, ether_size + ip_size + todo);
                return;
        }
 
@@ -1111,7 +1107,7 @@ static void route_mac(node_t *source, vpn_packet_t *packet) {
 static void send_pcap(vpn_packet_t *packet) {
        pcap = false;
 
-       for list_each(connection_t, c, connection_list) {
+       for list_each(connection_t, c, &connection_list) {
                if(!c->status.pcap) {
                        continue;
                }
@@ -1124,7 +1120,7 @@ static void send_pcap(vpn_packet_t *packet) {
                }
 
                if(send_request(c, "%d %d %d", CONTROL, REQ_PCAP, len)) {
-                       send_meta(c, (char *)DATA(packet), len);
+                       send_meta(c, DATA(packet), len);
                }
        }
 }