diff options
Diffstat (limited to 'usr.sbin/relayd')
-rw-r--r-- | usr.sbin/relayd/pfe_filter.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/usr.sbin/relayd/pfe_filter.c b/usr.sbin/relayd/pfe_filter.c index 81d0444510d..6a4033dd2df 100644 --- a/usr.sbin/relayd/pfe_filter.c +++ b/usr.sbin/relayd/pfe_filter.c @@ -1,4 +1,4 @@ -/* $OpenBSD: pfe_filter.c,v 1.26 2008/05/07 01:49:29 reyk Exp $ */ +/* $OpenBSD: pfe_filter.c,v 1.27 2008/05/16 14:47:58 pyr Exp $ */ /* * Copyright (c) 2006 Pierre-Yves Ritschard <pyr@openbsd.org> @@ -224,7 +224,11 @@ sync_table(struct relayd *env, struct rdr *rdr, struct table *table) if (ioctl(env->sc_pf->dev, DIOCRSETADDRS, &io) == -1) fatal("sync_table: cannot set address list"); - + if (rdr->conf.flags & F_STICKY) { + if (ioctl(env->sc_pf->dev, DIOCCLRSRCNODES, 0) == -1) + fatal("sync_table: cannot clear the tree of " + "source tracking nodes"); + } free(addlist); log_debug("sync_table: table %s: %d added, %d deleted, %d changed", |