Commit graph

612 commits

Author SHA1 Message Date
Guy Harris
92b2d0f796 Use "tvb_get_string()" in "proto_tree_set_string_tvb()" - it won't leak
memory if it throws an exception, as it checks whether the entire string
is in the tvbuff *before* allocating a buffer for it, and that also
means that if the length is absurdly large, an exception will be thrown,
rather than the memory allocation failing.

svn path=/trunk/; revision=9043
2003-11-20 05:20:17 +00:00
Guy Harris
1581057cc4 On Mac OS X, disable the alarm/longjmp stuff for timing out name
resolution queries - it runs a significant risk of crashing applications
that do that.

svn path=/trunk/; revision=9042
2003-11-20 05:04:57 +00:00
Guy Harris
0bd646058d From Tomas Kukosa: add "extern"s so that the plugin API stuff works.
svn path=/trunk/; revision=9006
2003-11-18 19:20:36 +00:00
Guy Harris
240c946b82 From Olivier Biot: add a "--enable-profile-build" flag to request that
"-pg" binaries be built.

svn path=/trunk/; revision=9001
2003-11-18 08:13:10 +00:00
Ronnie Sahlberg
8acd679327 updates to ip_to_str[_buf]() to make them faster.
This functin was in a recent profiling run the fifth most expensive function.
It consumed ~3.5% of the total cpu in that run.

Using a static table this function is now just over twice as fast as previously.

My testrun calling it 10.000.000 times in a loop changed the execution time from ~17.3s ro ~8.2s

If this test was representative for the speedup and if ~3.5 in the profile run
was representative for normal cases this should make ethereal ~1.8% faster.
Woohoo.
(low hanging fruit)

svn path=/trunk/; revision=8992
2003-11-17 22:56:45 +00:00
Guy Harris
7bd2e232a9 Export "protocol_t" as an opaque type.
Make "proto_is_protocol_enabled()" and "proto_get_protocol_short_name()"
take a "protocol_t *" as an argument, so they don't have to look up the
"protocol_t" - this will probably speed them up considerably, and
they're called on almost every dissector handoff.

