- Update to 2.02

* Fix severe byte order related problem with "route-to" rules
    (much help from Joris Vandalon with testing here)
  * Make tcpdump's -w flag work for if_pfsync
  * Fix byte order and drop lock for icmp_error() calls.
    (note that it is necessary to allow icmp_error messages - from
    "block-policy return" - as FreeBSD does not know about pf's
    special tags, yet).

- update ALTQ-message to point to the new 5.2R-patchset from rofug.ro
  as well

PR:		ports/61318
Submitted by:	Max Laier <max@love2party.net> (maintainer)
This commit is contained in:
Pav Lucistnik 2004-01-13 20:41:19 +00:00
parent c63c243d07
commit 8075c5bed6
Notes: svn2git 2021-03-31 03:12:20 +00:00
svn path=/head/; revision=98102
4 changed files with 5 additions and 126 deletions

View File

@ -6,8 +6,7 @@
#
PORTNAME= pf_freebsd
PORTVERSION= 2.00
PORTREVISION= 1
PORTVERSION= 2.02
CATEGORIES= security ipv6
MASTER_SITES= http://pf4freebsd.love2party.net/
.if defined(WITH_ALTQ) && (${WITH_ALTQ} == "yes")
@ -60,8 +59,9 @@ IGNORE= "Kernel source files required"
pre-fetch:
@${ECHO_MSG} "======================================================="
@${ECHO_MSG} "* If you have ALTQ support from: *"
@${ECHO_MSG} "* http://www.nipsi.de/altq/index.html *"
@${ECHO_MSG} "* You can may define WITH_ALTQ=yes to make use of it *"
@${ECHO_MSG} "* http://www.nipsi.de/altq/index.html or *"
@${ECHO_MSG} "* http://www.rofug.ro/projects/freebsd-altq/ *"
@${ECHO_MSG} "* You can define WITH_ALTQ=yes to make use of it *"
@${ECHO_MSG} "* Please define SYS_ALTQ to point to the patched src *"
@${ECHO_MSG} "* *"
@${ECHO_MSG} "* e.g.: make WITH_ALTQ=yes SYS_ALTQ=/usr/src/sys.altq *"

View File

@ -1 +1 @@
MD5 (pf_freebsd_2.00.tar.gz) = e55504a934a232a0030dc746f0bf96d0
MD5 (pf_freebsd_2.02.tar.gz) = 378eb8b827604cb313e7e1d16318106e

View File

@ -1,98 +0,0 @@
--- pf/pf.c.orig Fri Nov 21 14:32:14 2003
+++ pf/pf.c Fri Nov 21 14:32:33 2003
@@ -1250,8 +1250,10 @@
struct tcphdr *th;
#if defined(__FreeBSD__)
struct ip *ip;
+#if (__FreeBSD_version < 501114)
struct route ro;
#endif
+#endif
char *opt;
/* maximum segment size tcp option */
@@ -1366,7 +1368,6 @@
h->ip_ttl = ttl ? ttl : ip_defttl;
h->ip_sum = 0;
#if defined(__FreeBSD__)
- bzero(&ro, sizeof(ro));
ip = mtod(m, struct ip *);
/*
* XXX
@@ -1376,6 +1377,8 @@
*/
NTOHS(ip->ip_len);
NTOHS(ip->ip_off);
+#if (__FreeBSD_version < 501114)
+ bzero(&ro, sizeof(ro));
ip_rtaddr(ip->ip_dst, &ro);
PF_UNLOCK();
ip_output(m, (void *)NULL, &ro, 0, (void *)NULL,
@@ -1384,7 +1387,13 @@
if(ro.ro_rt) {
RTFREE(ro.ro_rt);
}
-#else
+#else /* __FreeBSD_version >= 501114 */
+ PF_UNLOCK();
+ ip_output(m, (void *)NULL, (void *)NULL, 0, (void *)NULL,
+ (void *)NULL);
+ PF_LOCK();
+#endif
+#else /* ! __FreeBSD__ */
ip_output(m, (void *)NULL, (void *)NULL, 0, (void *)NULL,
(void *)NULL);
#endif
@@ -2354,8 +2363,12 @@
dst->sin_len = sizeof(*dst);
dst->sin_addr = addr->v4;
#if defined(__FreeBSD__)
+#ifdef RTF_PRCLONING
rtalloc_ign(&ro, (RTF_CLONING | RTF_PRCLONING));
-#else
+#else /* !RTF_PRCLONING */
+ rtalloc_ign(&ro, RTF_CLONING);
+#endif
+#else /* ! __FreeBSD__ */
rtalloc_noclone(&ro, NO_CLONING);
#endif
rt = ro.ro_rt;
@@ -2370,9 +2383,13 @@
dst6->sin6_len = sizeof(*dst6);
dst6->sin6_addr = addr->v6;
#if defined(__FreeBSD__)
+#ifdef RTF_PRCLONING
rtalloc_ign((struct route *)&ro6,
(RTF_CLONING | RTF_PRCLONING));
-#else
+#else /* !RTF_PRCLONING */
+ rtalloc_ign((struct route *)&ro6, RTF_CLONING);
+#endif
+#else /* ! __FreeBSD__ */
rtalloc_noclone((struct route *)&ro6, NO_CLONING);
#endif
rt = ro6.ro_rt;
@@ -4731,8 +4748,12 @@
dst->sin_len = sizeof(*dst);
dst->sin_addr = addr->v4;
#if defined(__FreeBSD__)
+#ifdef RTF_PRCLONING
rtalloc_ign(&ro, (RTF_CLONING|RTF_PRCLONING));
-#else
+#else /* !RTF_PRCLONING */
+ rtalloc_ign(&ro, RTF_CLONING);
+#endif
+#else /* ! __FreeBSD__ */
rtalloc_noclone(&ro, NO_CLONING);
#endif
@@ -5044,7 +5065,8 @@
m0->m_pkthdr.csum_flags &= ifp->if_hwassist;
if (ntohs(ip->ip_len) <= ifp->if_mtu ||
- ifp->if_hwassist & CSUM_FRAGMENT) {
+ (ifp->if_hwassist & CSUM_FRAGMENT &&
+ ((ip->ip_off & htons(IP_DF)) == 0))) {
/*
* ip->ip_len = htons(ip->ip_len);
* ip->ip_off = htons(ip->ip_off);

View File

@ -1,23 +0,0 @@
--- freebsd_libpcap/savefile.c.orig Fri Nov 21 14:35:34 2003
+++ freebsd_libpcap/savefile.c Fri Nov 21 14:35:46 2003
@@ -178,6 +178,9 @@
#define LINKTYPE_HDLC 112 /* NetBSD HDLC framing */
#define LINKTYPE_IPFILTER 116 /* IP Filter capture files */
#define LINKTYPE_PFLOG 117 /* OpenBSD DLT_PFLOG */
+#if defined(DLT_PFSYNC)
+#define LINKTYPE_PFSYNC DLT_PFSYNC
+#endif
static struct linktype_map {
int dlt;
@@ -271,6 +274,10 @@
* defining DLT_* values that collide with those
* LINKTYPE_* values, either).
*/
+ { DLT_PFLOG, LINKTYPE_PFLOG },
+#if defined(DLT_PFSYNC)
+ { DLT_PFSYNC, LINKTYPE_PFSYNC },
+#endif
{ -1, -1 }
};