Module Name: src Committed By: roy Date: Fri May 12 09:22:01 UTC 2017
Modified Files: src/sys/netinet: ip_carp.c Log Message: carp should call if_link_state_change instead of affecting if_link_state directly. To generate a diff of this commit: cvs rdiff -u -r1.87 -r1.88 src/sys/netinet/ip_carp.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/netinet/ip_carp.c diff -u src/sys/netinet/ip_carp.c:1.87 src/sys/netinet/ip_carp.c:1.88 --- src/sys/netinet/ip_carp.c:1.87 Wed Apr 19 03:23:06 2017 +++ src/sys/netinet/ip_carp.c Fri May 12 09:22:01 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ip_carp.c,v 1.87 2017/04/19 03:23:06 ozaki-r Exp $ */ +/* $NetBSD: ip_carp.c,v 1.88 2017/05/12 09:22:01 roy Exp $ */ /* $OpenBSD: ip_carp.c,v 1.113 2005/11/04 08:11:54 mcbride Exp $ */ /* @@ -33,7 +33,7 @@ #endif #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ip_carp.c,v 1.87 2017/04/19 03:23:06 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ip_carp.c,v 1.88 2017/05/12 09:22:01 roy Exp $"); /* * TODO: @@ -2172,6 +2172,8 @@ static void carp_set_state(struct carp_softc *sc, int state) { static const char *carp_states[] = { CARP_STATES }; + int link_state; + if (sc->sc_state == state) return; @@ -2180,16 +2182,16 @@ carp_set_state(struct carp_softc *sc, in sc->sc_state = state; switch (state) { case BACKUP: - sc->sc_if.if_link_state = LINK_STATE_DOWN; + link_state = LINK_STATE_DOWN; break; case MASTER: - sc->sc_if.if_link_state = LINK_STATE_UP; + link_state = LINK_STATE_UP; break; default: - sc->sc_if.if_link_state = LINK_STATE_UNKNOWN; + link_state = LINK_STATE_UNKNOWN; break; } - rt_ifmsg(&sc->sc_if); + if_link_state_change(&sc->sc_if, link_state); } void