commit 9428874278e85debaa68519a19a2c6851b405515
Author: Arkadiusz Miśkiewicz <[email protected]>
Date:   Tue May 10 12:04:43 2016 +0200

    - rel 3; two patches from debian; fix unordered_map detection

 0001-tcpflow-b-0-now-works.patch                   | 87 ++++++++++++++++++++++
 packing-struct-tcphdr-to-improve-portability.patch | 23 ++++++
 tcpflow.spec                                       |  7 +-
 3 files changed, 116 insertions(+), 1 deletion(-)
---
diff --git a/tcpflow.spec b/tcpflow.spec
index a6a1a48..e3673bb 100644
--- a/tcpflow.spec
+++ b/tcpflow.spec
@@ -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}
 
diff --git a/0001-tcpflow-b-0-now-works.patch b/0001-tcpflow-b-0-now-works.patch
new file mode 100644
index 0000000..c50c42a
--- /dev/null
+++ b/0001-tcpflow-b-0-now-works.patch
@@ -0,0 +1,87 @@
+From 7c32381b6548e407fc3d0f3a63ccf1b6b12dadfd Mon Sep 17 00:00:00 2001
+From: Dima Kogan <[email protected]>
+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
index 0000000..c1af8b3
--- /dev/null
+++ b/packing-struct-tcphdr-to-improve-portability.patch
@@ -0,0 +1,23 @@
+From: Dima Kogan <[email protected]>
+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
================================================================

---- gitweb:

http://git.pld-linux.org/gitweb.cgi/packages/tcpflow.git/commitdiff/9428874278e85debaa68519a19a2c6851b405515

_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to