Commit Graph

9 Commits

Author SHA1 Message Date
Guy Harris 3ba6c2e708 Get rid of calls to "proto_is_protocol_enabled()" in heuristic
dissectors - the infrastructure for calling heuristic dissectors won't
call a heuristic dissector for a protocol if the protocol isn't enabled,
so there's no need for the dissector itself to check that.

svn path=/trunk/; revision=4419
2001-12-17 23:17:34 +00:00
Guy Harris 23319ff023 Move the pointer to the "column_info" structure in the "frame_data"
structure to the "packet_info" structure; only stuff that's permanently
stored with each frame should be in the "frame_data" structure, and the
"column_info" structure is not guaranteed to hold the column values for
that frame at all times - it was only in the "frame_data" structure so
that it could be passed to dissectors, and, as all dissectors are now
passed a pointer to a "packet_info" structure, it could just as well be
put in the "packet_info" structure.

That saves memory, by shrinking the "frame_data" structure (there's one
of those per frame), and also lets us clean up the code a bit.

svn path=/trunk/; revision=4370
2001-12-10 00:26:21 +00:00
Guy Harris c22d3fdc96 Get rid of the lists of conversation dissectors; instead, have a
dissector table contain both a hash table, to use to look up port
numbers to find a dissector, and a list of all dissectors that *could*
be assigned to ports in that hash table, to be used by user interface
code.

Make the "Decode As" dialog box code use that.

Also make it *not* let you choose whether to set the dissector for both
the UDP and TCP versions of a port; some protocols run only atop TCP,
some run only atop UDP, and even those that can run atop both may have
different dissector handles to use over TCP and UDP, so handling a
single merged list would be a mess.  (If the user is setting the
dissector for a TCP port, only those protocols that Ethereal can handle
over TCP should be listed; if the user is setting the dissector for a
UDP port, only those protocols that Ethereal can handle over TCP should
be listed; if the user is setting a dissector for both, only those
protocols that Ethereal can handle over *both* TCP *and* UDP should be
listed, *and* there needs to be a way to let the "Decode As" code get
both the TCP handle *and* the UDP handle and use the right ones.  If
somebody really wants that, they need to implement all of the above if
they want the code to be correct.)

Fix the code that handles setting the dissection for the IP protocol
number to correctly update the lists of protocols being dissected as TCP
and as UDP; the code before this change wasn't updating the single such
list to add new protocols.

svn path=/trunk/; revision=4311
2001-12-03 08:47:31 +00:00
Guy Harris bced8711f6 Make "dissector_add()", "dissector_delete()", and "dissector_change()"
take a dissector handle as an argument, rather than a pointer to a
dissector function and a protocol ID.  Associate dissector handles with
dissector table entries.

svn path=/trunk/; revision=4308
2001-12-03 04:00:26 +00:00
Guy Harris fd514820e4 From Tom Uijldert: have an non-heuristic UCP dissector, and register it
as a TCP conversation dissector, so that it can be selected in the
"Decode As" dialog box.

svn path=/trunk/; revision=4163
2001-11-05 21:41:33 +00:00
Guy Harris a7592d7e5b Fixes from Steffen Weinreich:
fix the processing of the month and year fields in the SCTC
	Timestamp (the month is 1-origin, so subtract 1 from it before
	putting it in "tm_mon", which is 0-origin; the year is a 2-digit
	field that is, at least, Y2K-safe (but Y2.1K-unsafe), so if it's
	less than 90, assume it's in the 21st century);

	UCP OT 50-57 messages have a fixed number of fields and a
	special handling of the MT is not necessary, so get rid of that.

Also, fix a typo in a comment.

svn path=/trunk/; revision=4030
2001-10-15 03:54:05 +00:00
Guy Harris 7ea5330b24 As UCP is atop TCP, its dissector isn't called unless there's at least
one byte in the tvbuff being handed to it, so the check I added for the
existence of that byte is unnecessary.

svn path=/trunk/; revision=4011
2001-10-08 17:42:18 +00:00
Guy Harris 971ceec9d2 Remove the check I added to see whether the length of the packet, based
on the location of the UCB_ETX, is greater than the length of the tvbuff
- that can never happen, as the UCB_ETX is, as it was found, definitely
inside the tvbuff.

svn path=/trunk/; revision=4010
2001-10-08 17:37:52 +00:00
Guy Harris bebcff62d7 UCP support, from Tom Uijldert.
svn path=/trunk/; revision=4009
2001-10-08 17:30:23 +00:00