Apply by doing: cd /usr/src patch -p0 < 007_kroute.patch Then build and install ospfd and ripd. cd /usr/src/usr.sbin/ospfd make obj make cleandir make depend make make install cd /usr/src/usr.sbin/ripd make obj make cleandir make depend make make install Index: usr.sbin/ospfd/kroute.c =================================================================== RCS file: /cvs/src/usr.sbin/ospfd/kroute.c,v retrieving revision 1.42 retrieving revision 1.42.2.1 diff -u -p -r1.42 -r1.42.2.1 --- usr.sbin/ospfd/kroute.c 25 Feb 2007 18:10:47 -0000 1.42 +++ usr.sbin/ospfd/kroute.c 30 Apr 2007 20:45:01 -0000 1.42.2.1 @@ -1,4 +1,4 @@ -/* $OpenBSD: kroute.c,v 1.42 2007/02/25 18:10:47 deraadt Exp $ */ +/* $OpenBSD: kroute.c,v 1.42.2.1 2007/04/30 20:45:01 ckuethe Exp $ */ /* * Copyright (c) 2004 Esben Norby @@ -1089,13 +1089,13 @@ dispatch_rtmsg(void) flags = F_KERNEL; nexthop.s_addr = 0; - if (rtm->rtm_tableid != 0) - continue; - if (rtm->rtm_type == RTM_ADD || rtm->rtm_type == RTM_CHANGE || rtm->rtm_type == RTM_DELETE) { sa = (struct sockaddr *)(rtm + 1); get_rtaddrs(rtm->rtm_addrs, sa, rti_info); + + if (rtm->rtm_tableid != 0) + continue; if (rtm->rtm_pid == kr_state.pid) /* cause by us */ continue; Index: usr.sbin/ripd/kroute.c =================================================================== RCS file: /cvs/src/usr.sbin/ripd/kroute.c,v retrieving revision 1.5 retrieving revision 1.5.2.1 diff -u -p -r1.5 -r1.5.2.1 --- usr.sbin/ripd/kroute.c 28 Nov 2006 19:21:15 -0000 1.5 +++ usr.sbin/ripd/kroute.c 30 Apr 2007 20:45:01 -0000 1.5.2.1 @@ -1,4 +1,4 @@ -/* $OpenBSD: kroute.c,v 1.5 2006/11/28 19:21:15 reyk Exp $ */ +/* $OpenBSD: kroute.c,v 1.5.2.1 2007/04/30 20:45:01 ckuethe Exp $ */ /* * Copyright (c) 2004 Esben Norby @@ -997,13 +997,13 @@ dispatch_rtmsg(void) flags = F_KERNEL; nexthop.s_addr = 0; - if (rtm->rtm_tableid != 0) - continue; - if (rtm->rtm_type == RTM_ADD || rtm->rtm_type == RTM_CHANGE || rtm->rtm_type == RTM_DELETE) { sa = (struct sockaddr *)(rtm + 1); get_rtaddrs(rtm->rtm_addrs, sa, rti_info); + + if (rtm->rtm_tableid != 0) + continue; if (rtm->rtm_pid == kr_state.pid) /* cause by us */ continue;