On Sat, Jun 22, 2013 at 05:24:36PM +0200, Sebastian Reitenbach wrote: > Hi, > > patch below updates driftnet to 1.0 version. > New version is not from the original author, but from a Ubuntu package, > downloaded from launchpad. > > Notably new features compared to the current version in the ports tree: > * PNG image support > * IPv6 support > * reading from pcap file > > Works for me on amd64 and i386. > > tests, comments or even OKs welcome.
Hey, I tested the patch on i386, via my amd64 which happens to route through my i386 laptop. Works as advertised, i tested png images and ipv6 support which seems to work fine. visiting google images search on my amd64 box and scrolling down was quite a stress test for driftnet running on my laptop, pictures appeared and left faster than I could see what they were. I didn't test pcap files though. I am inclined to say Ok, but please wait for at least 1 more :) cheers, -ryan > > cheers, > Sebastian > > Index: Makefile > =================================================================== > RCS file: /cvs/ports/x11/driftnet/Makefile,v > retrieving revision 1.12 > diff -u -p -u -r1.12 Makefile > --- Makefile 11 Mar 2013 11:46:09 -0000 1.12 > +++ Makefile 22 Jun 2013 12:13:38 -0000 > @@ -1,9 +1,10 @@ > -# $OpenBSD: Makefile,v 1.12 2013/03/11 11:46:09 espie Exp $ > +# $OpenBSD: Makefile,v 1.11 2012/12/23 13:25:11 sthen Exp $ > > COMMENT= network sniffer that grabs and displays images > > -DISTNAME= driftnet-0.1.6 > -REVISION= 4 > +VERSION = 1.0 > +DISTNAME= driftnet_${VERSION}.orig > +PKGNAME= driftnet-${VERSION} > CATEGORIES= x11 > > HOMEPAGE= http://www.ex-parrot.com/~chris/driftnet/ > @@ -13,23 +14,21 @@ MAINTAINER= Claudio Jeker <claudio@openb > # GPL > PERMIT_PACKAGE_CDROM= Yes > > -MASTER_SITES= http://www.ex-parrot.com/~chris/driftnet/ > +MASTER_SITES= https://launchpad.net/ubuntu/+archive/primary/+files/ > > -WANTLIB += X11 Xcomposite Xcursor Xdamage Xext Xfixes > -WANTLIB += Xi Xinerama Xrandr Xrender atk-1.0 c cairo expat fontconfig > -WANTLIB += freetype gio-2.0 glib-2.0 gobject-2.0 > -WANTLIB += m pango-1.0 pangocairo-1.0 pangoft2-1.0 pcap pixman-1 > -WANTLIB += png pthread pthread-stubs xcb z ungif jpeg gdk_pixbuf-2.0 > -WANTLIB += gdk-x11-2.0 gtk-x11-2.0 GL xcb-render xcb-shm > - > -MODULES= devel/gettext > +WANTLIB += c m pcap gif png pthread z jpeg > +WANTLIB += glib-2.0 gobject-2.0 gdk-x11-2.0 gtk-x11-2.0 > > LIB_DEPENDS= graphics/libungif \ > graphics/jpeg \ > x11/gtk+2 > > -USE_GROFF = Yes > - > NO_TEST= Yes > + > +WRKDIST = ${WRKDIR}/${PKGNAME} > + > +CONFIGURE_STYLE = gnu > +CONFIGURE_ENV = CPPFLAGS="-I${LOCALBASE}/include/gtk-2.0" \ > + LDFLAGS="-L${LOCALBASE}/lib -L${X11BASE}/lib -lm -lz" > > .include <bsd.port.mk> > Index: distinfo > =================================================================== > RCS file: /cvs/ports/x11/driftnet/distinfo,v > retrieving revision 1.1.1.1 > diff -u -p -u -r1.1.1.1 distinfo > --- distinfo 30 Apr 2007 13:38:50 -0000 1.1.1.1 > +++ distinfo 22 Jun 2013 12:13:38 -0000 > @@ -1,5 +1,2 @@ > -MD5 (driftnet-0.1.6.tar.gz) = jhHXd3BFL5e7PCP1EEiYFQ== > -RMD160 (driftnet-0.1.6.tar.gz) = AQV/PLmS+qU3qLGI4RbG8hAWz6w= > -SHA1 (driftnet-0.1.6.tar.gz) = J5yzpZbzVOfpxqw8xFaz0R3O0v8= > -SHA256 (driftnet-0.1.6.tar.gz) = 299+rTrhSxCfiMht7et1JL6MJXqnc6eBiRIW8BM3PW0= > -SIZE (driftnet-0.1.6.tar.gz) = 36989 > +SHA256 (driftnet_1.0.orig.tar.gz) = > suZ17EyO7BJhmNQBCIC1edcozxflIQbX9A8KE1AA6qc= > +SIZE (driftnet_1.0.orig.tar.gz) = 151184 > Index: patches/patch-Makefile > =================================================================== > RCS file: patches/patch-Makefile > diff -N patches/patch-Makefile > --- patches/patch-Makefile 20 Mar 2010 16:52:08 -0000 1.2 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,84 +0,0 @@ > -$OpenBSD: patch-Makefile,v 1.2 2010/03/20 16:52:08 jasper Exp $ > ---- Makefile.orig Tue Jul 9 21:26:41 2002 > -+++ Makefile Fri Jan 29 16:15:17 2010 > -@@ -16,23 +16,23 @@ > - #CC = gcc > - > - # Basic compiler, linker flags; should not need any changes. > --CFLAGS += -g -Wall > --LDFLAGS += -g > -+#CFLAGS += -g -Wall > -+#LDFLAGS += -g > - > - # You might need these if libpcap is installed somewhere random. > --CFLAGS += -I/usr/include/pcap > -+CFLAGS += -I/usr/local/include > - #LDFLAGS += -L/path/to/libpcap.so > - > - # Required on Linux to get BSDish definitions of the TCP/IP structs. > --CFLAGS += -D_BSD_SOURCE > -+#CFLAGS += -D_BSD_SOURCE > - > - # We always need the pcap and pthread libraries. > --LDLIBS += -lpcap -lpthread > -+LDLIBS += -lpcap -pthread > - > - # Optional C compiler and linker flags. Typical driftnet builds have support > - # for displaying captured images in an X window, and need the following > flags: > --CFLAGS += `gtk-config --cflags` > --LDLIBS += -ljpeg -lungif `gtk-config --libs` > -+CFLAGS += `pkg-config --cflags gtk+-2.0` > -+LDLIBS += -ljpeg -lungif `pkg-config --libs gtk+-2.0` > - > - # Alternatively, you can build a version of driftnet which can only be used > - # in `adjunct' mode as the back end for some other image-processing > program. To > -@@ -72,23 +72,17 @@ BINS = driftnet > - > - OBJS = $(SRCS:.c=.o) > - > --default: driftnet driftnet.1 > -+all: driftnet driftnet.1 > - > --driftnet: depend $(OBJS) > -+driftnet: $(OBJS) > - $(CC) -o driftnet $(OBJS) $(LDFLAGS) $(LDLIBS) > - > - driftnet.1: driftnet.1.in Makefile > - ( echo '.\" DO NOT EDIT THIS FILE-- edit driftnet.1.in instead' ; sed > s/@@@VERSION@@@/$(VERSION)/ ) < driftnet.1.in > driftnet.1 > - > --endianness: endian > -- ./endian > endianness > -+%.o: %.c Makefile > -+ $(CC) $(CFLAGS) -c -o $@ $< > - > --endian: endian.c > -- $(CC) $(CFLAGS) -o endian endian.c > -- > --%.o: %.c Makefile endianness > -- $(CC) $(CFLAGS) `cat endianness` -c -o $@ $< > -- > - clean: nodepend > - rm -f *~ *.bak *.o core $(BINS) TAGS driftnet.1 endian endianness > - > -@@ -102,13 +96,19 @@ tarball: nodepend $(SRCS) $(HDRS) $(TXTS) > - rm -rf driftnet-$(VERSION) > - mv driftnet-$(VERSION).tar.gz .. > - > --depend: endianness > -- makedepend -- $(CFLAGS) `cat endianness` -- $(SRCS) > -+depend: > -+ makedepend -- $(CFLAGS) -- $(SRCS) > - touch depend > - rm -f Makefile.bak > - > - nodepend: > - makedepend -- -- > - rm -f depend Makefile.bak > -+ > -+install: > -+ ${INSTALL} ${INSTALL_COPY} ${INSTALL_STRIP} -o ${BINOWN} -g ${BINGRP} \ > -+ -m ${BINMODE} driftnet ${PREFIX}/bin/driftnet > -+ ${INSTALL} ${INSTALL_COPY} -o ${MANOWN} -g ${MANGRP} -m ${MANMODE} \ > -+ driftnet.1 ${PREFIX}/man/man1/driftnet.1 > - > - # DO NOT DELETE > Index: patches/patch-Makefile_in > =================================================================== > RCS file: patches/patch-Makefile_in > diff -N patches/patch-Makefile_in > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-Makefile_in 22 Jun 2013 12:13:38 -0000 > @@ -0,0 +1,21 @@ > +$OpenBSD$ > +--- Makefile.in.orig Sun May 12 18:33:18 2013 > ++++ Makefile.in Fri Jun 21 09:38:27 2013 > +@@ -258,7 +258,7 @@ top_srcdir = @top_srcdir@ > + SUBDIRS = src > + dist_doc_DATA = README TODO > + EXTRA_DIST = driftnet.1.in CHANGES CREDITS > +-MANPAGE = driftnet.1.gz > ++MANPAGE = driftnet.1 > + MAN1DIR = $(DESTDIR)$(mandir)/man1/ > + all: all-recursive > + > +@@ -773,7 +773,7 @@ clean-local: > + rm -f $(MANPAGE) > + > + install-data-local: driftnet.1.in > +- cat $(srcdir)/driftnet.1.in | sed s/@*VERSION@*/$(VERSION)/ | > GZIP=$(GZIP_ENV) gzip > $(MANPAGE) > ++ cat $(srcdir)/driftnet.1.in | sed s/@*VERSION@*/$(VERSION)/ > $(MANPAGE) > + $(MKDIR_P) $(MAN1DIR) > + $(INSTALL_DATA) $(MANPAGE) $(MAN1DIR) || exit $$? > + > Index: patches/patch-img_h > =================================================================== > RCS file: patches/patch-img_h > diff -N patches/patch-img_h > --- patches/patch-img_h 30 Apr 2007 13:38:50 -0000 1.1.1.1 > +++ /dev/null 1 Jan 1970 00:00:00 -0000 > @@ -1,29 +0,0 @@ > -$OpenBSD: patch-img_h,v 1.1.1.1 2007/04/30 13:38:50 claudio Exp $ > ---- img.h.orig Tue Apr 24 14:45:52 2007 > -+++ img.h Tue Apr 24 14:47:02 2007 > -@@ -20,13 +20,15 @@ > - # include <stdint.h> /* C99 standard */ > - #endif > - > -+#include <sys/endian.h> > -+ > - #include <stdio.h> > - > - typedef uint8_t chan; > - typedef uint32_t pel; > - > - /* Yuk. GDKRGB expects data in a specific ordering. */ > --#if defined(DRIFTNET_LITTLE_ENDIAN) > -+#if defined(_LITTLE_ENDIAN) > - # define PEL(r, g, b) ((pel)((chan)(r) | ((chan)(g) << 8) | > ((chan)(b) << 16))) > - # define PELA(r, g, b, a) ((pel)((chan)(r) | ((chan)(g) << 8) | > ((chan)(b) << 16) | ((chan)(a) << 24))) > - > -@@ -34,7 +36,7 @@ typedef uint32_t pel; > - # define GETG(p) ((chan)(((p) & (pel)0x0000ff00) >> 8)) > - # define GETB(p) ((chan)(((p) & (pel)0x00ff0000) >> 16)) > - # define GETA(p) ((chan)(((p) & (pel)0xff000000) >> 24)) > --#elif defined(DRIFTNET_BIG_ENDIAN) > -+#elif defined(_BIG_ENDIAN) > - # define PEL(r, g, b) ((pel)(((chan)(r) << 24) | ((chan)(g) << 16) > | ((chan)(b) << 8))) > - # define PELA(r, g, b, a) ((pel)(((chan)(r) << 24) | ((chan)(g) << 16) > | ((chan)(b) << 8) | ((chan)(a)))) > - > Index: patches/patch-src_display_img_h > =================================================================== > RCS file: patches/patch-src_display_img_h > diff -N patches/patch-src_display_img_h > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_display_img_h 22 Jun 2013 12:13:38 -0000 > @@ -0,0 +1,27 @@ > +$OpenBSD$ > +--- src/display/img.h.orig Fri Jun 21 08:45:24 2013 > ++++ src/display/img.h Fri Jun 21 08:46:00 2013 > +@@ -19,11 +19,13 @@ > + > + #include <stdio.h> > + > ++#include <sys/endian.h> > ++ > + typedef uint8_t chan; > + typedef uint32_t pel; > + > + /* Yuk. GDKRGB expects data in a specific ordering. */ > +-#if defined(DRIFTNET_LITTLE_ENDIAN) > ++#if defined(LITTLE_ENDIAN) > + # define PEL(r, g, b) ((pel)((chan)(r) | ((chan)(g) << 8) | > ((chan)(b) << 16))) > + # define PELA(r, g, b, a) ((pel)((chan)(r) | ((chan)(g) << 8) | > ((chan)(b) << 16) | ((chan)(a) << 24))) > + > +@@ -31,7 +33,7 @@ typedef uint32_t pel; > + # define GETG(p) ((chan)(((p) & (pel)0x0000ff00) >> 8)) > + # define GETB(p) ((chan)(((p) & (pel)0x00ff0000) >> 16)) > + # define GETA(p) ((chan)(((p) & (pel)0xff000000) >> 24)) > +-#elif defined(DRIFTNET_BIG_ENDIAN) > ++#elif defined(BIG_ENDIAN) > + # define PEL(r, g, b) ((pel)(((chan)(r) << 24) | ((chan)(g) << 16) > | ((chan)(b) << 8))) > + # define PELA(r, g, b, a) ((pel)(((chan)(r) << 24) | ((chan)(g) << 16) > | ((chan)(b) << 8) | ((chan)(a)))) > + > Index: patches/patch-src_display_png_c > =================================================================== > RCS file: patches/patch-src_display_png_c > diff -N patches/patch-src_display_png_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_display_png_c 22 Jun 2013 12:13:38 -0000 > @@ -0,0 +1,19 @@ > +$OpenBSD$ > + > +png_set_gray_1_2_4_to_8 doesn't seem to exist in newer > +png anymore > + > +--- src/display/png.c.orig Fri Jun 21 09:29:56 2013 > ++++ src/display/png.c Fri Jun 21 09:30:09 2013 > +@@ -132,9 +132,9 @@ int png_load_img(img I) { > + /* Convert greyscale images to 8-bit RGB */ > + if (color_type == PNG_COLOR_TYPE_GRAY || > + color_type == PNG_COLOR_TYPE_GRAY_ALPHA) { > +- if (bit_depth < 8) { > ++ /* if (bit_depth < 8) { > + png_set_gray_1_2_4_to_8(png_ptr); > +- } > ++ } */ > + png_set_gray_to_rgb(png_ptr); > + } > + > Index: patches/patch-src_layer2_c > =================================================================== > RCS file: patches/patch-src_layer2_c > diff -N patches/patch-src_layer2_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_layer2_c 22 Jun 2013 12:13:38 -0000 > @@ -0,0 +1,35 @@ > +$OpenBSD$ > + > +include the right headers, and define a struct ethhdr > +like its available on Linux > + > +--- src/layer2.c.orig Fri Jun 21 08:58:51 2013 > ++++ src/layer2.c Fri Jun 21 09:12:06 2013 > +@@ -3,7 +3,10 @@ > + #include <string.h> > + #include <assert.h> > + > +-#include <netinet/ether.h> > ++//#include <netinet/ether.h> > ++#include <sys/types.h> > ++#include <netinet/in_systm.h> > ++#include <netinet/in.h> > + #include <netinet/ip.h> > + #include <netinet/ip6.h> > + > +@@ -11,6 +14,15 @@ > + > + #include "log.h" > + #include "layer2.h" > ++ > ++#define ETH_P_IP 0x0800 > ++#define ETH_P_IPV6 0x86DD > ++#define ETH_ALEN 6 > ++struct ethhdr { > ++ unsigned char h_dest[ETH_ALEN]; > ++ unsigned char h_source[ETH_ALEN]; > ++ u_int16_t h_proto; > ++} __attribute__((packed)); > + > + int handle_link_layer(datalink_info_t *info, const u_char *pkt, uint8_t > *nextproto, > + int *offsetnext) > Index: patches/patch-src_layer3_c > =================================================================== > RCS file: patches/patch-src_layer3_c > diff -N patches/patch-src_layer3_c > --- /dev/null 1 Jan 1970 00:00:00 -0000 > +++ patches/patch-src_layer3_c 22 Jun 2013 12:13:38 -0000 > @@ -0,0 +1,19 @@ > +$OpenBSD$ > + > +import right headers > + > +--- src/layer3.c.orig Fri Jun 21 09:12:25 2013 > ++++ src/layer3.c Fri Jun 21 09:22:48 2013 > +@@ -3,8 +3,12 @@ > + #include <string.h> > + #include <assert.h> > + > ++#include <sys/types.h> > ++#include <netinet/in_systm.h> > ++#include <netinet/in.h> > + #include <netinet/ip.h> > + #include <netinet/ip6.h> > ++#include <sys/socket.h> > + > + #include "log.h" > + #include "layer3.h" > Index: pkg/DESCR > =================================================================== > RCS file: /cvs/ports/x11/driftnet/pkg/DESCR,v > retrieving revision 1.1.1.1 > diff -u -p -u -r1.1.1.1 DESCR > --- pkg/DESCR 30 Apr 2007 13:38:50 -0000 1.1.1.1 > +++ pkg/DESCR 22 Jun 2013 12:13:38 -0000 > @@ -1,3 +1,3 @@ > -Driftnet watches network traffic, and picks out and displays JPEG and > -GIF images for display. It can also extract MPEG audio data from the > -network and play it with an external helper app. Use at own risk. > +Driftnet watches network traffic, and picks out and displays JPEG, PNG > +and GIF images for display. It can also extract MPEG audio data from > +the network and play it with an external helper app. Use at own risk. > Index: pkg/PLIST > =================================================================== > RCS file: /cvs/ports/x11/driftnet/pkg/PLIST,v > retrieving revision 1.2 > diff -u -p -u -r1.2 PLIST > --- pkg/PLIST 20 Mar 2010 16:52:08 -0000 1.2 > +++ pkg/PLIST 22 Jun 2013 12:13:38 -0000 > @@ -1,3 +1,6 @@ > @comment $OpenBSD: PLIST,v 1.2 2010/03/20 16:52:08 jasper Exp $ > @bin bin/driftnet > @man man/man1/driftnet.1 > +share/doc/driftnet/ > +share/doc/driftnet/README > +share/doc/driftnet/TODO >