Commit Graph

4079 Commits

Author SHA1 Message Date
Guy Harris 2a148564d6 TCP desegmentation support, and changes to the ONC RPC and NBSS
dissectors to use it, from Ronnie Sahlberg, with additional changes to
handle the case where a frame contains messages that don't run past the
end followed by one that does and where a reassembled chunk has, at the
end, a message that runs past the end of that chunk (because the
reassembly was for an earlier message).

svn path=/trunk/; revision=3923
2001-09-13 07:56:53 +00:00
Guy Harris a37ddb63b1 Clean up the previous checkin a bit - there's no need to have
"dissect_rpc_common()" check, every time it's about to return FALSE,
whether it's being used as a heuristic dissector and, if not, call
"dissect_rpc_continuation()" - we can just have the non-heuristic
dissector call it and, if it returned FALSE, call
"dissect_rpc_continuation()".

svn path=/trunk/; revision=3922
2001-09-12 08:46:39 +00:00
Guy Harris 94e029fef6 When establishing or searching for a conversation for ONC RPC, use both
source and destination addresses if the transport is TCP (we use that,
for now, as a proxy for "if the transport is connection-oriented"), as
the endpoint addresses should be the same for all packets.

Have both a heuristic RPC dissector and a non-heuristic version, and
make the non-heuristic version the dissector for the conversations we
create; that version will, if the frame doesn't look like a call or
reply, mark it as continuation data.

svn path=/trunk/; revision=3921
2001-09-12 08:13:33 +00:00
Guy Harris e35a8ac8fe Fix from Tom Uijldert: scan TPI's to get proper WTP packet length and
correct start of WSP-data.

svn path=/trunk/; revision=3920
2001-09-11 14:36:33 +00:00
Guy Harris a649181931 GTPv1 support and GTPv0 improvements, from Michal Melerowicz and Nicolas
Balkota.

svn path=/trunk/; revision=3919
2001-09-11 08:14:39 +00:00
Guy Harris b6ac95ef20 Fix some bugs (and some indentation).
svn path=/trunk/; revision=3918
2001-09-11 06:38:57 +00:00
Guy Harris 65ac4971d2 The byte count field in an SMB Write request counts not only the data
being written, but the 2 bytes of data length and one byte of buffer
type preceding that data; use the data length (which doesn't count
itself or the buffer type byte), rather than the byte count, to
determine how much data is being written.

svn path=/trunk/; revision=3917
2001-09-11 05:31:45 +00:00
Guy Harris de14d757d1 From Frank Singleton: install idl2eth in "/usr/local/bin".
svn path=/trunk/; revision=3916
2001-09-10 22:06:33 +00:00
Guy Harris fa8a2ac762 Man page update, from Frank Singleton, to mention
$PYTHONPATH/site-packages/.

svn path=/trunk/; revision=3915
2001-09-10 21:59:57 +00:00
Guy Harris 1d16da664c Some WAP WTP naming fixes plus textual Transaction Class value decoding,
from Olivier Biot.

svn path=/trunk/; revision=3914
2001-09-10 21:54:08 +00:00
Guy Harris aa29eca046 The "Save only marked packets" checkbox should change as the file type
changes, just as the "Save only packets currently being displayed"
checkbox should.

svn path=/trunk/; revision=3913
2001-09-10 08:49:11 +00:00
Guy Harris 0ee22efcd6 From Jason Lango:
Clean up RTSP Transport parsing and sub-conversation code.
	Dissect RTP/MP4 (and other RTP/xxx) as RTP/AVP (for now).

svn path=/trunk/; revision=3912
2001-09-08 00:43:51 +00:00
Guy Harris dd1b7eafaf OSPFv3 support, from Palle Lyckegaard.
svn path=/trunk/; revision=3911
2001-09-05 19:53:42 +00:00
Guy Harris 2cdb896f85 Typo fix, from Martti Kuparinen.
svn path=/trunk/; revision=3910
2001-09-05 19:48:53 +00:00
Guy Harris 23140475d7 Close the file to which we're writing before exiting, so that:
buffered data is written out to the file;

	headers are written if the capture file header depends on the
	number or sizes of the packets;

etc..

svn path=/trunk/; revision=3909
2001-09-05 05:03:47 +00:00
Guy Harris b98e472531 From Frank Singleton: first look in $PYTHONPATH/site-packages for
ethereal_be.py and ethereal_gen.py, then look in the current directory.

svn path=/trunk/; revision=3908
2001-09-04 21:06:58 +00:00
Guy Harris 4ad369eca1 HMIPv6 support, from Martti Kuparinen.
svn path=/trunk/; revision=3907
2001-09-04 21:04:52 +00:00
Guy Harris 0e68611e41 From Thomas Wittwer: add "prefs_register_string_preference()" to the
list of functions available to plugins.

svn path=/trunk/; revision=3906
2001-09-04 01:05:41 +00:00
Guy Harris 32b1270b4d Change from Thomas Wittwer to register HTTP dissector by name, for other
dissectors to call.

