diff options
author | Peter Hessler <phessler@cvs.openbsd.org> | 2016-04-08 12:27:06 +0000 |
---|---|---|
committer | Peter Hessler <phessler@cvs.openbsd.org> | 2016-04-08 12:27:06 +0000 |
commit | 406c8ff908dc4c653b2c620edb9760e5b4072bf8 (patch) | |
tree | bfef5412ffe4e74684f3d18cd96984341c2a6017 /usr.sbin | |
parent | 63277f122c569a36c0f2d3e2ced5be410f2a1c1b (diff) |
When bgp receives an RTM_CHANGE message for an RTF_MPATH route[1], and
it finds it actually on an interface, bgpd can get confused. In this
case, just log it and treat it as an RTM_ADD so bgpd doesn't suicide.
[1] includes all ospfd installed routes, btw.
OK benno@ sthen@
Diffstat (limited to 'usr.sbin')
-rw-r--r-- | usr.sbin/bgpd/kroute.c | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/usr.sbin/bgpd/kroute.c b/usr.sbin/bgpd/kroute.c index 3dd1605604f..0441219d51b 100644 --- a/usr.sbin/bgpd/kroute.c +++ b/usr.sbin/bgpd/kroute.c @@ -1,4 +1,4 @@ -/* $OpenBSD: kroute.c,v 1.208 2016/03/22 15:53:00 claudio Exp $ */ +/* $OpenBSD: kroute.c,v 1.209 2016/04/08 12:27:05 phessler Exp $ */ /* * Copyright (c) 2003, 2004 Henning Brauer <henning@openbsd.org> @@ -3251,7 +3251,7 @@ dispatch_rtmsg_addr(struct rt_msghdr *rtm, struct sockaddr *rti_info[RTAX_MAX], (kr = kroute_matchgw(kr, sa_in)) == NULL) { log_warnx("dispatch_rtmsg_addr[change] " "mpath route not found"); - return (-1); + goto add4; } else if (mpath && rtm->rtm_type == RTM_ADD) goto add4; @@ -3323,7 +3323,7 @@ add4: NULL) { log_warnx("dispatch_rtmsg[change] " "IPv6 mpath route not found"); - return (-1); + goto add6; } else if (mpath && rtm->rtm_type == RTM_ADD) goto add6; |