Commit Graph

76 Commits

Author SHA1 Message Date
Guy Harris 6ac265b512 Merge pcap_fill_in_pseudo_header() into pcap_read_post_process().
svn path=/trunk/; revision=38844
2011-09-01 19:58:25 +00:00
Guy Harris e9fc1b72aa Use guint8 rather than guchar for raw octets and pointers to arrays of
same.

Add to wiretap/pcap-common.c a routine to fill in the pseudo-header for
ATM (by looking at the VPI, VCI, and packet data, and guessing) and
Ethernet (setting the FCS length appropriately).  Use it for both pcap
and pcap-ng files.

svn path=/trunk/; revision=38840
2011-09-01 09:43:10 +00:00
Guy Harris 4486bb9d85 A zero snaplen means "snaplen unknown", as in "the file format from
which we read the data to be written doesn't record the snapshot
length".  A snapshot length of 0 in a pcap or pcap-ng file is not
handled well by many programs reading those files; for pcap files, we
write out WTAP_MAX_PACKET_SIZE as the snapshot length in that case, so
do so for pcap-ng files as well.

svn path=/trunk/; revision=38790
2011-08-30 06:01:44 +00:00
Jeff Morriss 613ddfa1cc From Hanspeter via https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6229 :
If an EnhancedPacketBlock in a pcapng file contains a comment option the
content isn't displayed. Instead "Malformed packet" is displayed with the
reason Exception occurred.

The reason for the problem is a bug in the pcapng.c, where for enhanced packet
blocks, interface description blocks and interface statistics blocks the wrong
union members are used to set the comment. This way required fields in the
structures are overwritten.

The attached patch solves the problem.

svn path=/trunk/; revision=38491
2011-08-11 21:42:37 +00:00
Michael Tüxen eaead49183 Fix a wrong name in a debug print statement.
svn path=/trunk/; revision=37061
2011-05-11 12:51:01 +00:00
Guy Harris 8260657dfd Cast away warnings about "struct sockaddr" -> "struct sockaddr_XXX"
casts that are actually safe.

svn path=/trunk/; revision=36788
2011-04-22 03:11:14 +00:00
Guy Harris 6cbf6ce16c Add a new WTAP_ERR_DECOMPRESS error, and use that for errors discovered
by the gunzipping code.  Have it also supply a err_info string, and
report it.  Have file_error() supply an err_info string.

Put "the file" - or, for WTAP_ERR_DECOMPRESS, "the compressed file", to
suggest a decompression error - into the rawshark and tshark errors,
along the lines of what other programs print.

Fix a case in the Netscaler code where we weren't fetching the error
code on a read failure.

svn path=/trunk/; revision=36748
2011-04-21 09:41:52 +00:00
Michael Tüxen 034373cb86 Unbreak live capture using pcapng.
svn path=/trunk/; revision=36714
2011-04-19 13:28:17 +00:00
Guy Harris 2b8ebd389b "This file format can't be written to a pipe" and "this file format
can't be saved in compress form" are both equivalent to "this file file
format requires seeking when writing it".  Change the "can compress"
Boolean in the file format table to "writing requires seeking", give all
the entries the proper value, and do the checks for attempting to write
a file format to a pipe or write it in compressed format to common code.

This means we don't need to pass the "can't seek" flag to the dump open
routines.

svn path=/trunk/; revision=36575
2011-04-12 00:44:44 +00:00
Guy Harris 4c93827e34 From Jakub Zawadzki:
file_read(buf, bsize, count, file) macro is compilant with fread
function and takes elements count+ size of each element, however to make
it compilant with gzread() it always returns number of bytes.

In wiretap file_read() this is not really used, file_read is called
either with bsize set to 1 or count to 1.

Attached patch remove bsize argument from macro.

svn path=/trunk/; revision=36491
2011-04-06 06:51:19 +00:00
Chris Maynard b92bf3b06c Use BSWAP16 instead of BSWAP32 for 16-bit values. Fixes CID's 1179 and 1180.
svn path=/trunk/; revision=36422
2011-03-31 16:46:16 +00:00
Anders Broman f14e039375 Make it build on Windows 7
(pcapng.c(1817) : warning C4267: '=' : conversion from 'size_t' to 'gint', possible loss of data)

svn path=/trunk/; revision=36325
2011-03-25 06:42:59 +00:00
Gerald Combs 1cc613c32d Add a missing include.
svn path=/trunk/; revision=36321
2011-03-24 23:33:38 +00:00
Gerald Combs fcf51fc73b Add initial pcapng name resolution record support. Wireshark has read
support; TShark has read+write support. Additionally TShark can read a
"hosts" file and write those records to a capture file.

This uses "struct addrinfo" in many places and probably won't compile on
some platforms.

svn path=/trunk/; revision=36318
2011-03-24 22:47:57 +00:00
Gerald Combs 6e66cae876 Check for a large packet_len. Fixes a bug reported by Huzaifa
Sidhpurwala of the Red Hat Security Response Team.