Get rid of a number of "proto_is_protocol_enabled()" calls that aren't
necessary (dissectors called through handles, including those called
through dissector tables, or called as heuristic dissectors, aren't even
called if their protocol isn't enabled).

Change some direct dissector calls to go through handles.

svn path=/trunk/; revision=8979
2003-11-16 23:17:27 +00:00
Guy Harris
624fe0ec15 Require that field names contain only alphanumerics, "-", "_", and ".".
Fix the names that contained other characters.

svn path=/trunk/; revision=8959
2003-11-13 23:38:33 +00:00
Guy Harris
d2db02c521 Use "g_get_tmp_dir()" to get the pathname of the temporary file
directory.

svn path=/trunk/; revision=8872
2003-11-03 22:32:36 +00:00
Gerald Combs
5903ff03a3 Make get_tempfile_path() work like get_datafile_path(), which removes
a dependency on PATH_MAX (which apparently isn't defined under Windows).

svn path=/trunk/; revision=8862
2003-11-03 02:41:07 +00:00
Gerald Combs
cb452773c2 Bump the version number to 0.9.16.
svn path=/trunk/; revision=8861
2003-11-02 23:36:01 +00:00
Gerald Combs
031db8b9c8 From Gisle Vanem:
* Added a new function get_file_in_temp() to
  epan/filesystem.c. This because of asn1.dll plugin which
  had code to write to a log-file "c:\temp\ethereal.log". I feel
  this patch makes this safer; I don't even have a c:\temp dir.

* Patched packet-asn1.c to use get_file_in_temp().

* Added some #undef to packet-snmp.c to silence gcc.

* Changed "%u" -> "%lu" formats in util.c

Rename get_file_in_temp() to get_tempfile_path() to match other function
names.

svn path=/trunk/; revision=8859
2003-11-02 23:12:35 +00:00
Guy Harris
c37d30442f From Dinesh Dutt:
- Dissector for FICON
	- Dissector for FC-SP (Security Protocol for Fibre Channel)
	- Patches to correct the reassembly of FC fragments.
	- Support for new MDS Port Analyzer Adapters that carry the
	  frame length for truncated frames.

svn path=/trunk/; revision=8823
2003-10-30 02:06:13 +00:00
Guy Harris
0c0ef44095 Make the "fvalue_set" methods for types whose value is allocated free
any previously-allocated version first, so that they don't leak memory.

From Olivier Biot: add a "proto_item_append_string()" routine, to append
to the string value a protocol tree item has.

svn path=/trunk/; revision=8821
2003-10-29 23:48:14 +00:00
Guy Harris
4b1fda78b9 Allow + and , in unparsed strings, so that you can use + as a sign in a
number or exponent and so that floating-point numbers can use , as well
as . as a decimal point.

svn path=/trunk/; revision=8791
2003-10-27 22:45:47 +00:00
Guy Harris
b60dec2b52 Add a new EXCEPT_CODE macro to get the exception code for the current
exception, for use in CATCH_ALL handlers, so you can catch all
exceptions and then pass the exception code on to a routine that handles
different exceptions differently.

svn path=/trunk/; revision=8757
2003-10-23 04:59:46 +00:00
Guy Harris
04674dc949 Catch exceptions when dissecting a verifier, so we still dissect the
stub data even if there's a problem dissecting the verifier.

Show stub data as "Encrypted stub data" if it's encrypted, "Decrypted
stub data" if it was encrypted but we decrypted it, and "Stub data" if
it wasn't encrypted.

Don't attempt to decrypt data unless it was encrypted (i.e., the
authentication level is "Packet privacy".

Get rid of "decrypted_data" member of "packet_info" structure - we don't
need it any more.

svn path=/trunk/; revision=8743
2003-10-21 07:17:16 +00:00
Guy Harris
e8e73d6caf From Matthias Melchior: parenthesize check for RESOLV_CONCURRENT.
Get rid of "!= 0" check - other tests for a bit being on in
g_resolv_flags don't do that.

svn path=/trunk/; revision=8684
2003-10-14 00:40:14 +00:00
Guy Harris
be4197e744 From Ulf Lamping: add some missing "cd .."s. (I guess the current
directory in nmake files persists across targets; presumably all
commands, or, at least, all "cd" commands, are run in the same process.)

svn path=/trunk/; revision=8682
2003-10-13 19:04:56 +00:00
Guy Harris
02e1d2680a Give every Makefile.nmake file a "distclean" rule, and have "distclean"
recurse into subdirectories doing "nmake -f Makefile.nmake distclean".

Have "nmake -f Makefile.nmake clean" not remove stuff that "make clean"
doesn't remove (such as Flex/Bison output and config.h files) - and have
"nmake -f Makefile.nmake distclean" remove stuff that "make distclean"
removes, including "tethereal-tap-register.c" and
"ethereal-tap-register.c".

svn path=/trunk/; revision=8672
2003-10-10 21:31:53 +00:00
Guy Harris
96886bd8a0 Get rid of an out-of-date comment.
svn path=/trunk/; revision=8643
2003-10-07 21:15:00 +00:00
Guy Harris
af5b47a0c2 When registering a field, make sure its ID is -1 or 0 - if it's not,
that probably means you've registered two fields with the same field ID
variable, which is an error.

Fix the bugs doing so found.

svn path=/trunk/; revision=8629
2003-10-06 20:46:52 +00:00
Guy Harris
be2736adcf Have a pseudo-header for Ethernet packets, giving the size of the FCS -
0 means "there is no FCS in the packet data", 4 means "there is an FCS
in the packet data", -1 means "I don't know whether there's an FCS in
the packet data, guess based on the packet size".

Assume that Ethernet encapsulated inside other protocols has no FCS, by
having the "eth" dissector assume that (and not check for an Ethernet
pseudo-header).

Have "ethertype()" take an argument giving the FCS size; pass 0 when
appropriate.

Fix up Wiretap routines to set the pseudo-header.  This means we no
longer use the "generic" seek-and-read routine, so get rid of it.

svn path=/trunk/; revision=8574
2003-10-01 07:11:49 +00:00
Guy Harris
b530c88a3b "compute_offset_length()" must, if it returns FALSE, and "exception" is
non-null, set "*exception" to the appropriate exception - its callers
rely on it.

Now that it does that, there's no need for "check_offset_length()" to
check for a length of -1, as "compute_offset_length()" does so, and
therefore "check_offset_length_no_exception()" does so.

svn path=/trunk/; revision=8562
2003-09-28 21:39:53 +00:00
Guy Harris
342fa7a1b5 From Tomas Kukosa:
Remove the internal packet-per.c functions
	"dissect_per_length_determinant()" and
	"dissect_per_normally_small_nonnegative_whole_number()" from the
	plugin API, as they shouldn't be used outside the PER dissector.

	Remove the H.225/H.245 functions
	"dissect_h225_TransportAddress()" and
	"dissect_h245_NonStandardParameter()" from the plugin API until
	we really need them in plugins.

	Add the string dissector table functions to the plugin API.

svn path=/trunk/; revision=8532
2003-09-24 18:35:58 +00:00
Guy Harris
7bfaf8caf3 From Graeme Hewson:
Don't crash if "-z" is used on the command line when a live
	capture is being done (e.g., with "-k -S" - in that case,
	"cfile.filename" is null when the window is created), just don't
	display the file name in the title.

	Don't set the title of a non-existent window - create the window
	first.

svn path=/trunk/; revision=8472
2003-09-15 19:05:01 +00:00
Ronnie Sahlberg
007d873671 Added TimeReference frames.
One can now select a packet and mark it as a TimeReference packet using the menu.
A TimeReference packet will be indicated by having all timestamp related column entries replaced by the string *REF*
A TimeReference packet will always be displayed in the packet pane, and overrides any display filters.

When a frame is a TimeReference frame, all later frames will calculate the TimeRelativeToFirstPacket  relative to the timestamp of the TimeReference frame instead of the first frame of the capture.

You can have any number of TimeReference frames you like.

svn path=/trunk/; revision=8459
2003-09-12 02:48:23 +00:00
Gerald Combs
7704cdd149 Make tvb_find_tvb() return -1 if either tvb length is 0. Otherwise, an
assertion happens 'xxxx contains ""'.

svn path=/trunk/; revision=8450
2003-09-10 21:19:47 +00:00
Guy Harris
0de9c67adf Void functions don't return values.
svn path=/trunk/; revision=8442
2003-09-10 06:48:55 +00:00
Guy Harris
92fbca527d Add "dissector_get_string_handle()" for string dissector tables, similar
to "dissector_get_port_handle()" for uint dissector tables.

svn path=/trunk/; revision=8434
2003-09-09 18:09:42 +00:00
Gerald Combs
f87f524260 Bump the version to 0.9.15. Update the NEWS and ChangeLog to August 27. More
updates to come.

svn path=/trunk/; revision=8410
2003-09-08 03:13:15 +00:00
Guy Harris
f6c0519c0a Support string dissector tables in the Tethereal "decode as" stuff.
Make the Ethereal "decode as" stuff not blow up with string dissector
tables.

Selectors for uint dissector tables are unsigned, not signed.

svn path=/trunk/; revision=8408
2003-09-07 00:47:57 +00:00
Guy Harris
c26004150b When registering a dissector table, choose what type of hash and
comparison function to use based on the type value passed in.  For the
traditional unsigned integer table, require FT_UINT{8,16,24,32}; if the
type is FT_STRING or FT_STRINGZ, use the string hashing functions
instead.

Add routines for manipulating entries and looking up dissectors in
string dissector tables.

svn path=/trunk/; revision=8407
2003-09-06 23:37:02 +00:00
Ronnie Sahlberg
b9ce30cd35 And for Cal,
Ethereal presents   a column to display culmulative bytes into the capture.

A new column type is added : Culmulative Bytes.
While PacketLength column type specifies the number of bytes in the current packet,
Culmulative Bytes specifies the culmulative number of bytes from the start of the capture.

svn path=/trunk/; revision=8359
2003-09-03 10:49:03 +00:00
Guy Harris
92c530aced Include <string.h> to get "strlen()" declared.
svn path=/trunk/; revision=8281
2003-08-27 21:11:39 +00:00
Gilbert Ramirez
52338a3baf Add a "contains" operator for byte-strings, strings, and tvbuffs (protocols).
The search uses a naive approach; more work is required to add a
Boyer-Moore Search algorithm.

svn path=/trunk/; revision=8280
2003-08-27 15:23:11 +00:00
Gerald Combs
6deb901e11 Fix macro logic to allow classical resolution even if we have HAVE_GNU_ADNS
defined.

svn path=/trunk/; revision=8274
2003-08-26 20:21:08 +00:00
Guy Harris
87d35a7c55 In "col_set_addr()", don't do anything other than clearing the column
expression information if the address type is AT_NONE -
"address_to_str_buf()" panics if passed an AT_NONE address, as there's
nothing sensible one can do with them.  (A null string wouldn't be
appropriate here, as a dissector might have set the address columns to a
string.)

svn path=/trunk/; revision=8269
2003-08-26 06:40:25 +00:00
Guy Harris
dcf024f759 Use "address_to_str_buf()" to generate column data for non-resolved
addresses.

svn path=/trunk/; revision=8262
2003-08-26 01:30:48 +00:00
Guy Harris
14854b769e Include "osi-utils.h" to define "print_nsap_net_buf()".
svn path=/trunk/; revision=8261
2003-08-26 01:28:28 +00:00
Guy Harris
d9c401c74c Create an "address_to_str_buf()" routine, called by "address_to_str()",
which fills in a caller-supplied buffer.

Create "_buf()" versions of various "to_str" routines for various
address types, and create a routine to map SNA FIDs to strings, and use
them to finish up "address_to_str_buf()".

Get rid of the declaration of "sna_fid_type_4_addr_to_str()" in
"packet-sna.h", as that routine has been swallowed up in
"sna_fid_to_str()".

svn path=/trunk/; revision=8260
2003-08-26 01:00:30 +00:00
Guy Harris
0333b96fbf Include the header files required by new APIs in the plugin API table.
svn path=/trunk/; revision=8252
2003-08-25 21:35:36 +00:00
Guy Harris
e4e0150ffa From Matthijs Melchior:
support for registering fields after all the protocol
	    registration routines are called (i.e., adding fields to the
	    named field tree as they're registered);

	fix the GTK 2.x version of the field list dialog to show the
	    correct name.

svn path=/trunk/; revision=8248
2003-08-25 00:15:02 +00:00
Guy Harris
0558b4406d Put in some comments about possible future work on "address_to_str()".
Put in some additional "case AT_" statements to

	1) squelch compiler warnings;

	2) add AT_ARCNET (cheap and easy);

	3) add placeholders for some other address types.

