aboutsummaryrefslogtreecommitdiffstats
path: root/testing/dsniff/23_urlsnarf_timestamp.patch
diff options
context:
space:
mode:
authorFrancesco Colista <fcolista@alpinelinux.org>2015-09-29 12:30:58 +0000
committerFrancesco Colista <fcolista@alpinelinux.org>2015-09-29 12:31:09 +0000
commit526d616a09c1191b1b8ed13998538af2c2040d89 (patch)
tree44b52145e0a7f38a1530db765d9e72e669fec861 /testing/dsniff/23_urlsnarf_timestamp.patch
parent0dba7bc25a37335d5bd351b3d073aff1e5c9eef7 (diff)
downloadaports-526d616a09c1191b1b8ed13998538af2c2040d89.tar.bz2
aports-526d616a09c1191b1b8ed13998538af2c2040d89.tar.xz
testing/dsniff: new aport
Diffstat (limited to 'testing/dsniff/23_urlsnarf_timestamp.patch')
-rw-r--r--testing/dsniff/23_urlsnarf_timestamp.patch78
1 files changed, 78 insertions, 0 deletions
diff --git a/testing/dsniff/23_urlsnarf_timestamp.patch b/testing/dsniff/23_urlsnarf_timestamp.patch
new file mode 100644
index 0000000000..f259efe1e3
--- /dev/null
+++ b/testing/dsniff/23_urlsnarf_timestamp.patch
@@ -0,0 +1,78 @@
+Author: Hilko Bengen <bengen@debian.org>
+Description: urlsnarf: use timestamps from pcap file if available. Closes: #573365
+--- a/urlsnarf.c 2011-06-19 17:15:21.627999373 -0500
++++ b/urlsnarf.c 2011-06-19 17:15:43.411999368 -0500
+@@ -36,6 +36,7 @@
+ u_short Opt_dns = 1;
+ int Opt_invert = 0;
+ regex_t *pregex = NULL;
++time_t tt = 0;
+
+ static void
+ usage(void)
+@@ -57,9 +58,12 @@ timestamp(void)
+ {
+ static char tstr[32], sign;
+ struct tm *t, gmt;
+- time_t tt = time(NULL);
+ int days, hours, tz, len;
+
++ if (!nids_params.filename) {
++ tt = time(NULL);
++ }
++
+ gmt = *gmtime(&tt);
+ t = localtime(&tt);
+
+@@ -312,9 +316,48 @@ main(int argc, char *argv[])
+
+ nids_register_chksum_ctl(&chksum_ctl, 1);
+
+- nids_run();
+-
+- /* NOTREACHED */
++ pcap_t *p;
++ char pcap_errbuf[PCAP_ERRBUF_SIZE];
++ if (nids_params.filename == NULL) {
++ /* adapted from libnids.c:open_live() */
++ if (strcmp(nids_params.device, "all") == 0)
++ nids_params.device = "any";
++ p = pcap_open_live(nids_params.device, 16384,
++ (nids_params.promisc != 0),
++ 0, pcap_errbuf);
++ if (!p) {
++ fprintf(stderr, "pcap_open_live(): %s\n",
++ pcap_errbuf);
++ exit(1);
++ }
++ }
++ else {
++ p = pcap_open_offline(nids_params.filename,
++ pcap_errbuf);
++ if (!p) {
++ fprintf(stderr, "pcap_open_offline(%s): %s\n",
++ nids_params.filename, pcap_errbuf);
++ }
++ }
++
++ struct pcap_pkthdr *h;
++ u_char *d;
++ int rc;
++ while ((rc = pcap_next_ex(p, &h, &d)) == 1) {
++ tt = h->ts.tv_sec;
++ nids_pcap_handler(NULL, h, d);
++ }
++ switch (rc) {
++ case(-2): /* end of pcap file */
++ case(0): /* timeout on live capture */
++ break;
++ case(-1):
++ default:
++ fprintf(stderr, "rc = %i\n", rc);
++ pcap_perror(p, "pcap_read_ex()");
++ exit(1);
++ break;
++ }
+
+ exit(0);
+ }