svn path=/trunk/; revision=3905
2001-09-04 01:01:48 +00:00
Guy Harris 1a2d09a302 Use cURL's strategy for parsing 227 responses.
Add comments noting the IPv6 issues for PASV responses.

When adding the FTP dissector for the FTP port, give its protocol as
"proto_ftp", not "proto_ftp_data".

svn path=/trunk/; revision=3904
2001-09-03 20:52:25 +00:00
Guy Harris 14eb1cb5fa Use "tvb_reported_length_remaining()" to check whether there's data left
in the packet; this eliminates a signed vs. unsigned comparison warning
in GCC.

svn path=/trunk/; revision=3903
2001-09-03 18:05:57 +00:00
Guy Harris 554eb35fcf Get rid of a no-longer-used #define.
svn path=/trunk/; revision=3902
2001-09-03 17:57:17 +00:00
Guy Harris 3388bde488 Instead of having a single datum attached to a conversation, have a list
of protocol-id-plus-datum pairs, so that multiple protocols can attach
information to the same conversation.

Dissectors that attach information to a conversation should not assume
that if they find a conversation it has one of its data attached to it;
the conversation might've been created by another dissector.

svn path=/trunk/; revision=3901
2001-09-03 10:33:12 +00:00
Guy Harris 31f2f8cabb Squelch some compiler warnings.
svn path=/trunk/; revision=3900
2001-09-03 08:27:56 +00:00
Guy Harris ab5d4fcca0 Squelch some compiler warnings.
svn path=/trunk/; revision=3899
2001-09-03 08:19:12 +00:00
Guy Harris 24ddb0198b Make routines that are passed an unsigned integer as their last argument
have an unsigned integer as that argument; this squelches some compiler
warnings, and it's the right thing to do in any case.

Don't check whether an unsigned integer value is > 0 - that's the same
as checking whether it's != 0.

svn path=/trunk/; revision=3898
2001-09-03 08:10:46 +00:00
Guy Harris f6c33914fe Don't pass wildcarded arguments to "find_conversation()" to routines
that look up conversations in hash tables, unless they are arguments
that will be ignored; if they're not being ignored, then if the argument
is a null pointer you may get a crash if it's dereferenced, and if it's
not a null pointer you'll only get a match if the conversation has
whatever stuff the arguments points to as its first address or port.

If you match a conversation with a wildcarded address and/or port, and
the address and/or port matched a non-wildcarded search argument, and
the conversation is for a connection-oriented transport protocol, set
the wildcarded address and/or port for the conversation to the value
that matched it.

svn path=/trunk/; revision=3897
2001-09-03 07:31:20 +00:00
Guy Harris c21d49795d Get the IP address, as well as the port, from a PASV reply, and use it
rather than the address from which the PASV reply came when setting up a
conversation.

Don't compare the reply code with "227" unless the reply code is 3
characters long.

