diff options
author | 2009-01-03 21:47:32 +0000 | |
---|---|---|
committer | 2009-01-03 21:47:32 +0000 | |
commit | 41cbda0d19245cc26ba9557f6daf0ee26f8384f7 (patch) | |
tree | db66f3f731a66ba67cf9a8dade91e01f4aca402d /sys/net/if_pflow.c | |
parent | oops, forgot that we need to update this file for run(4); (diff) | |
download | wireguard-openbsd-41cbda0d19245cc26ba9557f6daf0ee26f8384f7.tar.xz wireguard-openbsd-41cbda0d19245cc26ba9557f6daf0ee26f8384f7.zip |
sync flow sequence ids on all used pflow interfaces.
OK henning@
Diffstat (limited to 'sys/net/if_pflow.c')
-rw-r--r-- | sys/net/if_pflow.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/sys/net/if_pflow.c b/sys/net/if_pflow.c index fb04229b7f5..15c84a899b5 100644 --- a/sys/net/if_pflow.c +++ b/sys/net/if_pflow.c @@ -1,4 +1,4 @@ -/* $OpenBSD: if_pflow.c,v 1.8 2008/11/26 18:01:43 dlg Exp $ */ +/* $OpenBSD: if_pflow.c,v 1.9 2009/01/03 21:47:32 gollo Exp $ */ /* * Copyright (c) 2008 Henning Brauer <henning@openbsd.org> @@ -212,9 +212,10 @@ pflowioctl(struct ifnet *ifp, u_long cmd, caddr_t data) case SIOCSIFFLAGS: if ((ifp->if_flags & IFF_UP) && sc->sc_receiver_ip.s_addr != 0 && - sc->sc_receiver_port != 0) + sc->sc_receiver_port != 0) { ifp->if_flags |= IFF_RUNNING; - else + sc->sc_gcounter=pflowstats.pflow_flows; + } else ifp->if_flags &= ~IFF_RUNNING; break; case SIOCSIFMTU: @@ -261,9 +262,10 @@ pflowioctl(struct ifnet *ifp, u_long cmd, caddr_t data) if ((ifp->if_flags & IFF_UP) && sc->sc_receiver_ip.s_addr != 0 && - sc->sc_receiver_port != 0) + sc->sc_receiver_port != 0) { ifp->if_flags |= IFF_RUNNING; - else + sc->sc_gcounter=pflowstats.pflow_flows; + } else ifp->if_flags &= ~IFF_RUNNING; break; @@ -467,7 +469,8 @@ pflow_pack_flow(struct pf_state *st, struct pflow_softc *sc) } } - pflowstats.pflow_flows++; + if (pflowstats.pflow_flows == sc->sc_gcounter) + pflowstats.pflow_flows++; sc->sc_gcounter++; sc->sc_count++; @@ -496,7 +499,8 @@ pflow_pack_flow(struct pf_state *st, struct pflow_softc *sc) } } - pflowstats.pflow_flows++; + if (pflowstats.pflow_flows == sc->sc_gcounter) + pflowstats.pflow_flows++; sc->sc_gcounter++; sc->sc_count++; |