Commit Graph

607 Commits

Author SHA1 Message Date
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
Guy Harris 8ee80cf603 Note that the "=DIR" argument to "--with-adns" is optional.
svn path=/trunk/; revision=8201
2003-08-21 07:17:09 +00:00
Guy Harris ce24750abc Void functions don't return values, even though GCC likes to pretend
that they do.

svn path=/trunk/; revision=8193
2003-08-19 18:30:44 +00:00
Guy Harris e7c8d1f5a0 From Matthijs Melchior:
move the initialization of the addresses in the plugin interface
	structure from run-time to link time;

	don't attempt to rebuild the X* files automatically, just warn
	that they're out of date and show the command used to rebuild
	them (not everybody has GCC installed, but it's required in
	order to rebuild them).

Get rid of the checked-in Xepan_plugins.c, as it's no longer generated
or used.

Fix Makefile.am now that Xepan_plugins.c has been replaced by Xass-list.

Give plugin_gen.py an RCS ID.

svn path=/trunk/; revision=8186
2003-08-18 20:17:55 +00:00
Guy Harris 718b853b53 From Gisle Vanem: <ws2tcpip.h> is needed for INET6 code in epan/resolv.c
(at least with MingW + gcc 3.3.1).

svn path=/trunk/; revision=8184
2003-08-18 18:40:10 +00:00
Tim Potter 3f6e918109 Save and restore the value of pinfo->current_proto when calling a
dissector in call_dissector_through_handle().

svn path=/trunk/; revision=8160
2003-08-12 20:09:38 +00:00