Set up the conversation for a PASV response only if we haven't already
processed the packet (and thus haven't already set up the conversation).

svn path=/trunk/; revision=3896
2001-09-03 03:12:01 +00:00
Guy Harris 88cebea17c Fix up the handling of data after the first token on the line.
svn path=/trunk/; revision=3895
2001-09-03 02:41:31 +00:00
Guy Harris 11e21f0f8c Parse the address as well as the port in a PASV response.
Don't have two separate pieces of code that look at the response code of
a response.

svn path=/trunk/; revision=3894
2001-09-03 02:32:10 +00:00
Guy Harris 2c9de0038c In "find_conversation()", do the same type of matching that
"try_conversation_dissector()" does - start with as exact matches as
possible, and then start doing wildcarding - so that it can find
conversations with wildcard addresses or ports even if both address and
port arguments are supplied to it.

svn path=/trunk/; revision=3893
2001-09-03 00:26:31 +00:00
Guy Harris ecb162ee80 Handle, as best we can, the case where the authentication flavor is
GSS-API but the RPCSEC_GSS procedure and service information isn't
available in the captured data.

svn path=/trunk/; revision=3892
2001-09-02 23:57:33 +00:00
Guy Harris 3ad3db9658 Don't attempt to fetch the authentication flavor from a call if it's not
available - just mark it as "authentication flavor unknown".  Don't
dissect the next protocol if the authentication flavor is unknown.

This lets us get some more work done on short frames (although if you
really want to analyze ONC RPC traffic, you should make the snapshot
length large enough to capture enough of the frames).

svn path=/trunk/; revision=3891
2001-09-02 22:49:56 +00:00
Uwe Girlich 9088f16241 Some new commands added. I found them in a recent trace of Q3A 1.27g.
svn path=/trunk/; revision=3890
2001-09-01 14:47:48 +00:00
Guy Harris 8d31fd0690 From Frank Singleton: add some missing includes of <string.h>.
svn path=/trunk/; revision=3889
2001-08-31 19:47:10 +00:00
Guy Harris 2bd9e2c314 Changes from Frank Singleton to add entries for "packet-coseventcomm" to
the lists of source and generated files for plugins.

While we're at it, make all those lists show the files in the same
order.

svn path=/trunk/; revision=3888
2001-08-31 19:46:14 +00:00
Guy Harris ef787a1d84 Update the documentation to reflect the fact that the arguments to
"conversation_new()" and "find_conversation()" do not have fixed
identities as source and destination addresses, and to reflect the name
changes we made to arguments and flags to dispel any notion that they
had such fixed identities.

svn path=/trunk/; revision=3887
2001-08-31 09:04:36 +00:00
Olivier Abad 987acc38a8 Patch from Frank Singleton :
- Use only basename of CORBA IDL file to generate the dissector
  name, and not the fullpath name. Allows idl2eth to generate
  valid "C" code no matter where the IDL file lives (doh!)

svn path=/trunk/; revision=3886
2001-08-30 19:31:53 +00:00
Olivier Abad e76642f9c7 Patches from Frank Singleton :
- update idl2eth man page , now that "unions" are implemented ;
- support for idl2eth man page installation.

svn path=/trunk/; revision=3885
2001-08-30 19:25:39 +00:00
Guy Harris 5715a48382 RPCSEC_GSS fixes, from Mike Frisch.
svn path=/trunk/; revision=3884
2001-08-30 18:33:30 +00:00
Guy Harris c6e93ed482 Update from Yaniv Kaul to dissect UDP-encapsulated AH and to register
the ISAKMP dissector to be called for TCP port 500.

svn path=/trunk/; revision=3883
2001-08-30 02:23:17 +00:00
Guy Harris 1950443fba Call the ESP dissector regardless of whether "tree" is non-null or not.
svn path=/trunk/; revision=3882
2001-08-29 09:02:37 +00:00
Guy Harris a0d0d364b1 Support for UDP encapsulation of IPSec packet draft, from Yaniv Kaul.
svn path=/trunk/; revision=3881
2001-08-29 08:12:32 +00:00
Guy Harris fbe8da33f5 Add a "proto_item_append_text()" routine, which is like
"proto_item_set_text()" except that it appends the result of the
formatting to the item's current text, rather than replacing the item's
current text.  Use it in the DNS dissector.

svn path=/trunk/; revision=3880
2001-08-29 00:51:10 +00:00
Guy Harris aa4cd01b9b Get rid of "proto_tree_add_notext()" - if you create a subtree using it,
but, before you set the text, you throw an exception while putting stuff
under the subtree, you end up with an absolutely blank protocol tree
item, which is really gross.  Instead of calling
"proto_tree_add_notext()", call "proto_tree_add_text()" with at least a
minimal label - yes, it does mean you do some work that will probably be
unnecessary, but, absent a scheme to arrange to do that work if it *is*
necessary (e.g., catching exceptions), the alternative is an ugly
protocol tree display.

svn path=/trunk/; revision=3879
2001-08-28 08:28:19 +00:00
Guy Harris d9019638ee Free allocated memory as soon as we're done with it. In many cases,
this obviates the need to add cleanup handlers for exceptions, if we
move a free call so that there are no tvbuff references between the
allocation and the free.  Checking for that also found some cases where
frees were missing, and one loop where a call was made to allocate stuff
but the free was only done after the exit from the loop.

In cases where we can't move the free up above tvbuff references,
register cleanup handlers, and replace the free with
CLEANUP_CALL_AND_POP.

Eliminate some initializations of pointers to null - the initializations
aren't necessary (or ceased to be necessary after the frees were moved
up).

In the "force an exception" code in "get_CDR_octet_seq()", touch the
first byte after the string, to make it more likely that we'll throw the
correct exception (e.g., throw a "past end of captured data" exception
rather than a "past end of data" exception).

There's no need for "get_CDR_string()" to force an exception, as it just
calls "get_CDR_octet_seq()", which will do it for us.

However, as the result of "get_CDR_string()" is often processed as a
string, if the length is 0 it should just "g_strdup()" a null string,
rather than not doing anything (and relying on the pointer variable
being initialized to null).  It's not always safe to treat a null
pointer as if it pointed to a string (in fact, it is often most
definitely unsafe).

svn path=/trunk/; revision=3878
2001-08-28 07:19:47 +00:00
Guy Harris 9cef3b28ad Put in a comment noting that the "Service" string in a Tree Connect and
X reply is always in ASCII.

svn path=/trunk/; revision=3877
2001-08-27 23:17:30 +00:00
Guy Harris a7f16a41d9 Handle the "Native File System" string in a TconX response as ASCII or
Unicode based on whether strings in the SMB are ASCII or Unicode.

svn path=/trunk/; revision=3876
2001-08-27 20:15:30 +00:00
Guy Harris d4b447c972 Add "idl2eth.1" to the list of files to ignore in CVS; it's a generated
file.

svn path=/trunk/; revision=3875
2001-08-27 20:05:16 +00:00
Guy Harris b39d788d91 Squelch some compiler warnings.
svn path=/trunk/; revision=3874
2001-08-27 20:04:21 +00:00