the check "if (nc->rtableid)"
authorbenno <benno@openbsd.org>
Tue, 10 Jul 2018 12:38:50 +0000 (12:38 +0000)
committerbenno <benno@openbsd.org>
Tue, 10 Jul 2018 12:38:50 +0000 (12:38 +0000)
is used as an indicator that we are dealing with network statements from within
rdomain <n> { } blocks.

That needs to check against the rdomain we are running in instead.

ok claudio@

usr.sbin/bgpd/rde.c

index 953f55a..ee43fab 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: rde.c,v 1.388 2018/07/10 09:12:52 claudio Exp $ */
+/*     $OpenBSD: rde.c,v 1.389 2018/07/10 12:38:50 benno Exp $ */
 
 /*
  * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org>
@@ -3534,7 +3534,7 @@ network_add(struct network_config *nc, int flagstatic)
        in_addr_t                prefix4;
        u_int16_t                i;
 
-       if (nc->rtableid) {
+       if (nc->rtableid != conf->default_tableid) {
                SIMPLEQ_FOREACH(rd, rdomains_l, entry) {
                        if (rd->rtableid != nc->rtableid)
                                continue;