]> git.pld-linux.org Git - packages/tcpflow.git/commitdiff
- rel 3; two patches from debian; fix unordered_map detection auto/th/tcpflow-1.4.5-3
authorArkadiusz Miśkiewicz <arekm@maven.pl>
Tue, 10 May 2016 10:04:43 +0000 (12:04 +0200)
committerArkadiusz Miśkiewicz <arekm@maven.pl>
Tue, 10 May 2016 10:04:43 +0000 (12:04 +0200)
0001-tcpflow-b-0-now-works.patch [new file with mode: 0644]
packing-struct-tcphdr-to-improve-portability.patch [new file with mode: 0644]
tcpflow.spec

diff --git a/0001-tcpflow-b-0-now-works.patch b/0001-tcpflow-b-0-now-works.patch
new file mode 100644 (file)
index 0000000..c50c42a
--- /dev/null
@@ -0,0 +1,87 @@
+From 7c32381b6548e407fc3d0f3a63ccf1b6b12dadfd Mon Sep 17 00:00:00 2001
+From: Dima Kogan <dima@secretsauce.net>
+Date: Thu, 5 Mar 2015 15:01:07 -0800
+Subject: [PATCH] 'tcpflow -b 0' now works
+Forwarded: https://github.com/simsong/tcpflow/issues/95
+
+This creates length-0 flow files that act as binary success/failure indicators
+---
+ src/tcpdemux.h |  4 ++--
+ src/tcpip.cpp  | 22 +++++++++++++---------
+ 2 files changed, 15 insertions(+), 11 deletions(-)
+
+diff --git a/src/tcpdemux.h b/src/tcpdemux.h
+index 858c50b..09c5970 100644
+--- a/src/tcpdemux.h
++++ b/src/tcpdemux.h
+@@ -91,7 +91,7 @@ public:
+         options():console_output(false),console_output_nonewline(false),
+                   store_output(true),opt_md5(false),
+                   post_processing(false),gzip_decompress(true),
+-                  max_bytes_per_flow(),
++                  max_bytes_per_flow(-1),
+                   max_flows(0),suppress_header(0),
+                   output_strip_nonprint(true),output_hex(false),use_color(0),
+                   output_packet_index(false),max_seek(MAX_SEEK) {
+@@ -102,7 +102,7 @@ public:
+         bool    opt_md5;                // do we calculate MD5 on DFXML output?
+         bool    post_processing;        // decode headers after tcp connection closes
+         bool    gzip_decompress;
+-        uint64_t max_bytes_per_flow;
++        int64_t  max_bytes_per_flow;
+         uint32_t max_flows;
+         bool    suppress_header;
+         bool    output_strip_nonprint;
+diff --git a/src/tcpip.cpp b/src/tcpip.cpp
+index 70d9ef5..754230b 100644
+--- a/src/tcpip.cpp
++++ b/src/tcpip.cpp
+@@ -236,10 +236,12 @@ void tcpip::print_packet(const u_char *data, uint32_t length)
+     /* green, blue, read */
+     const char *color[3] = { "\033[0;32m", "\033[0;34m", "\033[0;31m" };
+-    if(demux.opt.max_bytes_per_flow>0){
+-      if(last_byte > demux.opt.max_bytes_per_flow) return; /* too much has been printed */
+-      if(length > demux.opt.max_bytes_per_flow - last_byte){
+-          length = demux.opt.max_bytes_per_flow - last_byte; /* can only output this much */
++    if(demux.opt.max_bytes_per_flow>=0){
++        uint64_t max_bytes_per_flow = (uint64_t)demux.opt.max_bytes_per_flow;
++
++      if(last_byte > max_bytes_per_flow) return; /* too much has been printed */
++      if(length > max_bytes_per_flow - last_byte){
++          length = max_bytes_per_flow - last_byte; /* can only output this much */
+           if(length==0) return;
+       }
+     }
+@@ -419,13 +421,15 @@ void tcpip::store_packet(const u_char *data, uint32_t length, int32_t delta,stru
+      * but remember to seek out to the actual position after the truncated write...
+      */
+     uint32_t wlength = length;                // length to write
+-    if (demux.opt.max_bytes_per_flow){
+-      if(offset >= demux.opt.max_bytes_per_flow){
++    if (demux.opt.max_bytes_per_flow >= 0){
++        uint64_t max_bytes_per_flow = (uint64_t)demux.opt.max_bytes_per_flow;
++
++      if(offset >= max_bytes_per_flow){
+           wlength = 0;
+       } 
+-      if(offset < demux.opt.max_bytes_per_flow &&  offset+length > demux.opt.max_bytes_per_flow){
++      if(offset < max_bytes_per_flow &&  offset+length > max_bytes_per_flow){
+           DEBUG(2) ("packet truncated by max_bytes_per_flow on %s", flow_pathname.c_str());
+-          wlength = demux.opt.max_bytes_per_flow - offset;
++          wlength = max_bytes_per_flow - offset;
+       }
+     }
+@@ -434,7 +438,7 @@ void tcpip::store_packet(const u_char *data, uint32_t length, int32_t delta,stru
+      * save the return value because open_tcpfile() puts the file pointer
+      * into the structure for us.
+      */
+-    if (fd < 0 && wlength>0) {
++    if (fd < 0) {
+       if (open_file()) {
+           DEBUG(1)("unable to open TCP file %s  fd=%d  wlength=%d",
+                      flow_pathname.c_str(),fd,(int)wlength);
+-- 
+2.1.4
+
diff --git a/packing-struct-tcphdr-to-improve-portability.patch b/packing-struct-tcphdr-to-improve-portability.patch
new file mode 100644 (file)
index 0000000..c1af8b3
--- /dev/null
@@ -0,0 +1,23 @@
+From: Dima Kogan <dima@secretsauce.net>
+Date: Sun, 12 Jan 2014 23:58:39 -0800
+Subject: packing struct tcphdr to improve portability
+Forwarded: https://github.com/simsong/tcpflow/issues/67
+
+I was seeing build failures on arm and sparc. These were happening because of
+unaligned loads of struct tcphdr. I now declare this structure as packed, so
+this does not happen
+
+
+Index: tcpflow/src/be13_api/bulk_extractor_i.h
+===================================================================
+--- tcpflow.orig/src/be13_api/bulk_extractor_i.h
++++ tcpflow/src/be13_api/bulk_extractor_i.h
+@@ -278,7 +278,7 @@ namespace be13 {
+     uint16_t th_win;            /* window */
+     uint16_t th_sum;            /* checksum */
+     uint16_t th_urp;            /* urgent pointer */
+-};
++} __attribute__((packed));
+ /*
+  * The packet_info structure records packets after they are read from the pcap library.
+  * It preserves the original pcap information and information decoded from the MAC and
index a6a1a488ff582e57384f5b9ad9644e6edd48a231..e3673bb62881d5a237be1e794e6854e8cf715794 100644 (file)
@@ -6,12 +6,14 @@ Summary:      TCP Flow Recorder
 Summary(pl.UTF-8):     Program zapisujący ruch TCP
 Name:          tcpflow
 Version:       1.4.5
-Release:       2
+Release:       3
 License:       GPL v3
 Group:         Applications/Networking
 Source0:       http://www.digitalcorpora.org/downloads/tcpflow/%{name}-%{version}.tar.gz
 # Source0-md5: 5978b112a899f2099e98cef6d9a0ece9
 Patch0:                0001-using-the-debian-package-of-libhttp-parser-instead-o.patch
+Patch1:                0001-tcpflow-b-0-now-works.patch
+Patch2:                packing-struct-tcphdr-to-improve-portability.patch
 URL:           https://github.com/simsong/tcpflow
 BuildRequires: autoconf
 BuildRequires: automake
@@ -49,6 +51,8 @@ połączenie.
 %prep
 %setup -q
 %patch0 -p1
+%patch1 -p1
+%patch2 -p1
 
 %build
 %{__aclocal} -I m4
@@ -56,6 +60,7 @@ połączenie.
 %{__autoheader}
 %{__automake}
 %configure \
+       CPPFLAGS="%{rpmcppflags} -std=c++11" \
        %{!?with_cairo:--enable-cairo=false}
 %{__make}
 
This page took 0.208117 seconds and 4 git commands to generate.