Add stricter checks for netnames.
[tinc] / src / edge.c
index b34fdc2..0e35cd1 100644 (file)
@@ -1,6 +1,6 @@
 /*
     edge.c -- edge tree management
-    Copyright (C) 2000-2012 Guus Sliepen <guus@tinc-vpn.org>,
+    Copyright (C) 2000-2013 Guus Sliepen <guus@tinc-vpn.org>,
                   2000-2005 Ivo Timmermans
 
     This program is free software; you can redistribute it and/or modify
@@ -75,6 +75,7 @@ edge_t *new_edge(void) {
 
 void free_edge(edge_t *e) {
        sockaddrfree(&e->address);
+       sockaddrfree(&e->local_address);
 
        free(e);
 }
@@ -110,11 +111,13 @@ bool dump_edges(connection_t *c) {
        for splay_each(node_t, n, node_tree) {
                for splay_each(edge_t, e, n->edge_tree) {
                        char *address = sockaddr2hostname(&e->address);
-                       send_request(c, "%d %d %s %s %s %x %d",
+                       char* local_address = sockaddr2hostname(&e->local_address);
+                       send_request(c, "%d %d %s %s %s %s %x %d",
                                        CONTROL, REQ_DUMP_EDGES,
                                        e->from->name, e->to->name, address,
-                                       e->options, e->weight);
+                                       local_address, e->options, e->weight);
                        free(address);
+                       free(local_address);
                }
        }