Commit graph

72 commits

Author SHA1 Message Date
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
Michael Tüxen
c68e344284 Clean up some comments I forgot to remove.
svn path=/trunk/; revision=28154
2009-04-26 07:46:03 +00:00
Guy Harris
a043d8482f Don't do pointer casting - some version of GCC complain about that.
svn path=/trunk/; revision=28153
2009-04-26 02:59:16 +00:00
Guy Harris
f71921252e There's no guarantee that "ll" is the right modifier to use for
gint64/guint64 with GLib's formatting routines; use G_GINT64_MODIFIER
instead.

svn path=/trunk/; revision=28152
2009-04-25 21:06:09 +00:00
Michael Tüxen
94fc2641e7 - add support for interface statistic block
- distinguish between packet block and enhanced packet block
- fix a bug regarding the handling of unknown blocks

svn path=/trunk/; revision=28151
2009-04-25 19:11:35 +00:00