summaryrefslogtreecommitdiff
path: root/security
diff options
context:
space:
mode:
authoradrianp <adrianp@pkgsrc.org>2009-05-09 16:33:04 +0000
committeradrianp <adrianp@pkgsrc.org>2009-05-09 16:33:04 +0000
commitb5be4b8fdd3de8ae19715fff98e426841f6cfea5 (patch)
treeead6b41d5ed6674341101094f7bcab4546be1099 /security
parent329a41db42ff4a31424bdb32a74f308f06549520 (diff)
downloadpkgsrc-b5be4b8fdd3de8ae19715fff98e426841f6cfea5.tar.gz
Add a patch from Debian that allows the dsniff tools to read from a pcap
file in addition to sniffing the wire directly.
Diffstat (limited to 'security')
-rw-r--r--security/dsniff/Makefile6
-rw-r--r--security/dsniff/distinfo14
-rw-r--r--security/dsniff/patches/patch-ba24
-rw-r--r--security/dsniff/patches/patch-bb63
-rw-r--r--security/dsniff/patches/patch-bc23
-rw-r--r--security/dsniff/patches/patch-bd60
-rw-r--r--security/dsniff/patches/patch-be23
-rw-r--r--security/dsniff/patches/patch-bf58
-rw-r--r--security/dsniff/patches/patch-bg23
-rw-r--r--security/dsniff/patches/patch-bh60
-rw-r--r--security/dsniff/patches/patch-bi24
-rw-r--r--security/dsniff/patches/patch-bj57
-rw-r--r--security/dsniff/patches/patch-bk23
-rw-r--r--security/dsniff/patches/patch-bl45
14 files changed, 499 insertions, 4 deletions
diff --git a/security/dsniff/Makefile b/security/dsniff/Makefile
index 18935edefc6..4e68373950d 100644
--- a/security/dsniff/Makefile
+++ b/security/dsniff/Makefile
@@ -1,15 +1,15 @@
-# $NetBSD: Makefile,v 1.30 2008/10/01 08:43:09 apb Exp $
+# $NetBSD: Makefile,v 1.31 2009/05/09 16:33:04 adrianp Exp $
.include "Makefile.common"
-PKGREVISION= 6
+PKGREVISION= 7
COMMENT= Password sniffer (webspy)
DEPENDS+= dsniff-nox11-[0-9]*:../../security/dsniff-nox11
BUILD_TARGET= libmissing.a webspy
-INSTALLATION_DIRS+= sbin man/man8
+INSTALLATION_DIRS+= sbin ${PKGMANDIR}/man8
do-install:
${INSTALL_PROGRAM} ${WRKSRC}/webspy ${PREFIX}/sbin
diff --git a/security/dsniff/distinfo b/security/dsniff/distinfo
index a487148733d..b4e4eae054d 100644
--- a/security/dsniff/distinfo
+++ b/security/dsniff/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.8 2008/10/01 08:43:09 apb Exp $
+$NetBSD: distinfo,v 1.9 2009/05/09 16:33:04 adrianp Exp $
SHA1 (dsniff-2.3.tar.gz) = 671a1df823ab0657fc95e79112924a57281e9c3b
RMD160 (dsniff-2.3.tar.gz) = 89dad0259e90acef30a7aa5f3471de3aaeb06147
@@ -8,3 +8,15 @@ SHA1 (patch-ab) = 6385da7139dcb11ea29ffba468e7fac260b61b44
SHA1 (patch-ac) = da25b9c7d6c06a18308ae8739bc5483341121dee
SHA1 (patch-ad) = cab09e1b1a61fd6a3fa96c24fff3cd1519146a3e
SHA1 (patch-ae) = e54a7be65c2e1d236b2427d216e1184ff6046a0b
+SHA1 (patch-ba) = 5f774dcb904681f123fa9cae25ea4d88afee6bb6
+SHA1 (patch-bb) = 58026805c5a8f91f7fa80a94ddbea0b8fadfadd5
+SHA1 (patch-bc) = 6d27957bd1d10b66428dbea214b0463fa8321bef
+SHA1 (patch-bd) = dc0f17dd287327ff5105e91c5bfa8b2390841fe2
+SHA1 (patch-be) = 878d5e81909790d852db442ec0bb57fb161a73a4
+SHA1 (patch-bf) = c1bd7f1794d6f8b9fec6cf1d6b24e75ed32c0616
+SHA1 (patch-bg) = 6888b68ae38b32a2fd635f5b08c7c637033a28b5
+SHA1 (patch-bh) = 1e4bee85e6d289c011632ef84d460e46746287c9
+SHA1 (patch-bi) = 47c6b0e3682af9ee3b212b0d0800d9a74037df30
+SHA1 (patch-bj) = b6d45af26058a221cb68d72c45e7358c1ef894c0
+SHA1 (patch-bk) = 3a36f7a11a5590daea9b1cf7c8d7772a88ff2a18
+SHA1 (patch-bl) = add5db6023f9e76e269e953eb95ff5b808f650ab
diff --git a/security/dsniff/patches/patch-ba b/security/dsniff/patches/patch-ba
new file mode 100644
index 00000000000..ccca9f851a6
--- /dev/null
+++ b/security/dsniff/patches/patch-ba
@@ -0,0 +1,24 @@
+$NetBSD: patch-ba,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/dsniff.8 dsniff-2.3/dsniff.8
+--- dsniff.8.orig 2000-12-15 16:05:36.000000000 +0000
++++ dsniff.8 2009-05-06 23:23:49.000000000 +0100
+@@ -10,7 +10,7 @@
+ .nf
+ .fi
+ \fBdsniff\fR [\fB-c\fR] [\fB-d\fR] [\fB-m\fR] [\fB-n\fR] [\fB-i
+-\fIinterface\fR] [\fB-s \fIsnaplen\fR] [\fB-f \fIservices\fR]
++\fIinterface\fR | \fB-p \fIpcapfile\fR] [\fB-s \fIsnaplen\fR] [\fB-f \fIservices\fR]
+ [\fB-t \fItrigger[,...]\fR]]
+ [\fB-r\fR|\fB-w\fR \fIsavefile\fR] [\fIexpression\fR]
+ .SH DESCRIPTION
+@@ -45,6 +45,9 @@
+ Do not resolve IP addresses to hostnames.
+ .IP "\fB-i \fIinterface\fR"
+ Specify the interface to listen on.
++.IP "\fB-p \fIpcapfile\fR"
++Rather than processing the contents of packets observed upon the network
++process the given PCAP capture file.
+ .IP "\fB-s \fIsnaplen\fR"
+ Analyze at most the first \fIsnaplen\fR bytes of each TCP connection,
+ rather than the default of 1024.
diff --git a/security/dsniff/patches/patch-bb b/security/dsniff/patches/patch-bb
new file mode 100644
index 00000000000..0f4a8a9a948
--- /dev/null
+++ b/security/dsniff/patches/patch-bb
@@ -0,0 +1,63 @@
+$NetBSD: patch-bb,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/dsniff.c dsniff-2.3/dsniff.c
+--- dsniff.c.orig 2000-12-01 21:27:15.000000000 +0000
++++ dsniff.c 2009-05-06 23:23:49.000000000 +0100
+@@ -44,8 +44,9 @@
+ usage(void)
+ {
+ fprintf(stderr, "Version: " VERSION "\n"
+- "Usage: dsniff [-cdmn] [-i interface] [-s snaplen] [-f services]\n"
+- " [-t trigger[,...]] [-r|-w savefile] [expression]\n");
++ "Usage: dsniff [-cdmn] [-i interface | -p pcapfile] [-s snaplen]\n"
++ " [-f services] [-t trigger[,...]] [-r|-w savefile]\n"
++ " [expression]\n");
+ exit(1);
+ }
+
+@@ -75,7 +76,7 @@
+
+ services = savefile = triggers = NULL;
+
+- while ((c = getopt(argc, argv, "cdf:i:mnr:s:t:w:h?V")) != -1) {
++ while ((c = getopt(argc, argv, "cdf:i:mnp:r:s:t:w:h?V")) != -1) {
+ switch (c) {
+ case 'c':
+ Opt_client = 1;
+@@ -95,6 +96,9 @@
+ case 'n':
+ Opt_dns = 0;
+ break;
++ case 'p':
++ nids_params.filename = optarg;
++ break;
+ case 'r':
+ Opt_read = 1;
+ savefile = optarg;
+@@ -164,10 +168,23 @@
+ else nids_register_tcp(trigger_tcp);
+
+ if (nids_params.pcap_filter != NULL) {
+- warnx("listening on %s [%s]", nids_params.device,
+- nids_params.pcap_filter);
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s [%s]", nids_params.device,
++ nids_params.pcap_filter);
++ }
++ else {
++ warnx("using %s [%s]", nids_params.filename,
++ nids_params.pcap_filter);
++ }
++ }
++ else {
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s", nids_params.device);
++ }
++ else {
++ warnx("using %s", nids_params.filename);
++ }
+ }
+- else warnx("listening on %s", nids_params.device);
+
+ nids_run();
+
diff --git a/security/dsniff/patches/patch-bc b/security/dsniff/patches/patch-bc
new file mode 100644
index 00000000000..989224b188b
--- /dev/null
+++ b/security/dsniff/patches/patch-bc
@@ -0,0 +1,23 @@
+$NetBSD: patch-bc,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/filesnarf.8 dsniff-2.3/filesnarf.8
+--- filesnarf.8.orig 2000-11-19 06:23:33.000000000 +0000
++++ filesnarf.8 2009-05-06 23:23:49.000000000 +0100
+@@ -9,7 +9,7 @@
+ .na
+ .nf
+ .fi
+-\fBfilesnarf\fR [\fB-i \fIinterface\fR] [[\fB-v\fR] \fIpattern [\fIexpression\fR]]
++\fBfilesnarf\fR [\fB-i \fIinterface\fR | \fB-p \fIpcapfile\fR] [[\fB-v\fR] \fIpattern [\fIexpression\fR]]
+ .SH DESCRIPTION
+ .ad
+ .fi
+@@ -18,6 +18,8 @@
+ .SH OPTIONS
+ .IP "\fB-i \fIinterface\fR"
+ Specify the interface to listen on.
++.IP "\fB-p \fIpcapfile\fR"
++Process packets from the specified PCAP capture file instead of the network.
+ .IP \fB-v\fR
+ "Versus" mode. Invert the sense of matching, to select non-matching
+ files.
diff --git a/security/dsniff/patches/patch-bd b/security/dsniff/patches/patch-bd
new file mode 100644
index 00000000000..4b51a0e384b
--- /dev/null
+++ b/security/dsniff/patches/patch-bd
@@ -0,0 +1,60 @@
+$NetBSD: patch-bd,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/filesnarf.c dsniff-2.3/filesnarf.c
+--- filesnarf.c.orig 2000-12-15 20:16:58.000000000 +0000
++++ filesnarf.c 2009-05-06 23:23:49.000000000 +0100
+@@ -51,7 +51,7 @@
+ usage(void)
+ {
+ fprintf(stderr, "Version: " VERSION "\n"
+- "Usage: filesnarf [-i interface] [[-v] pattern [expression]]\n");
++ "Usage: filesnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]\n");
+ exit(1);
+ }
+
+@@ -462,11 +462,14 @@
+ {
+ int c;
+
+- while ((c = getopt(argc, argv, "i:vh?V")) != -1) {
++ while ((c = getopt(argc, argv, "i:p:vh?V")) != -1) {
+ switch (c) {
+ case 'i':
+ nids_params.device = optarg;
+ break;
++ case 'p':
++ nids_params.filename = optarg;
++ break;
+ case 'v':
+ Opt_invert = 1;
+ break;
+@@ -496,11 +499,24 @@
+ nids_register_ip(decode_udp_nfs);
+ nids_register_tcp(decode_tcp_nfs);
+
+- if (nids_params.pcap_filter != NULL) {
+- warnx("listening on %s [%s]", nids_params.device,
+- nids_params.pcap_filter);
+- }
+- else warnx("listening on %s", nids_params.device);
++ if (nids_params.pcap_filter != NULL) {
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s [%s]", nids_params.device,
++ nids_params.pcap_filter);
++ }
++ else {
++ warnx("using %s [%s]", nids_params.filename,
++ nids_params.pcap_filter);
++ }
++ }
++ else {
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s", nids_params.device);
++ }
++ else {
++ warnx("using %s", nids_params.filename);
++ }
++ }
+
+ nids_run();
+
diff --git a/security/dsniff/patches/patch-be b/security/dsniff/patches/patch-be
new file mode 100644
index 00000000000..1533d3146fc
--- /dev/null
+++ b/security/dsniff/patches/patch-be
@@ -0,0 +1,23 @@
+$NetBSD: patch-be,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/mailsnarf.8 dsniff-2.3/mailsnarf.8
+--- mailsnarf.8.orig 2000-11-19 06:09:28.000000000 +0000
++++ mailsnarf.8 2009-05-06 23:23:49.000000000 +0100
+@@ -9,7 +9,7 @@
+ .na
+ .nf
+ .fi
+-\fBmailsnarf\fR [\fB-i \fIinterface\fR] [[\fB-v\fR] \fIpattern [\fIexpression\fR]]
++\fBmailsnarf\fR [\fB-i \fIinterface\fR | \fB-p \fIpcapfile\fR] [[\fB-v\fR] \fIpattern [\fIexpression\fR]]
+ .SH DESCRIPTION
+ .ad
+ .fi
+@@ -19,6 +19,8 @@
+ .SH OPTIONS
+ .IP "\fB-i \fIinterface\fR"
+ Specify the interface to listen on.
++.IP "\fB-p \fIpcapfile\fR"
++Process packets from the specified PCAP capture file instead of the network.
+ .IP \fB-v\fR
+ "Versus" mode. Invert the sense of matching, to select non-matching
+ messages.
diff --git a/security/dsniff/patches/patch-bf b/security/dsniff/patches/patch-bf
new file mode 100644
index 00000000000..ff53dd53ec3
--- /dev/null
+++ b/security/dsniff/patches/patch-bf
@@ -0,0 +1,58 @@
+$NetBSD: patch-bf,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/mailsnarf.c dsniff-2.3/mailsnarf.c
+--- mailsnarf.c.orig 2000-11-19 19:39:41.000000000 +0000
++++ mailsnarf.c 2009-05-06 23:23:49.000000000 +0100
+@@ -57,7 +57,7 @@
+ usage(void)
+ {
+ fprintf(stderr, "Version: " VERSION "\n"
+- "Usage: mailsnarf [-i interface] [[-v] pattern [expression]]\n");
++ "Usage: mailsnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]\n");
+ exit(1);
+ }
+
+@@ -340,11 +340,14 @@
+ {
+ int c;
+
+- while ((c = getopt(argc, argv, "i:vh?V")) != -1) {
++ while ((c = getopt(argc, argv, "i:p:vh?V")) != -1) {
+ switch (c) {
+ case 'i':
+ nids_params.device = optarg;
+ break;
++ case 'p':
++ nids_params.filename = optarg;
++ break;
+ case 'v':
+ Opt_invert = 1;
+ break;
+@@ -374,10 +377,23 @@
+ nids_register_tcp(sniff_pop_session);
+
+ if (nids_params.pcap_filter != NULL) {
+- warnx("listening on %s [%s]", nids_params.device,
+- nids_params.pcap_filter);
+- }
+- else warnx("listening on %s", nids_params.device);
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s [%s]", nids_params.device,
++ nids_params.pcap_filter);
++ }
++ else {
++ warnx("using %s [%s]", nids_params.filename,
++ nids_params.pcap_filter);
++ }
++ }
++ else {
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s", nids_params.device);
++ }
++ else {
++ warnx("using %s", nids_params.filename);
++ }
++ }
+
+ nids_run();
+
diff --git a/security/dsniff/patches/patch-bg b/security/dsniff/patches/patch-bg
new file mode 100644
index 00000000000..4d7fb43b51f
--- /dev/null
+++ b/security/dsniff/patches/patch-bg
@@ -0,0 +1,23 @@
+$NetBSD: patch-bg,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/msgsnarf.8 dsniff-2.3/msgsnarf.8
+--- msgsnarf.8.orig 2000-11-19 06:10:50.000000000 +0000
++++ msgsnarf.8 2009-05-06 23:23:49.000000000 +0100
+@@ -9,7 +9,7 @@
+ .na
+ .nf
+ .fi
+-\fBmsgsnarf\fR [\fB-i \fIinterface\fR] [[\fB-v\fR] \fIpattern [\fIexpression\fR]]
++\fBmsgsnarf\fR [\fB-i \fIinterface\fR | \fB-p \fIpcapfile\fR] [[\fB-v\fR] \fIpattern [\fIexpression\fR]]
+ .SH DESCRIPTION
+ .ad
+ .fi
+@@ -19,6 +19,8 @@
+ .SH OPTIONS
+ .IP "\fB-i \fIinterface\fR"
+ Specify the interface to listen on.
++.IP "\fB-p \fIpcapfile\fR"
++Process packets from the specified PCAP capture file instead of the network.
+ .IP \fB-v\fR
+ "Versus" mode. Invert the sense of matching, to select non-matching
+ messages.
diff --git a/security/dsniff/patches/patch-bh b/security/dsniff/patches/patch-bh
new file mode 100644
index 00000000000..29e6712ac04
--- /dev/null
+++ b/security/dsniff/patches/patch-bh
@@ -0,0 +1,60 @@
+$NetBSD: patch-bh,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/msgsnarf.c dsniff-2.3/msgsnarf.c
+--- msgsnarf.c.orig 2000-12-15 20:12:19.000000000 +0000
++++ msgsnarf.c 2009-05-06 23:23:49.000000000 +0100
+@@ -41,7 +41,7 @@
+ usage(void)
+ {
+ fprintf(stderr, "Version: " VERSION "\n"
+- "Usage: msgsnarf [-i interface] [[-v] pattern [expression]]\n");
++ "Usage: msgsnarf [-i interface | -p pcapfile] [[-v] pattern [expression]]\n");
+ exit(1);
+ }
+
+@@ -627,11 +627,14 @@
+ {
+ int c;
+
+- while ((c = getopt(argc, argv, "i:hv?V")) != -1) {
++ while ((c = getopt(argc, argv, "i:p:hv?V")) != -1) {
+ switch (c) {
+ case 'i':
+ nids_params.device = optarg;
+ break;
++ case 'p':
++ nids_params.filename = optarg;
++ break;
+ case 'v':
+ Opt_invert = 1;
+ break;
+@@ -660,11 +663,24 @@
+
+ nids_register_tcp(sniff_msgs);
+
+- if (nids_params.pcap_filter != NULL) {
+- warnx("listening on %s [%s]", nids_params.device,
+- nids_params.pcap_filter);
+- }
+- else warnx("listening on %s", nids_params.device);
++ if (nids_params.pcap_filter != NULL) {
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s [%s]", nids_params.device,
++ nids_params.pcap_filter);
++ }
++ else {
++ warnx("using %s [%s]", nids_params.filename,
++ nids_params.pcap_filter);
++ }
++ }
++ else {
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s", nids_params.device);
++ }
++ else {
++ warnx("using %s", nids_params.filename);
++ }
++ }
+
+ nids_run();
+
diff --git a/security/dsniff/patches/patch-bi b/security/dsniff/patches/patch-bi
new file mode 100644
index 00000000000..421cdf0ef9d
--- /dev/null
+++ b/security/dsniff/patches/patch-bi
@@ -0,0 +1,24 @@
+$NetBSD: patch-bi,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/urlsnarf.8 dsniff-2.3/urlsnarf.8
+--- urlsnarf.8.orig 2000-11-19 06:24:51.000000000 +0000
++++ urlsnarf.8 2009-05-06 23:24:07.000000000 +0100
+@@ -9,7 +9,7 @@
+ .na
+ .nf
+ .fi
+-\fBurlsnarf\fR [\fB-n\fR] [\fB-i \fIinterface\fR] [[\fB-v\fR] \fIpattern [\fIexpression\fR]]
++\fBurlsnarf\fR [\fB-n\fR] [\fB-i \fIinterface\fR | \fB-p \fIpcapfile\fR] [[\fB-v\fR] \fIpattern [\fIexpression\fR]]
+ .SH DESCRIPTION
+ .ad
+ .fi
+@@ -21,6 +21,9 @@
+ .IP \fB-n\fR
+ Do not resolve IP addresses to hostnames.
+ .IP "\fB-i \fIinterface\fR"
++Specify the interface to listen on.
++.IP "\fB-p \fIpcapfile\fR"
++Process packets from the specified PCAP capture file instead of the network.
+ .IP \fB-v\fR
+ "Versus" mode. Invert the sense of matching, to select non-matching
+ URLs.
diff --git a/security/dsniff/patches/patch-bj b/security/dsniff/patches/patch-bj
new file mode 100644
index 00000000000..5d98d9dcb41
--- /dev/null
+++ b/security/dsniff/patches/patch-bj
@@ -0,0 +1,57 @@
+$NetBSD: patch-bj,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/urlsnarf.c dsniff-2.3/urlsnarf.c
+--- urlsnarf.c.orig 2000-12-19 02:53:36.000000000 +0000
++++ urlsnarf.c 2009-05-06 23:24:07.000000000 +0100
+@@ -39,7 +39,7 @@
+ usage(void)
+ {
+ fprintf(stderr, "Version: " VERSION "\n"
+- "Usage: urlsnarf [-n] [-i interface] [[-v] pattern [expression]]\n");
++ "Usage: urlsnarf [-n] [-i interface | -p pcapfile] [[-v] pattern [expression]]\n");
+ exit(1);
+ }
+
+@@ -193,11 +193,14 @@
+ {
+ int c;
+
+- while ((c = getopt(argc, argv, "i:nvh?V")) != -1) {
++ while ((c = getopt(argc, argv, "i:p:nvh?V")) != -1) {
+ switch (c) {
+ case 'i':
+ nids_params.device = optarg;
+ break;
++ case 'p':
++ nids_params.filename = optarg;
++ break;
+ case 'n':
+ Opt_dns = 0;
+ break;
+@@ -230,8 +233,24 @@
+
+ nids_register_tcp(sniff_http_client);
+
+- warnx("listening on %s [%s]", nids_params.device,
+- nids_params.pcap_filter);
++ if (nids_params.pcap_filter != NULL) {
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s [%s]", nids_params.device,
++ nids_params.pcap_filter);
++ }
++ else {
++ warnx("using %s [%s]", nids_params.filename,
++ nids_params.pcap_filter);
++ }
++ }
++ else {
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s", nids_params.device);
++ }
++ else {
++ warnx("using %s", nids_params.filename);
++ }
++ }
+
+ nids_run();
+
diff --git a/security/dsniff/patches/patch-bk b/security/dsniff/patches/patch-bk
new file mode 100644
index 00000000000..973ee4344e9
--- /dev/null
+++ b/security/dsniff/patches/patch-bk
@@ -0,0 +1,23 @@
+$NetBSD: patch-bk,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/webspy.8 dsniff-2.3/webspy.8
+--- webspy.8.orig 2000-11-14 15:51:05.000000000 +0000
++++ webspy.8 2009-05-06 23:24:07.000000000 +0100
+@@ -9,7 +9,7 @@
+ .na
+ .nf
+ .fi
+-\fBwebspy\fR [\fB-i \fIinterface\fR] \fIhost\fR
++\fBwebspy\fR [\fB-i \fIinterface\fR | \fB-p \fIpcapfile\fR] \fIhost\fR
+ .SH DESCRIPTION
+ .ad
+ .fi
+@@ -20,6 +20,8 @@
+ .SH OPTIONS
+ .IP "\fB-i \fIinterface\fR"
+ Specify the interface to listen on.
++.IP "\fB-p \fIpcapfile\fR"
++Process packets from the specified PCAP capture file instead of the network.
+ .IP \fIhost\fR
+ Specify the web client to spy on.
+ .SH "SEE ALSO"
diff --git a/security/dsniff/patches/patch-bl b/security/dsniff/patches/patch-bl
new file mode 100644
index 00000000000..e35ec17e7c1
--- /dev/null
+++ b/security/dsniff/patches/patch-bl
@@ -0,0 +1,45 @@
+$NetBSD: patch-bl,v 1.1 2009/05/09 16:33:04 adrianp Exp $
+
+diff -ur dsniff-2.3.orig/webspy.c dsniff-2.3/webspy.c
+--- webspy.c.orig 2000-11-14 15:51:04.000000000 +0000
++++ webspy.c 2009-05-06 23:24:07.000000000 +0100
+@@ -40,7 +40,7 @@
+ usage(void)
+ {
+ fprintf(stderr, "Version: " VERSION "\n"
+- "Usage: %s [-i interface] host\n", progname);
++ "Usage: %s [-i interface | -p pcapfile] host\n", progname);
+ exit(1);
+ }
+
+@@ -180,11 +180,14 @@
+ {
+ int c;
+
+- while ((c = getopt(argc, argv, "i:h?V")) != -1) {
++ while ((c = getopt(argc, argv, "i:p:h?V")) != -1) {
+ switch (c) {
+ case 'i':
+ nids_params.device = optarg;
+ break;
++ case 'p':
++ nids_params.filename = optarg;
++ break;
+ default:
+ usage();
+ }
+@@ -212,7 +215,13 @@
+
+ nids_register_tcp(sniff_http_client);
+
+- warnx("listening on %s", nids_params.device);
++ if (nids_params.filename == NULL) {
++ warnx("listening on %s", nids_params.device);
++ }
++ else {
++ warnx("using %s", nids_params.filename);
++ }
++
+
+ nids_run();
+