X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=secnet.git;a=blobdiff_plain;f=netlink.c;h=76ac91c31679f2d89e39fadd77fbe7764e818a28;hp=ecad16cb73e6d8cb18b724148912648a2482a219;hb=7c006408372213194fce572e390d8f474db9cebc;hpb=20d324b6d71fdfbbe28479848c934ca3a1f69f16 diff --git a/netlink.c b/netlink.c index ecad16c..76ac91c 100644 --- a/netlink.c +++ b/netlink.c @@ -498,18 +498,19 @@ static void netlink_packet_deliver(struct netlink *st, netlink_icmp_simple(st,buf,client,ICMP_TYPE_UNREACHABLE, ICMP_CODE_NET_PROHIBITED); BUF_FREE(buf); - } - if (best_quality>0) { - /* XXX Fragment if required */ - st->routes[best_match]->deliver( - st->routes[best_match]->dst, buf); - st->routes[best_match]->outcount++; - BUF_ASSERT_FREE(buf); } else { - /* Generate ICMP destination unreachable */ - netlink_icmp_simple(st,buf,client,ICMP_TYPE_UNREACHABLE, - ICMP_CODE_NET_UNREACHABLE); /* client==NULL */ - BUF_FREE(buf); + if (best_quality>0) { + /* XXX Fragment if required */ + st->routes[best_match]->deliver( + st->routes[best_match]->dst, buf); + st->routes[best_match]->outcount++; + BUF_ASSERT_FREE(buf); + } else { + /* Generate ICMP destination unreachable */ + netlink_icmp_simple(st,buf,client,ICMP_TYPE_UNREACHABLE, + ICMP_CODE_NET_UNREACHABLE); /* client==NULL */ + BUF_FREE(buf); + } } } BUF_ASSERT_FREE(buf); @@ -721,14 +722,15 @@ static void netlink_dump_routes(struct netlink *st, bool_t requested) for (i=0; in_clients; i++) { netlink_output_subnets(st,c,st->routes[i]->subnets); Message(c,"-> tunnel %s (%s,mtu %d,%s routes,%s," - "quality %d,use %d)\n", + "quality %d,use %d,pri %lu)\n", st->routes[i]->name, st->routes[i]->up?"up":"down", st->routes[i]->mtu, st->routes[i]->options&OPT_SOFTROUTE?"soft":"hard", st->routes[i]->options&OPT_ALLOWROUTE?"free":"restricted", st->routes[i]->link_quality, - st->routes[i]->outcount); + st->routes[i]->outcount, + (unsigned long)st->routes[i]->priority); } net=ipaddr_to_string(st->secnet_address); Message(c,"%s/32 -> netlink \"%s\" (use %d)\n", @@ -1065,7 +1067,6 @@ static list_t *null_apply(closure_t *self, struct cloc loc, dict_t *context, return new_closure(&st->nl.cl); } -init_module netlink_module; void netlink_module(dict_t *dict) { add_closure(dict,"null-netlink",null_apply);