provide pfi_group_addmember(), which makes the new member interface inherit
authorhenning <henning@openbsd.org>
Wed, 11 Jul 2018 09:05:51 +0000 (09:05 +0000)
committerhenning <henning@openbsd.org>
Wed, 11 Jul 2018 09:05:51 +0000 (09:05 +0000)
set flags from the group. ok phessler benno

sys/net/pf_if.c
sys/net/pfvar.h

index 4290ba6..7ea1f05 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pf_if.c,v 1.93 2018/04/24 20:23:41 bluhm Exp $ */
+/*     $OpenBSD: pf_if.c,v 1.94 2018/07/11 09:05:51 henning Exp $ */
 
 /*
  * Copyright 2005 Henning Brauer <henning@openbsd.org>
@@ -298,6 +298,19 @@ pfi_group_change(const char *group)
        pfi_kif_update(kif);
 }
 
+void
+pfi_group_addmember(const char *group, struct ifnet *ifp)
+{
+       struct pfi_kif          *gkif, *ikif;
+
+       if ((gkif = pfi_kif_get(group)) == NULL ||
+           (ikif = pfi_kif_get(ifp->if_xname)) == NULL)
+               panic("pfi_kif_get failed");
+       ikif->pfik_flags |= gkif->pfik_flags;
+
+       pfi_group_change(group);        
+}
+
 int
 pfi_match_addr(struct pfi_dynaddr *dyn, struct pf_addr *a, sa_family_t af)
 {
index 8edf918..fea4cca 100644 (file)
@@ -1,4 +1,4 @@
-/*     $OpenBSD: pfvar.h,v 1.480 2018/07/10 16:48:22 henning Exp $ */
+/*     $OpenBSD: pfvar.h,v 1.481 2018/07/11 09:05:51 henning Exp $ */
 
 /*
  * Copyright (c) 2001 Daniel Hartmeier
@@ -1853,6 +1853,7 @@ void               pfi_detach_ifnet(struct ifnet *);
 void            pfi_attach_ifgroup(struct ifg_group *);
 void            pfi_detach_ifgroup(struct ifg_group *);
 void            pfi_group_change(const char *);
+void            pfi_group_addmember(const char *, struct ifnet *);
 int             pfi_match_addr(struct pfi_dynaddr *, struct pf_addr *,
                    sa_family_t);
 int             pfi_dynaddr_setup(struct pf_addr_wrap *, sa_family_t);