Commit Graph

158 Commits

Author SHA1 Message Date
Guy Harris 88e9d1c1e5 Do not call wtap_file_read_unknown_bytes() or
wtap_file_read_expected_bytes() from an open routine - open routines are
supposed to return -1 on error, 0 if the file doesn't appear to be a
file of the specified type, or 1 if the file does appear to be a file of
the specified type, but those macros will cause the caller to return
FALSE on errors (so that, even if there's an I/O error, it reports "the
file isn't a file of the specified type" rather than "we got an error
trying to read the file").

When doing reads in an open routine before we've concluded that the file
is probably of the right type, return 0, rather than -1, if we get
WTAP_ERR_SHORT_READ - if we don't have enough data to check whether a
file is of a given type, we should keep trying other types, not give up.
For reads done *after* we've concluded the file is probably of the right
type, if a read doesn't return the number of bytes we asked for, but
returns an error of 0, return WTAP_ERR_SHORT_READ - the file is
apparently cut short.

For NetMon and NetXRay/Windows Sniffer files, use a #define for the
magic number size, and use that for both magic numbers.

svn path=/trunk/; revision=46803
2012-12-27 12:19:25 +00:00
Michael Tüxen ef0282ee9c Fix syntax error showing up when using debug ouput.
svn path=/trunk/; revision=46713
2012-12-23 08:59:30 +00:00
Michael Tüxen 6af6ce5ee0 Add support for writing the packet block flags for pcapng.
While there, do some minor cleanup.

svn path=/trunk/; revision=46699
2012-12-22 20:38:08 +00:00
Guy Harris 5996b49c53 Squelch implicit 64-bit-to-32-bit conversion warnings.
svn path=/trunk/; revision=46650
2012-12-21 03:32:16 +00:00
Jakub Zawadzki 78631020b8 Add wtap_pseudo_header union to wtap_pkthdr structure.
Use pkthdr instead of pseudo_header as argument for dissecting.

svn path=/trunk/; revision=45601
2012-10-16 21:50:57 +00:00
Gerald Combs c91c1df500 Use seasonal allocation for name resolution. This effectively scrubs our
resolution information between capture files so that we don't leak host
entries from one file to another (e.g. embarassing-host-name.example.com
from file1.pcapng into a name resolution block in file2.pcapng).

host_name_lookup_cleanup and host_name_lookup_init must now be called
after each call to se_free_all. As a result we now end up reading our
various name resolution files much more than we should.

svn path=/trunk/; revision=45511
2012-10-12 21:37:02 +00:00
Guy Harris 928ebf0ea3 If we see an SHB after we've read the first SHB, report that as an
unsupported feature.

If we see an IDB after all the IDBs at the beginning of the file,
process it.  Fixes bug 7851.

Get rid of unused read_idbs flag in pcapng_t structure.  (Also, as per
the above, just because we've read all the IDBs at the beginning of the
section, that doesn't necessarily mean we've read all the IDBs in the
section.)

Fix some places where we reject SPBs.

svn path=/trunk/; revision=45495
2012-10-12 03:55:10 +00:00
Jeff Morriss 3551a86c36 We always HAVE_CONFIG_H so don't bother checking whether we have it or not.
svn path=/trunk/; revision=45015
2012-09-20 01:29:52 +00:00
Michael Tüxen afe900aa9f Avoid a division by zero due to overflow.
This should fix the crash in
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7266

svn path=/trunk/; revision=44141
2012-07-30 20:53:42 +00:00
Michael Tüxen 64ab313254 Some more debug info.
svn path=/trunk/; revision=44076
2012-07-27 19:13:38 +00:00
Michael Tüxen d8c4c4617c Handle the case where no IDB follows the SHB. This fixes part of
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7533
which deals with Div by 0 crash in pcapng_read_packet_block().

svn path=/trunk/; revision=44074
2012-07-27 18:43:53 +00:00
Guy Harris 4de568eb10 Don't ask for information about an interface greater than the maximum
interface for which we have information.

Fixes bug 7467.

Should also cause an error message, rather than an unreadable capture
file, to be produced for the cases in bug 7381.  (This isn't a fix for
bug 7381; it's arguably an improvement, in the sense that a circuit
breaker tripping or a fuse blowing for a short circuit is an improvement
over a fire starting, but it's not a *fix*, any more than a circuit
break or fuse *fixes* the short circuit.)

#BACKPORT

svn path=/trunk/; revision=43657
2012-07-11 03:57:13 +00:00
Guy Harris 8891144224 When writing an EPB, calculate the time stamp based on the resolution
for the interface, not based on the default resolution of 1 microsecond.
Fixes bug 7457.

Fix a comment.

Clean up indentation.

#BACKPORT

svn path=/trunk/; revision=43649
2012-07-10 19:12:37 +00:00
Jakub Zawadzki bf81b42e1e Update Free Software Foundation address.
(COPYING will be updated in next commit)

svn path=/trunk/; revision=43536
2012-06-28 22:56:06 +00:00
Gerald Combs 39dbd45c9f Fix some dead assignments.
svn path=/trunk/; revision=43157
2012-06-08 17:20:44 +00:00
Anders Broman 2bc42dc547 Try to squelch warnings
svn path=/trunk/; revision=42998
2012-06-02 14:13:14 +00:00
Guy Harris 33bb54a945 file_seek() used to be a wrapper around fseek() or gzseek(), both of
which could use lseek() and were thus expensive due to system call
overhead.  To avoid making a system call for every packet on a
sequential read, we maintained a data_offset field in the wtap structure
for sequential reads.

It's now a routine that just returns information from the FILE_T data
structure, so it's cheap.  Use it, rather than maintaining the data_offset
field.

Readers for some file formats need to maintain file offset themselves;
have them do so in their private data structures.

svn path=/trunk/; revision=42423
2012-05-04 16:56:18 +00:00
Michael Tüxen bacf81ff06 Fix https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7048
Write timetamps for the interface statistic blocks the way specified
by http://www.winpcap.org/ntar/draft/PCAP-DumpFileFormat.html


svn path=/trunk/; revision=42080
2012-04-15 11:11:36 +00:00
Michael Tüxen 587e0213eb Whitespace cleanup (done while debugging).
svn path=/trunk/; revision=42079
2012-04-15 11:08:40 +00:00
Gerald Combs beee8db906 Print the correct block size in a debug message.
svn path=/trunk/; revision=41773
2012-03-26 19:29:33 +00:00
Anders Broman 63c19bd071 Disable debug.
svn path=/trunk/; revision=41716
2012-03-21 08:58:27 +00:00
Anders Broman 456c7c2dc6 Try to make the buildbot happy.
svn path=/trunk/; revision=41684
2012-03-20 11:58:29 +00:00
Anders Broman 148c8a3a30 Write ISB:s if we have them.
svn path=/trunk/; revision=41683
2012-03-20 11:42:55 +00:00
Guy Harris 8af620acd7 Initialize the new num_stat_entries and interface_statistics members of
a wtapng_if_descr_t, so that we don't crash on a close (as is happening
in the buildbot).

