From 2fd832fa9c8801dce33b09b950d90ed16e553eee Mon Sep 17 00:00:00 2001 From: sthen Date: Thu, 25 Jun 2009 18:50:22 +0000 Subject: sasyncd isn't interested in messages on the routing socket other than RTM_IFINFO to monitor the state of carp(4) interfaces; programme the filter on the socket accordingly so it doesn't have to handle other message types. ok henning@ --- usr.sbin/sasyncd/carp.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) (limited to 'usr.sbin') diff --git a/usr.sbin/sasyncd/carp.c b/usr.sbin/sasyncd/carp.c index de876c0ea6f..980ee84e314 100644 --- a/usr.sbin/sasyncd/carp.c +++ b/usr.sbin/sasyncd/carp.c @@ -1,4 +1,4 @@ -/* $OpenBSD: carp.c,v 1.8 2006/11/28 19:21:15 reyk Exp $ */ +/* $OpenBSD: carp.c,v 1.9 2009/06/25 18:50:22 sthen Exp $ */ /* * Copyright (c) 2005 Håkan Olsson. All rights reserved. @@ -225,6 +225,7 @@ int carp_init(void) { cfgstate.route_socket = -1; + unsigned int rtfilter; if (cfgstate.lockedstate != INIT) { cfgstate.runstate = cfgstate.lockedstate; @@ -250,6 +251,11 @@ carp_init(void) return -1; } + rtfilter = ROUTE_FILTER(RTM_IFINFO); + if (setsockopt(cfgstate.route_socket, PF_ROUTE, ROUTE_MSGFILTER, + &rtfilter, sizeof(rtfilter)) == -1) /* not fatal */ + log_msg(2, "carp_init: setsockopt"); + cfgstate.runstate = carp_get_state(cfgstate.carp_ifname); if (cfgstate.runstate == FAIL) { fprintf(stderr, "Failed to check interface \"%s\".\n", -- cgit v1.2.3-59-g8ed1b