svn path=/trunk/; revision=8243
2003-08-24 20:30:46 +00:00
Ronnie Sahlberg
38e52de283 Add endpoint talker support for IPX
svn path=/trunk/; revision=8240
2003-08-24 05:38:23 +00:00
Ronnie Sahlberg
bcfc2719b9 Update address_to_str to handle FC and ETH addresses as well.
Update the fc and eth and tr  endpoint talker list to use the new api

svn path=/trunk/; revision=8235
2003-08-24 03:00:11 +00:00
Ronnie Sahlberg
521db7b61f Add a new function address_to_str to to_str.c
Implement conersion from address to string for IPv4 and IPv6
and update the conversation tables to use the new interface.

svn path=/trunk/; revision=8234
2003-08-24 02:50:32 +00:00
Guy Harris
29b99f4e69 FC addresses are no longer extracted into guint32s, so "fc32_to_str()"
is no longer needed.

svn path=/trunk/; revision=8226
2003-08-24 01:06:21 +00:00
Ronnie Sahlberg
cb92d3284b Update the UDP and the TCP conversation list tool so that it can handle IPv6 as well.
Make no distinction between UDP/TCP over IPv4 and UDP/TCP over IPv6
and present them in the same list.

svn path=/trunk/; revision=8224
2003-08-23 13:56:40 +00:00
Ronnie Sahlberg
5cf0634041 Add FibreChannel to the types of protocols we can show a conversation list for
svn path=/trunk/; revision=8223
2003-08-23 13:35:06 +00:00
Guy Harris
a27ef6ace9 Fix up --with messages that include square brackets.
Put --with-plugins on the left margin, as the rest of the messages are.

svn path=/trunk/; revision=8202
2003-08-21 07:20:56 +00:00