Fix up some 4-space tabs.

svn path=/trunk/; revision=41575
2012-03-15 21:44:54 +00:00
Anders Broman fb0fec7c1c If we have one ISB, display the droped count from it.
svn path=/trunk/; revision=41561
2012-03-15 14:33:04 +00:00
Anders Broman dc674a6043 - Store ISB data.
- free IDB and ISB data when closing.

svn path=/trunk/; revision=41558
2012-03-15 13:46:42 +00:00
Anders Broman 0e4998190f From Jose Pedro Oliveira:
Remove a printf line in wiretap/pcapng.c
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6718

svn path=/trunk/; revision=41534
2012-03-13 15:26:36 +00:00
Anders Broman bb611755e9 Add data structure to hold information from ISB:s
svn path=/trunk/; revision=41522
2012-03-13 08:36:52 +00:00
Anders Broman 35bf2e9619 From Jose Pedro Oliveira:
Enforce the modelines in wiretap/pcapng.c

svn path=/trunk/; revision=41506
2012-03-12 15:43:59 +00:00
Anders Broman 1a8f3eddc7 From Jose Pedro Oliveira: Add Modlines
svn path=/trunk/; revision=41495
2012-03-12 06:39:45 +00:00
Gerald Combs 7a8df2f485 In pcapng.c use the units per second value from the interface instead of
the default.

Add support for reading nseclibpcap files to dumpcap.

