summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorhenning <henning@openbsd.org>2009-06-02 17:10:23 +0000
committerhenning <henning@openbsd.org>2009-06-02 17:10:23 +0000
commit2441b4daa5ae7e14fb143e70710fe7f066f1d949 (patch)
treec29b7e48199f61d49610ec9598c192dcfb4994bd
parentmake it clear that setting the global timeout late will mess things up. (diff)
downloadwireguard-openbsd-2441b4daa5ae7e14fb143e70710fe7f066f1d949.tar.xz
wireguard-openbsd-2441b4daa5ae7e14fb143e70710fe7f066f1d949.zip
do the pf_pkt_addr_changed(m) magic just like gif etc
tested by Manuel Rodriguez Morales <marodriguez at grupogdt.com>
-rw-r--r--sys/net/if_gre.c11
-rw-r--r--sys/netinet/ip_gre.c10
2 files changed, 19 insertions, 2 deletions
diff --git a/sys/net/if_gre.c b/sys/net/if_gre.c
index 33f48fd5626..63695536a0d 100644
--- a/sys/net/if_gre.c
+++ b/sys/net/if_gre.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: if_gre.c,v 1.44 2008/06/26 05:42:20 ray Exp $ */
+/* $OpenBSD: if_gre.c,v 1.45 2009/06/02 17:10:23 henning Exp $ */
/* $NetBSD: if_gre.c,v 1.9 1999/10/25 19:18:11 drochner Exp $ */
/*
@@ -42,6 +42,7 @@
#if NGRE > 0
#include "bpfilter.h"
+#include "pf.h"
#include <sys/param.h>
#include <sys/proc.h>
@@ -77,6 +78,10 @@
#include <net/bpf.h>
#endif
+#if NPF > 0
+#include <net/pfvar.h>
+#endif
+
#include <net/if_gre.h>
#ifndef GRE_RECURSION_LIMIT
@@ -405,6 +410,10 @@ gre_output(struct ifnet *ifp, struct mbuf *m, struct sockaddr *dst,
ifp->if_opackets++;
ifp->if_obytes += m->m_pkthdr.len;
+#if NPF > 0
+ pf_pkt_addr_changed(m);
+#endif
+
/* Send it off */
error = ip_output(m, (void *)NULL, &sc->route, 0, (void *)NULL, (void *)NULL);
end:
diff --git a/sys/netinet/ip_gre.c b/sys/netinet/ip_gre.c
index b3917e881f5..886706ab10f 100644
--- a/sys/netinet/ip_gre.c
+++ b/sys/netinet/ip_gre.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: ip_gre.c,v 1.32 2008/06/26 05:42:20 ray Exp $ */
+/* $OpenBSD: ip_gre.c,v 1.33 2009/06/02 17:10:23 henning Exp $ */
/* $NetBSD: ip_gre.c,v 1.9 1999/10/25 19:18:11 drochner Exp $ */
/*
@@ -69,6 +69,11 @@
#endif
#include "bpfilter.h"
+#include "pf.h"
+
+#if NPF > 0
+#include <net/pfvar.h>
+#endif
/* Needs IP headers. */
#include <net/if_gre.h>
@@ -188,6 +193,9 @@ gre_input2(m , hlen, proto)
if (sc->sc_if.if_bpf)
bpf_mtap_af(sc->sc_if.if_bpf, af, m, BPF_DIRECTION_IN);
#endif
+#if NPF > 0
+ pf_pkt_addr_changed(m);
+#endif
s = splnet(); /* possible */
IF_INPUT_ENQUEUE(ifq, m);