See also: bug 5661.

svn path=/trunk/; revision=35855
2011-02-07 19:39:05 +00:00
Guy Harris 79b01c78be Fix indentation.
svn path=/trunk/; revision=35804
2011-02-04 08:07:50 +00:00
Guy Harris 17d1226a56 Put more data into the "additional error information" messages.
Get rid of debugging printouts that are equivalent to the "additional
error information" messages.

Return additional error info for all WTAP_ERR_BAD_RECORD errors.

svn path=/trunk/; revision=35800
2011-02-04 02:24:33 +00:00
Jeff Morriss 1587ac63d8 Use g_strdup() instead of strdup()
svn path=/trunk/; revision=35796
2011-02-04 02:08:47 +00:00
Gerald Combs 0c9649929e From Huzaifa Sidhpurwala of the Red Hat Security Response Team: Don't
free uninitialized memory.

See also: bug 5652.

svn path=/trunk/; revision=35791
2011-02-03 22:50:49 +00:00
Guy Harris 1bf478fdef Rename wtap_dump_file_write_all() to wtap_dump_file_write(), and have
everybody use it; the places using the old wtap_dump_file_write() were
using it in the same way the old wtap_dump_file_write_all() did.

That also lets us get rid of wtap_dump_file_ferror().

Also, have the new wtap_dump_file_write() check for errors from
gzwrite() and fwrite() differently - the former returns 0 on error, the
latter can return a short write on error.

svn path=/trunk/; revision=33113
2010-06-06 19:14:32 +00:00
Guy Harris 21a210b777 From Chris Maynard:
Support PPP-over-USB.

	Don't remove the USB pseudo-header from the packet data for
	Linux USB packets, just byte-swap it if necessary and have the
	USB dissector fetch the pseudo-header from the raw packet data.

	Update USB language ID values.

svn path=/trunk/; revision=32534
2010-04-21 20:51:22 +00:00
Guy Harris 400d57fa2f Treat the first block we read, when opening, specially:
1) if it's not an SHB, just say "this is not a pcap-ng file",
	   don't try to process it (we can't process it, as we haven't
	   finished setting up all the state information yet);

	2) if it has the right SHB type code, but isn't a valid SHB,
	   just say "this is not a pcap-ng file".

For all other SHB's, treat anything that renders it invalid as an error.

svn path=/trunk/; revision=32393
2010-04-05 22:20:21 +00:00
Guy Harris 17392a865a Move the definitions of all the private data structures out of
wtap-int.h, and change the unions of pointers to those private data
structures into just void *'s.

Have the generic wtap close routine free up the private data, rather
than the type-specific close routine, just as the wtap_dumper close
routine does for its private data.  Get rid of close routines that don't
do anything any more.

svn path=/trunk/; revision=32015
2010-02-26 07:59:54 +00:00
Guy Harris c85899e946 Move the declarations of wtap_pcap_encap_to_wtap_encap() and
wtap_wtap_encap_to_pcap_encap() to wiretap/pcap-encap.h.  Include it
where it's needed; don't include other Wiretap headers where they're not
needed.

Include pcapng.h in pcapng.c, to declare the functions defined in
pcapng.c.  Add some casts to squelch some warnings, and add to a comment
to indicate one of the problems.

svn path=/trunk/; revision=31960
2010-02-23 03:50:42 +00:00
Michael Tüxen 393214bc6b Stop loading a pcapng file with multiple section header blocks.
This fixes a bug reported by Tyson Key as a follow up of Bug 3560.
Also some cleanups and debug output improvements.

Thanks to Tyson Key for reporting the bug and providing a tracefile.
This fix will be included in Wireshark 1.2.1 and higher.

svn path=/trunk/; revision=28868
2009-06-28 11:09:24 +00:00
Michael Tüxen 7a728f6722 Accept file snaplen larger than WTAP_MAX_PACKET_SIZE,
text2pcap uses 102400.
This fixes bug 3620. Thanks to Tyson Key for reporting the bug
and providing capture files.
This fix should be included in Wireshark 1.2.1 and higher.

svn path=/trunk/; revision=28866
2009-06-27 18:50:13 +00:00
Michael Tüxen 1297ec0d61 Another cleanup. We are now back to Ulf's original
model of data handling.

svn path=/trunk/; revision=28864
2009-06-27 17:33:23 +00:00
Michael Tüxen dce1889fd7 Cleanup. Should be included in Wireshark 1.2.1 and higher to keep
merging future bug fixes simple.

svn path=/trunk/; revision=28863
2009-06-27 16:08:18 +00:00
Michael Tüxen a41d93603c Add support for writing pcapng files with multiple
encapsulations.
This fixes a bug reported by Sake during the
Sharkfest 09. Thanks for providing a
Netscreen tracefile with multiple link layer
types.
This patch will be included in Wireshark 1.2.1
and higher.