svn path=/trunk/; revision=41455
2012-03-10 00:24:42 +00:00
Anders Broman e15692be8a From Jose Pedro Oliveira: Corrects several 'wdh->bytes_dumped += ...' lines. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6718
svn path=/trunk/; revision=41443
2012-03-09 04:50:43 +00:00
Anders Broman ddd69f4775 Use correct lenght when writing if_filter_str.
svn path=/trunk/; revision=41352
2012-03-05 09:32:21 +00:00
Anders Broman a20cfcc745 Fix calculation of pading for if_filter_str.
svn path=/trunk/; revision=41351
2012-03-05 09:21:36 +00:00
Guy Harris 732de9018d Squelch a can't-really-happen uninitialized reference warning.
svn path=/trunk/; revision=41342
2012-03-04 20:49:17 +00:00
Anders Broman 7348837ccd Use parentheses
svn path=/trunk/; revision=41341
2012-03-04 19:31:33 +00:00
Anders Broman 971cb84877 if_filter isn't a string per se,The first byte of the Option Data keeps a code of the filter used
svn path=/trunk/; revision=41339
2012-03-04 19:01:14 +00:00
Guy Harris aa974fda50 Make sure all names in NRB records are null-terminated; report an error
if they're not.  Also report an error for zero-length names.

Handle multiple names per IP address - the pcap-NG spec says "one or
more zero-terminated strings containing the DNS entries for that
address."

Use a Buffer to hold NRB records, so there's no maximum size (well,
there is a maximum size, because the record length is 16 bits, but let's
not allocate 64KiB on the stack if we don't have to).

svn path=/trunk/; revision=41332
2012-03-04 02:20:25 +00:00
Anders Broman ad6640344f From Jose Pedro Oliveira: Fix typos
svn path=/trunk/; revision=41330
2012-03-03 16:17:20 +00:00
Guy Harris b18a5f9805 Don't look at the interface_id field of the packet header if
WTAP_HAS_INTERFACE_ID isn't set in the presence flags.

svn path=/trunk/; revision=41327
2012-03-03 00:13:25 +00:00
Guy Harris 17dff5f3c4 Get rid of no-longer-needed argument to pcapng_write_section_header_block().
svn path=/trunk/; revision=41292
2012-03-02 09:38:43 +00:00
Guy Harris 10337e0ca4 Skip an intermediating wtapng_block_t in the code path to write
Interface Description Blocks.

Fix a typo (if_fcslen was meant rather than opt_comment when writing the
FCS length).

svn path=/trunk/; revision=41291
2012-03-02 09:30:10 +00:00
Guy Harris 334a807e14 Simplify the code path for writing pcap-NG packets, and remove some
no-longer-needed elements from the wtapng_packet_t structure.

svn path=/trunk/; revision=41289
2012-03-02 09:03:26 +00:00
Guy Harris 44528a6437 Fill in the wtap_pkthdr fields in pcap_read_packet_block() and
pcap_read_simple_packet_block(), not in pcap_read() - the way the fields
are filled in differs between simple and non-simple packet blocks.

Clean up white space.

svn path=/trunk/; revision=41284
2012-03-02 05:03:06 +00:00
Michael Tüxen 59dee69a95 Fix CID 1385.
svn path=/trunk/; revision=41264
2012-03-01 14:57:14 +00:00
Michael Tüxen 3bd0e0be10 Fix CID 354.
svn path=/trunk/; revision=41263
2012-03-01 14:51:26 +00:00
Anders Broman ffbba61fdf Read the complete NRB.
#Backport

svn path=/trunk/; revision=41259
2012-03-01 13:31:40 +00:00
Anders Broman cc9bcfb068 Add debuginfo
svn path=/trunk/; revision=41258
2012-03-01 10:13:02 +00:00
Guy Harris b6ff142f60 Add a presence flag field to the packet information structure filled in
by Wiretap, to indicate whether certain fields in that structure
actually have data in them.

Use the "time stamp present" flag to omit showing time stamp information
for packets (and "packets") that don't have time stamps; don't bother
working very hard to "fake" a time stamp for data files.

Use the "interface ID present" flag to omit the interface ID for packets
that don't have an interface ID.

We don't use the "captured length, separate from packet length, present"
flag to omit the captured length; that flag might be present but equal
to the packet length, and if you want to know if a packet was cut short
by a snapshot length, comparing the values would be the way to do that.

More work is needed to have wiretap/pcapng.c properly report the flags,
e.g. reporting no time stamp being present for a Simple Packet Block.

svn path=/trunk/; revision=41185
2012-02-25 23:24:34 +00:00
Anders Broman cacbe31797 Fix a typo and revert previous.
svn path=/trunk/; revision=41179
2012-02-24 15:57:56 +00:00