X-Git-Url: https://www.tinc-vpn.org/git/browse?p=tinc;a=blobdiff_plain;f=src%2Fgraph.c;h=cca0935029587cc20d2cafa3fddb992b9c4a5b10;hp=e2ef8b1a7a5e038061f0b1e4e36ab84c3b9e80ff;hb=e8bef0453680526bf82600ae766ff0c9dec22975;hpb=a5527be06c05b1956168019fb5733230134b950b diff --git a/src/graph.c b/src/graph.c index e2ef8b1a..cca09350 100644 --- a/src/graph.c +++ b/src/graph.c @@ -287,10 +287,13 @@ static void sssp_bfs(void) { subnet_update(n, NULL, n->status.reachable); - if(!n->status.reachable) + if(!n->status.reachable) { update_node_udp(n, NULL); - else if(n->connection) + memset(&n->status, 0, sizeof n->status); + n->options = 0; + } else if(n->connection) { send_ans_key(n); + } } } } @@ -315,7 +318,7 @@ void dump_graph(void) { node_t *n; edge_t *e; char *filename = NULL, *tmpname = NULL; - FILE *file, *pipe; + FILE *file, *pipe = NULL; if(!graph_changed || !get_config_string(lookup_config(config_tree, "GraphDumpFile"), &filename)) return; @@ -353,7 +356,7 @@ void dump_graph(void) { fprintf(file, "}\n"); - if(filename[0] == '|') { + if(pipe) { pclose(pipe); } else { fclose(file);