svn path=/trunk/; revision=28862
2009-06-27 15:20:44 +00:00
Michael Tüxen 6ce8546ecd This patch
* adds an encapsulation argument to pcap_write_phdr.
* writes the pseudo header when writing pcapng files.

This fixes a bug where you could not write pcapng files
when using encapsulations requiring pseudo headers.

svn path=/trunk/; revision=28859
2009-06-27 12:41:06 +00:00
Michael Tüxen 11a65d398b If all interfaces use the same encapsulation, use
this a the file encapsulation.

This fixes a bug where you can not save a file
in libpcap format when you captured it as a
pcapng one.

This fix will be scheduled for Wireshark 1.2.1
and higher.

svn path=/trunk/; revision=28858
2009-06-27 12:14:18 +00:00
Michael Tüxen 267df8e183 This commit
* adds an encap argument to pcap_process_pseudo_header.
* adds support for reading pseudo headers.
It fixes Bug 3560.
Thanks to Tyson Key for reporting the bug and providing
trace files. This fix will be scheduled for inclusion in
Wireshark 1.2.1 and higher.

svn path=/trunk/; revision=28857
2009-06-27 11:39:47 +00:00
Michael Tüxen f15cdff759 Disable debug output.
svn path=/trunk/; revision=28851
2009-06-26 15:25:22 +00:00
Michael Tüxen b5d3abb77b * Allocate enough memory for reading a packet.
* Initialize pseudoheader.
* Add some input validation / protection code.
* Fix some return values.
* Clean up some whitespaces.

This fixes Bug 3565. Thanks to Tyson Key how reported
the issue and provided capture files for debugging.

This fix is scheduled for inclusion in Wireshark 1.2.1
and higher.

svn path=/trunk/; revision=28850
2009-06-26 15:08:04 +00:00
Michael Tüxen 98a4696773 Fix for bug 3539: Address as signess issue for fcs_len.
Bugfix scheduled for 1.2.1.

svn path=/trunk/; revision=28768
2009-06-18 18:43:36 +00:00
Michael Tüxen 47fd39c73d Clean up a comment.
svn path=/trunk/; revision=28763
2009-06-17 00:46:38 +00:00
Michael Tüxen cb678fdcfd Whitespace cleanups.
svn path=/trunk/; revision=28757
2009-06-16 05:03:33 +00:00
Michael Tüxen 46ecce3d3d Fix bug reported by Stig: per packet encapsulation for
pcapng is supported.

svn path=/trunk/; revision=28736
2009-06-15 12:55:42 +00:00
Michael Tüxen 1d65c4b06f When writing pcapng files use correct interface index
of 0 instead of 1.

svn path=/trunk/; revision=28696
2009-06-11 11:24:29 +00:00
Michael Tüxen 83aa6f473f From Aaron Turner: Use wtap_wtap_encap_to_pcap_encap() instead of
fixed mapping for ethernet only.

svn path=/trunk/; revision=28443
2009-05-22 07:33:58 +00:00
Michael Tüxen 21fcdad106 One more debug output.
svn path=/trunk/; revision=28274
2009-05-05 05:58:21 +00:00
Michael Tüxen cd369fcbf8 Use a dynamic glib array instead of a static C array for
storing the interface specific data.

svn path=/trunk/; revision=28264
2009-05-03 17:43:41 +00:00
Michael Tüxen 9366841f60 Add support for multiple IDBs. They can used different encapsulations.
svn path=/trunk/; revision=28262
2009-05-03 15:47:41 +00:00
Michael Tüxen 2d894fdd24 Improve handling of if_tsresol option.
svn path=/trunk/; revision=28261
2009-05-03 15:09:23 +00:00
Michael Tüxen 6d0211be52 Use WTAP_FILE_TSPREC_NSEC as tsprecision. This makes it independent from the
interfaces. Convert other times appropriately.

svn path=/trunk/; revision=28257
2009-05-03 11:46:40 +00:00
Michael Tüxen 9447c434e9 Remove code that should have been removed by my last commit.
svn path=/trunk/; revision=28256
2009-05-03 10:38:41 +00:00
Michael Tüxen b9d34749e6 Use WTAP_ENCAP_PER_PACKET. This is an intermediate step towards supporting
multiple IDBs.

svn path=/trunk/; revision=28255
2009-05-03 09:56:53 +00:00
Michael Tüxen accb3a9207 Fix the handling of non PB/EPB blocks after the initial SDB/IDB.
svn path=/trunk/; revision=28251
2009-05-02 17:10:01 +00:00
Michael Tüxen fa8bb35715 Use named constant.
svn path=/trunk/; revision=28176
2009-04-27 11:52:14 +00:00
Guy Harris 18a3b0659c Have the libpcap and pcap-NG code share the LINKTYPE_-to-WTAP_ENCAP_
mapping table - they should be using the same values.  Share the mapping
routines as well.

svn path=/trunk/; revision=28173
2009-04-27 09:28:28 +00:00