Patchwork [v2,meta-networking] tcpslice: add recipe under tcpdump

login
register
mail settings
Submitter rongqing.li@windriver.com
Date July 30, 2014, 2:22 a.m.
Message ID <1406686961-21142-1-git-send-email-rongqing.li@windriver.com>
Download mbox | patch
Permalink /patch/76897/
State Accepted, archived
Headers show

Comments

rongqing.li@windriver.com - July 30, 2014, 2:22 a.m.
From: Roy Li <rongqing.li@windriver.com>

tcpslice is a tool for extracting parts of a tcpdump packet trace,
so put it under tcpdump dir

Signed-off-by: Roy Li <rongqing.li@windriver.com>
---
 .../tcpdump/tcpslice/tcpslice-1.2a3-time.patch     |   75 ++++++++++++++++++++
 .../tcpslice/tcpslice-CVS.20010207-bpf.patch       |   15 ++++
 .../recipes-support/tcpdump/tcpslice_1.2a3.bb      |   35 +++++++++
 3 files changed, 125 insertions(+)
 create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
 create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
 create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
Martin Jansa - July 30, 2014, 7:25 a.m.
On Wed, Jul 30, 2014 at 10:22:41AM +0800, rongqing.li@windriver.com wrote:
> From: Roy Li <rongqing.li@windriver.com>
> 
> tcpslice is a tool for extracting parts of a tcpdump packet trace,
> so put it under tcpdump dir
> 
> Signed-off-by: Roy Li <rongqing.li@windriver.com>
> ---
>  .../tcpdump/tcpslice/tcpslice-1.2a3-time.patch     |   75 ++++++++++++++++++++
>  .../tcpslice/tcpslice-CVS.20010207-bpf.patch       |   15 ++++
>  .../recipes-support/tcpdump/tcpslice_1.2a3.bb      |   35 +++++++++
>  3 files changed, 125 insertions(+)
>  create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
>  create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
>  create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
> 
> diff --git a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
> new file mode 100644
> index 0000000..a86f6d2
> --- /dev/null
> +++ b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
> @@ -0,0 +1,75 @@
> +Upstream-Status: Pending [from tcpdump-4.1.1-1.fc14.src.rpm]
> +
> +Signed-off-by: Roy Li <rongqing.li@windriver.com>
> +
> +--- tcpslice-1.2a3.orig/search.c	2000-09-10 10:52:40.000000000 +0200
> ++++ tcpslice-1.2a3/search.c	2006-07-28 14:56:55.000000000 +0200
> +@@ -53,7 +53,7 @@
> + /* Size of a packet header in bytes; easier than typing the sizeof() all
> +  * the time ...
> +  */
> +-#define PACKET_HDR_LEN (sizeof( struct pcap_pkthdr ))
> ++#define PACKET_HDR_LEN (sizeof( struct pcap_sf_pkthdr ))
> + 
> + extern int snaplen;
> + 
> +@@ -111,16 +111,24 @@
> + static void
> + extract_header( pcap_t *p, u_char *buf, struct pcap_pkthdr *hdr )
> + 	{
> +-	memcpy((char *) hdr, (char *) buf, sizeof(struct pcap_pkthdr));
> ++	struct pcap_sf_pkthdr hdri;
> ++
> ++	memcpy((char *) &hdri, (char *) buf, sizeof(struct pcap_sf_pkthdr));
> + 
> + 	if ( pcap_is_swapped( p ) )
> + 		{
> +-		hdr->ts.tv_sec = SWAPLONG(hdr->ts.tv_sec);
> +-		hdr->ts.tv_usec = SWAPLONG(hdr->ts.tv_usec);
> +-		hdr->len = SWAPLONG(hdr->len);
> +-		hdr->caplen = SWAPLONG(hdr->caplen);
> ++		hdr->ts.tv_sec = SWAPLONG(hdri.ts.tv_sec);
> ++		hdr->ts.tv_usec = SWAPLONG(hdri.ts.tv_usec);
> ++		hdr->len = SWAPLONG(hdri.len);
> ++		hdr->caplen = SWAPLONG(hdri.caplen);
> ++		}
> ++	else
> ++		{
> ++		hdr->ts.tv_sec = hdri.ts.tv_sec;
> ++		hdr->ts.tv_usec = hdri.ts.tv_usec;
> ++		hdr->len = hdri.len;
> ++		hdr->caplen = hdri.caplen;
> + 		}
> +-
> + 	/*
> + 	 * From bpf/libpcap/savefile.c:
> + 	 *
> +--- tcpslice-1.2a3.orig/tcpslice.h	1995-11-02 00:40:53.000000000 +0100
> ++++ tcpslice-1.2a3/tcpslice.h	2006-07-28 14:56:55.000000000 +0200
> +@@ -20,6 +20,26 @@
> +  */
> + 
> + 
> ++#include <time.h>
> ++/* #include <net/bpf.h> */
> ++
> ++/*
> ++ * This is a timeval as stored in disk in a dumpfile.
> ++ * It has to use the same types everywhere, independent of the actual
> ++ * `struct timeval'
> ++ */
> ++                                                                                
> ++struct pcap_timeval {
> ++    bpf_int32 tv_sec;           /* seconds */
> ++    bpf_int32 tv_usec;          /* microseconds */
> ++};
> ++
> ++struct pcap_sf_pkthdr {
> ++    struct pcap_timeval ts;     /* time stamp */
> ++    bpf_u_int32 caplen;         /* length of portion present */
> ++    bpf_u_int32 len;            /* length this packet (off wire) */
> ++};
> ++
> + time_t	gwtm2secs( struct tm *tm );
> + 
> + int	sf_find_end( struct pcap *p, struct timeval *first_timestamp,
> diff --git a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
> new file mode 100644
> index 0000000..0a73593
> --- /dev/null
> +++ b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
> @@ -0,0 +1,15 @@
> +Upstream-Status: Pending [from tcpdump-4.1.1-1.fc14.src.rpm]
> +
> +Signed-off-by: Roy Li <rongqing.li@windriver.com>
> +diff -ur tcpdump-3.8.1/tcpslice/tcpslice.c tcpdump-3.8.1.new/tcpslice/tcpslice.c
> +--- tcpslice/tcpslice.c	2004-01-15 17:35:53.000000000 +0100
> ++++ tcpslice/tcpslice.c	2004-01-15 16:12:57.000000000 +0100
> +@@ -35,7 +35,7 @@
> + #include <sys/file.h>
> + #include <sys/stat.h>
> + 
> +-#include <net/bpf.h>
> ++/* #include <net/bpf.h> */
> + 
> + #include <ctype.h>
> + #ifdef HAVE_FCNTL_H
> diff --git a/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
> new file mode 100644
> index 0000000..d0bf7a2
> --- /dev/null
> +++ b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
> @@ -0,0 +1,35 @@
> +SUMMARY = "tcpslice"
> +DESCRIPTION = "A tool for extracting parts of a tcpdump packet trace."
> +HOMEPAGE = "http://www.tcpdump.org/related.html"
> +SECTION = "console/network"
> +
> +LICENSE = "BSD"
> +LIC_FILES_CHKSUM = "file://tcpslice.c;endline=20;md5=99519e2e5234d1662a4ce16baa62c64e" 

I've removed trailing space

> +
> +SRC_URI = "ftp://ftp.ee.lbl.gov/${BPN}-${PV}.tar.gz \

and replaced ${BPN}-${PV} with ${BP}

when cherry-picking this to master-next

> +           file://tcpslice-1.2a3-time.patch \
> +           file://tcpslice-CVS.20010207-bpf.patch \
> +           "
> +SRC_URI[md5sum] = "e329cbeb7e589f132d92c3447c477190"
> +SRC_URI[sha256sum] = "4096e8debc898cfaa16b5306f1c42f8d18b19e30e60da8d4deb781c8f684c840"
> +
> +inherit autotools-brokensep
> +
> +DEPENDS += "libpcap"
> +
> +# We do not want to autoreconf.  We must specify srcdir as ".".
> +# We have to set the ac_cv_* cache variables as well as pass the normal
> +# cross-compilation options to configure!
> +#
> +do_configure () {
> +	oe_runconf \
> +            --srcdir="." \
> +            ac_cv_build=${BUILD_SYS} \
> +            ac_cv_host=${HOST_SYS} \
> +            ac_cv_target=${HOST_SYS}
> +}
> +
> +do_install_prepend () {
> +	mkdir -p ${D}/usr/sbin
> +}
> +
> -- 
> 1.7.10.4
> 
> -- 
> _______________________________________________
> Openembedded-devel mailing list
> Openembedded-devel@lists.openembedded.org
> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
rongqing.li@windriver.com - July 30, 2014, 7:29 a.m.
On 07/30/2014 03:25 PM, Martin Jansa wrote:
> On Wed, Jul 30, 2014 at 10:22:41AM +0800, rongqing.li@windriver.com wrote:
>> From: Roy Li <rongqing.li@windriver.com>
>>
>> tcpslice is a tool for extracting parts of a tcpdump packet trace,
>> so put it under tcpdump dir
>>
>> Signed-off-by: Roy Li <rongqing.li@windriver.com>
>> ---
>>   .../tcpdump/tcpslice/tcpslice-1.2a3-time.patch     |   75 ++++++++++++++++++++
>>   .../tcpslice/tcpslice-CVS.20010207-bpf.patch       |   15 ++++
>>   .../recipes-support/tcpdump/tcpslice_1.2a3.bb      |   35 +++++++++
>>   3 files changed, 125 insertions(+)
>>   create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
>>   create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
>>   create mode 100644 meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
>>
>> diff --git a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
>> new file mode 100644
>> index 0000000..a86f6d2
>> --- /dev/null
>> +++ b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
>> @@ -0,0 +1,75 @@
>> +Upstream-Status: Pending [from tcpdump-4.1.1-1.fc14.src.rpm]
>> +
>> +Signed-off-by: Roy Li <rongqing.li@windriver.com>
>> +
>> +--- tcpslice-1.2a3.orig/search.c	2000-09-10 10:52:40.000000000 +0200
>> ++++ tcpslice-1.2a3/search.c	2006-07-28 14:56:55.000000000 +0200
>> +@@ -53,7 +53,7 @@
>> + /* Size of a packet header in bytes; easier than typing the sizeof() all
>> +  * the time ...
>> +  */
>> +-#define PACKET_HDR_LEN (sizeof( struct pcap_pkthdr ))
>> ++#define PACKET_HDR_LEN (sizeof( struct pcap_sf_pkthdr ))
>> +
>> + extern int snaplen;
>> +
>> +@@ -111,16 +111,24 @@
>> + static void
>> + extract_header( pcap_t *p, u_char *buf, struct pcap_pkthdr *hdr )
>> + 	{
>> +-	memcpy((char *) hdr, (char *) buf, sizeof(struct pcap_pkthdr));
>> ++	struct pcap_sf_pkthdr hdri;
>> ++
>> ++	memcpy((char *) &hdri, (char *) buf, sizeof(struct pcap_sf_pkthdr));
>> +
>> + 	if ( pcap_is_swapped( p ) )
>> + 		{
>> +-		hdr->ts.tv_sec = SWAPLONG(hdr->ts.tv_sec);
>> +-		hdr->ts.tv_usec = SWAPLONG(hdr->ts.tv_usec);
>> +-		hdr->len = SWAPLONG(hdr->len);
>> +-		hdr->caplen = SWAPLONG(hdr->caplen);
>> ++		hdr->ts.tv_sec = SWAPLONG(hdri.ts.tv_sec);
>> ++		hdr->ts.tv_usec = SWAPLONG(hdri.ts.tv_usec);
>> ++		hdr->len = SWAPLONG(hdri.len);
>> ++		hdr->caplen = SWAPLONG(hdri.caplen);
>> ++		}
>> ++	else
>> ++		{
>> ++		hdr->ts.tv_sec = hdri.ts.tv_sec;
>> ++		hdr->ts.tv_usec = hdri.ts.tv_usec;
>> ++		hdr->len = hdri.len;
>> ++		hdr->caplen = hdri.caplen;
>> + 		}
>> +-
>> + 	/*
>> + 	 * From bpf/libpcap/savefile.c:
>> + 	 *
>> +--- tcpslice-1.2a3.orig/tcpslice.h	1995-11-02 00:40:53.000000000 +0100
>> ++++ tcpslice-1.2a3/tcpslice.h	2006-07-28 14:56:55.000000000 +0200
>> +@@ -20,6 +20,26 @@
>> +  */
>> +
>> +
>> ++#include <time.h>
>> ++/* #include <net/bpf.h> */
>> ++
>> ++/*
>> ++ * This is a timeval as stored in disk in a dumpfile.
>> ++ * It has to use the same types everywhere, independent of the actual
>> ++ * `struct timeval'
>> ++ */
>> ++
>> ++struct pcap_timeval {
>> ++    bpf_int32 tv_sec;           /* seconds */
>> ++    bpf_int32 tv_usec;          /* microseconds */
>> ++};
>> ++
>> ++struct pcap_sf_pkthdr {
>> ++    struct pcap_timeval ts;     /* time stamp */
>> ++    bpf_u_int32 caplen;         /* length of portion present */
>> ++    bpf_u_int32 len;            /* length this packet (off wire) */
>> ++};
>> ++
>> + time_t	gwtm2secs( struct tm *tm );
>> +
>> + int	sf_find_end( struct pcap *p, struct timeval *first_timestamp,
>> diff --git a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
>> new file mode 100644
>> index 0000000..0a73593
>> --- /dev/null
>> +++ b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
>> @@ -0,0 +1,15 @@
>> +Upstream-Status: Pending [from tcpdump-4.1.1-1.fc14.src.rpm]
>> +
>> +Signed-off-by: Roy Li <rongqing.li@windriver.com>
>> +diff -ur tcpdump-3.8.1/tcpslice/tcpslice.c tcpdump-3.8.1.new/tcpslice/tcpslice.c
>> +--- tcpslice/tcpslice.c	2004-01-15 17:35:53.000000000 +0100
>> ++++ tcpslice/tcpslice.c	2004-01-15 16:12:57.000000000 +0100
>> +@@ -35,7 +35,7 @@
>> + #include <sys/file.h>
>> + #include <sys/stat.h>
>> +
>> +-#include <net/bpf.h>
>> ++/* #include <net/bpf.h> */
>> +
>> + #include <ctype.h>
>> + #ifdef HAVE_FCNTL_H
>> diff --git a/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
>> new file mode 100644
>> index 0000000..d0bf7a2
>> --- /dev/null
>> +++ b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
>> @@ -0,0 +1,35 @@
>> +SUMMARY = "tcpslice"
>> +DESCRIPTION = "A tool for extracting parts of a tcpdump packet trace."
>> +HOMEPAGE = "http://www.tcpdump.org/related.html"
>> +SECTION = "console/network"
>> +
>> +LICENSE = "BSD"
>> +LIC_FILES_CHKSUM = "file://tcpslice.c;endline=20;md5=99519e2e5234d1662a4ce16baa62c64e"
>
> I've removed trailing space
>
>> +
>> +SRC_URI = "ftp://ftp.ee.lbl.gov/${BPN}-${PV}.tar.gz \
>
> and replaced ${BPN}-${PV} with ${BP}
>
> when cherry-picking this to master-next
>
>> +           file://tcpslice-1.2a3-time.patch \
>> +           file://tcpslice-CVS.20010207-bpf.patch \
>> +           "
>> +SRC_URI[md5sum] = "e329cbeb7e589f132d92c3447c477190"
>> +SRC_URI[sha256sum] = "4096e8debc898cfaa16b5306f1c42f8d18b19e30e60da8d4deb781c8f684c840"
>> +
>> +inherit autotools-brokensep
>> +
>> +DEPENDS += "libpcap"
>> +
>> +# We do not want to autoreconf.  We must specify srcdir as ".".
>> +# We have to set the ac_cv_* cache variables as well as pass the normal
>> +# cross-compilation options to configure!
>> +#
>> +do_configure () {
>> +	oe_runconf \
>> +            --srcdir="." \
>> +            ac_cv_build=${BUILD_SYS} \
>> +            ac_cv_host=${HOST_SYS} \
>> +            ac_cv_target=${HOST_SYS}
>> +}
>> +
>> +do_install_prepend () {
>> +	mkdir -p ${D}/usr/sbin
>> +}
>> +
>> --
>> 1.7.10.4
>>


Thanks

-Roy
>> --
>> _______________________________________________
>> Openembedded-devel mailing list
>> Openembedded-devel@lists.openembedded.org
>> http://lists.openembedded.org/mailman/listinfo/openembedded-devel
>
>
>
rongqing.li@windriver.com - Sept. 2, 2014, 2:45 a.m.
On 07/30/2014 03:25 PM, Martin Jansa wrote:
> On Wed, Jul 30, 2014 at 10:22:41AM +0800,rongqing.li@windriver.com  wrote:
>> >From: Roy Li<rongqing.li@windriver.com>
>> >
>> >tcpslice is a tool for extracting parts of a tcpdump packet trace,
>> >so put it under tcpdump dir
>> >
>> >Signed-off-by: Roy Li<rongqing.li@windriver.com>
>> >---


Hi Martin:

I see this recipes has been merged into master-next for a long time,
Could you cherry-pick it to master?


-Roy
Joe MacDonald - Sept. 2, 2014, 12:19 p.m.
[Re: [oe] [PATCH v2][meta-networking] tcpslice: add recipe under tcpdump] On 14.09.02 (Tue 10:45) Rongqing Li wrote:

> 
> 
> On 07/30/2014 03:25 PM, Martin Jansa wrote:
> >On Wed, Jul 30, 2014 at 10:22:41AM +0800,rongqing.li@windriver.com  wrote:
> >>>From: Roy Li<rongqing.li@windriver.com>
> >>>
> >>>tcpslice is a tool for extracting parts of a tcpdump packet trace,
> >>>so put it under tcpdump dir
> >>>
> >>>Signed-off-by: Roy Li<rongqing.li@windriver.com>
> >>>---
> 
> 
> Hi Martin:
> 
> I see this recipes has been merged into master-next for a long time,
> Could you cherry-pick it to master?

I had asked for some kind of clarification on the license for tcpslice.
I didn't notice a follow-up on it yet, did you get a chance to check
into it?

I don't think anyone has any concern about the stability of the package
itself, though, if we'd had some kind of response on the license
question I had I would've merged it long ago.

-J.

> 
> 
> -Roy
> 
> 
> -- 
> Best Reagrds,
> Roy | RongQing Li
rongqing.li@windriver.com - Sept. 3, 2014, 12:44 a.m.
On 09/02/2014 08:19 PM, Joe MacDonald wrote:
> [Re: [oe] [PATCH v2][meta-networking] tcpslice: add recipe under tcpdump] On 14.09.02 (Tue 10:45) Rongqing Li wrote:
>
>>
>>
>> On 07/30/2014 03:25 PM, Martin Jansa wrote:
>>> On Wed, Jul 30, 2014 at 10:22:41AM +0800,rongqing.li@windriver.com  wrote:
>>>>> From: Roy Li<rongqing.li@windriver.com>
>>>>>
>>>>> tcpslice is a tool for extracting parts of a tcpdump packet trace,
>>>>> so put it under tcpdump dir
>>>>>
>>>>> Signed-off-by: Roy Li<rongqing.li@windriver.com>
>>>>> ---
>>
>>
>> Hi Martin:
>>
>> I see this recipes has been merged into master-next for a long time,
>> Could you cherry-pick it to master?
>
> I had asked for some kind of clarification on the license for tcpslice.
> I didn't notice a follow-up on it yet, did you get a chance to check
> into it?
>
> I don't think anyone has any concern about the stability of the package
> itself, though, if we'd had some kind of response on the license
> question I had I would've merged it long ago.
>


Sorry, I just updated the License in recipes file, and forgot to reply
your email.

Currently, the license is same as the below:
http://www.rpmfind.net//linux/RPM/mandriva/2010.1/i586/media/contrib/release/tcpslice-1.2a3-3.20061130.5mdv2010.0.i586.html

I check again in source code, the license is most same as BSD-4-Clause,
and has some typos, but the content is same as BSD-4-Clause,
Could you update to BSD-4-Clause in recipes file when you merge it
to master




1. Copyright in tcpslice.c or other source files.
tcpslice-1.2a3$ head -n20 tcpslice.c
/*
  * Copyright (c) 1991, 1992, 1993, 1995, 1996, 1997, 1999, 2000
  *	The Regents of the University of California.  All rights reserved.
  *
  * Redistribution and use in source and binary forms, with or without
  * modification, are permitted provided that: (1) source code distributions
  * retain the above copyright notice and this paragraph in its 
entirety, (2)
  * distributions including binary code include the above copyright 
notice and
  * this paragraph in its entirety in the documentation or other materials
  * provided with the distribution, and (3) all advertising materials 
mentioning
  * features or use of this software display the following acknowledgement:
  * ``This product includes software developed by the University of 
California,
  * Lawrence Berkeley Laboratory and its contributors.'' Neither the name of
  * the University nor the names of its contributors may be used to endorse
  * or promote products derived from this software without specific prior
  * written permission.
  * THIS SOFTWARE IS PROVIDED ``AS IS'' AND WITHOUT ANY EXPRESS OR IMPLIED
  * WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF
  * MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
  */

2. BSD-4-Clause license file.

cat .oe-core$ cat ./meta/files/common-licenses/BSD-4-Clause

Copyright (c) <year>, <copyright holder>
All rights reserved.

Redistribution and use in source and binary forms, with or without
modification, are permitted provided that the following conditions are met:
1. Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
2. Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
3. All advertising materials mentioning features or use of this software
    must display the following acknowledgement:
    This product includes software developed by the <organization>.
4. Neither the name of the <organization> nor the
    names of its contributors may be used to endorse or promote products
    derived from this software without specific prior written permission.

THIS SOFTWARE IS PROVIDED BY <COPYRIGHT HOLDER> ``AS IS`` AND ANY
EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
DISCLAIMED. IN NO EVENT SHALL <COPYRIGHT HOLDER> BE LIABLE FOR ANY
DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
(INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;
LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND
ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT
(INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF 
THIS
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.

-Roy

> -J.
>
>>
>>
>> -Roy
>>
>>
>> --
>> Best Reagrds,
>> Roy | RongQing Li
>>
>>

Patch

diff --git a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
new file mode 100644
index 0000000..a86f6d2
--- /dev/null
+++ b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-1.2a3-time.patch
@@ -0,0 +1,75 @@ 
+Upstream-Status: Pending [from tcpdump-4.1.1-1.fc14.src.rpm]
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+
+--- tcpslice-1.2a3.orig/search.c	2000-09-10 10:52:40.000000000 +0200
++++ tcpslice-1.2a3/search.c	2006-07-28 14:56:55.000000000 +0200
+@@ -53,7 +53,7 @@
+ /* Size of a packet header in bytes; easier than typing the sizeof() all
+  * the time ...
+  */
+-#define PACKET_HDR_LEN (sizeof( struct pcap_pkthdr ))
++#define PACKET_HDR_LEN (sizeof( struct pcap_sf_pkthdr ))
+ 
+ extern int snaplen;
+ 
+@@ -111,16 +111,24 @@
+ static void
+ extract_header( pcap_t *p, u_char *buf, struct pcap_pkthdr *hdr )
+ 	{
+-	memcpy((char *) hdr, (char *) buf, sizeof(struct pcap_pkthdr));
++	struct pcap_sf_pkthdr hdri;
++
++	memcpy((char *) &hdri, (char *) buf, sizeof(struct pcap_sf_pkthdr));
+ 
+ 	if ( pcap_is_swapped( p ) )
+ 		{
+-		hdr->ts.tv_sec = SWAPLONG(hdr->ts.tv_sec);
+-		hdr->ts.tv_usec = SWAPLONG(hdr->ts.tv_usec);
+-		hdr->len = SWAPLONG(hdr->len);
+-		hdr->caplen = SWAPLONG(hdr->caplen);
++		hdr->ts.tv_sec = SWAPLONG(hdri.ts.tv_sec);
++		hdr->ts.tv_usec = SWAPLONG(hdri.ts.tv_usec);
++		hdr->len = SWAPLONG(hdri.len);
++		hdr->caplen = SWAPLONG(hdri.caplen);
++		}
++	else
++		{
++		hdr->ts.tv_sec = hdri.ts.tv_sec;
++		hdr->ts.tv_usec = hdri.ts.tv_usec;
++		hdr->len = hdri.len;
++		hdr->caplen = hdri.caplen;
+ 		}
+-
+ 	/*
+ 	 * From bpf/libpcap/savefile.c:
+ 	 *
+--- tcpslice-1.2a3.orig/tcpslice.h	1995-11-02 00:40:53.000000000 +0100
++++ tcpslice-1.2a3/tcpslice.h	2006-07-28 14:56:55.000000000 +0200
+@@ -20,6 +20,26 @@
+  */
+ 
+ 
++#include <time.h>
++/* #include <net/bpf.h> */
++
++/*
++ * This is a timeval as stored in disk in a dumpfile.
++ * It has to use the same types everywhere, independent of the actual
++ * `struct timeval'
++ */
++                                                                                
++struct pcap_timeval {
++    bpf_int32 tv_sec;           /* seconds */
++    bpf_int32 tv_usec;          /* microseconds */
++};
++
++struct pcap_sf_pkthdr {
++    struct pcap_timeval ts;     /* time stamp */
++    bpf_u_int32 caplen;         /* length of portion present */
++    bpf_u_int32 len;            /* length this packet (off wire) */
++};
++
+ time_t	gwtm2secs( struct tm *tm );
+ 
+ int	sf_find_end( struct pcap *p, struct timeval *first_timestamp,
diff --git a/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
new file mode 100644
index 0000000..0a73593
--- /dev/null
+++ b/meta-networking/recipes-support/tcpdump/tcpslice/tcpslice-CVS.20010207-bpf.patch
@@ -0,0 +1,15 @@ 
+Upstream-Status: Pending [from tcpdump-4.1.1-1.fc14.src.rpm]
+
+Signed-off-by: Roy Li <rongqing.li@windriver.com>
+diff -ur tcpdump-3.8.1/tcpslice/tcpslice.c tcpdump-3.8.1.new/tcpslice/tcpslice.c
+--- tcpslice/tcpslice.c	2004-01-15 17:35:53.000000000 +0100
++++ tcpslice/tcpslice.c	2004-01-15 16:12:57.000000000 +0100
+@@ -35,7 +35,7 @@
+ #include <sys/file.h>
+ #include <sys/stat.h>
+ 
+-#include <net/bpf.h>
++/* #include <net/bpf.h> */
+ 
+ #include <ctype.h>
+ #ifdef HAVE_FCNTL_H
diff --git a/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
new file mode 100644
index 0000000..d0bf7a2
--- /dev/null
+++ b/meta-networking/recipes-support/tcpdump/tcpslice_1.2a3.bb
@@ -0,0 +1,35 @@ 
+SUMMARY = "tcpslice"
+DESCRIPTION = "A tool for extracting parts of a tcpdump packet trace."
+HOMEPAGE = "http://www.tcpdump.org/related.html"
+SECTION = "console/network"
+
+LICENSE = "BSD"
+LIC_FILES_CHKSUM = "file://tcpslice.c;endline=20;md5=99519e2e5234d1662a4ce16baa62c64e" 
+
+SRC_URI = "ftp://ftp.ee.lbl.gov/${BPN}-${PV}.tar.gz \
+           file://tcpslice-1.2a3-time.patch \
+           file://tcpslice-CVS.20010207-bpf.patch \
+           "
+SRC_URI[md5sum] = "e329cbeb7e589f132d92c3447c477190"
+SRC_URI[sha256sum] = "4096e8debc898cfaa16b5306f1c42f8d18b19e30e60da8d4deb781c8f684c840"
+
+inherit autotools-brokensep
+
+DEPENDS += "libpcap"
+
+# We do not want to autoreconf.  We must specify srcdir as ".".
+# We have to set the ac_cv_* cache variables as well as pass the normal
+# cross-compilation options to configure!
+#
+do_configure () {
+	oe_runconf \
+            --srcdir="." \
+            ac_cv_build=${BUILD_SYS} \
+            ac_cv_host=${HOST_SYS} \
+            ac_cv_target=${HOST_SYS}
+}
+
+do_install_prepend () {
+	mkdir -p ${D}/usr/sbin
+}
+