aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorlawrance <lawrance@FreeBSD.org>2005-12-13 13:49:05 +0800
committerlawrance <lawrance@FreeBSD.org>2005-12-13 13:49:05 +0800
commit4338a83c43bda46c36437f4d94fe1adee7730c3f (patch)
tree6ffedd5fab25a00d1d1611e7353c67a5a77cf5e8
parent0531f6de2de958538e24b3ae90fe88828d92c20b (diff)
downloadfreebsd-ports-gnome-4338a83c43bda46c36437f4d94fe1adee7730c3f.tar.gz
freebsd-ports-gnome-4338a83c43bda46c36437f4d94fe1adee7730c3f.tar.zst
freebsd-ports-gnome-4338a83c43bda46c36437f4d94fe1adee7730c3f.zip
Fix a bug that prevented tcpflow picking up traffic when
listening on the loopback interface. Bump PORTREVISION. PR: ports/89672 Submitted by: Oles Hnatkevych <don_oles@able.com.ua> Approved by: jose@we.lc.ehu.es (maintainer, timeout 14 days)
-rw-r--r--net/tcpflow/Makefile1
-rw-r--r--net/tcpflow/files/patch-datalink.c26
2 files changed, 27 insertions, 0 deletions
diff --git a/net/tcpflow/Makefile b/net/tcpflow/Makefile
index dda5a049604f..6c21d8f0ba35 100644
--- a/net/tcpflow/Makefile
+++ b/net/tcpflow/Makefile
@@ -7,6 +7,7 @@
PORTNAME= tcpflow
PORTVERSION= 0.21
+PORTREVISION= 1
CATEGORIES= net
MASTER_SITES= ftp://ftp.circlemud.org/pub/jelson/tcpflow/
diff --git a/net/tcpflow/files/patch-datalink.c b/net/tcpflow/files/patch-datalink.c
new file mode 100644
index 000000000000..32df9f1d5efd
--- /dev/null
+++ b/net/tcpflow/files/patch-datalink.c
@@ -0,0 +1,26 @@
+--- src/datalink.c.orig Mon May 9 12:00:38 2005
++++ src/datalink.c Mon May 9 12:23:47 2005
+@@ -42,6 +42,13 @@
+
+ #include "tcpflow.h"
+
++/*
++ * Byte-swap a 32-bit number.
++ * ("htonl()" or "ntohl()" won't work - we want to byte-swap even on
++ * big-endian platforms.)
++ */
++#define SWAPLONG(y) \
++((((y)&0xff)<<24) | (((y)&0xff00)<<8) | (((y)&0xff0000)>>8) | (((y)>>24)&0xff))
+
+
+ /* The DLT_NULL packet header is 4 bytes long. It contains a network
+@@ -71,7 +78,8 @@
+ #ifndef DLT_NULL_BROKEN
+ /* make sure this is AF_INET */
+ memcpy((char *)&family, (char *)p, sizeof(family));
+- family = ntohl(family);
++ // family = ntohl(family);
++ if ((family & 0xFFFF0000) != 0) family = SWAPLONG(family);
+ if (family != AF_INET) {
+ DEBUG(6) ("warning: received non-AF_INET null frame (type %d)", family);
+ return;