aboutsummaryrefslogtreecommitdiffstats
path: root/epan/conversation.c
AgeCommit message (Collapse)AuthorFilesLines
2001-09-03Instead of having a single datum attached to a conversation, have a listGuy Harris1-3/+93
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-03Don't pass wildcarded arguments to "find_conversation()" to routinesGuy Harris1-44/+181
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-03In "find_conversation()", do the same type of matching thatGuy Harris1-91/+125
"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-06-10Rename the arguments and flags for the conversation routines, so as notGuy Harris1-204/+206
to imply that 1) conversations have source and destination addresses and ports - they don't (if they did, they'd be monologues, not conversations), they just have two address/port pairs for the two endpoints, with one or more of the address or port in the second pair possibly being wildcarded; 2) the first and second address or port argument to "find_conversation()" or "try_conversation_dissector()" have anything to do with the first or second address/port pair in a conversation - they don't, the two arguments to those routines are matched against *both* address/port pairs for a conversation; as otherwise people might think that they need to add flags to wildcard the first arguments "conversation_new()" or "find_conversation()" (they don't, they just have to pass the non-wildcarded address/port first and then pass the wildcarded one, even if that means passing the destination first and source second). svn path=/trunk/; revision=3537
2001-06-06Fix a comment.Guy Harris1-10/+14
Split some lines differently. svn path=/trunk/; revision=3519
2001-06-04Define a "COPY_ADDRESS()" macro, which copies the data in one address toGuy Harris1-20/+4
another (copying the data to a mallocated array) in "epan/packet_info.h", and use it in the conversation code. svn path=/trunk/; revision=3510
2001-06-04Add an "ADDRESSES_EQUAL()" macro, taking pointers to two "address"Guy Harris1-29/+10
structures as arguments, that evaluates to "true" if the two addresses are equal and "false" if they're not equal. Use that macro in the conversation code. svn path=/trunk/; revision=3509
2000-11-18Nobody calls "old_try_conversation_dissector()" orGuy Harris1-57/+1
"old_dissector_try_heuristic()" any more, as their users have all been tvbuffified - get rid of them. svn path=/trunk/; revision=2660
2000-11-18Do the checks for the presence of a conversation dissector the same wayGuy Harris1-10/+6
in "try_conversation_dissector()" that they're done in "old_try_conversation_dissector()". svn path=/trunk/; revision=2656
2000-11-18Don't attempt to call the dissector for a conversation if theGuy Harris1-3/+16
conversation doesn't have a dissector. svn path=/trunk/; revision=2655
2000-10-21Wildcard matching is tricky - you have to try wildcarding both theGuy Harris1-65/+391
source *and* destination port and/or both the source *and* destination address passed to "find_conversation()", because the packet for which you're trying to find the conversation may be going in the opposite direction to the packet for which the conversation was originally created. Create different hash tables for wildcarded conversations, to reduce the number of "is this a wildcard?" tests done when doing hash lookups. This is sufficient to allow the TFTP dissector to use conversations rather than being special-cased in the UDP dissector, and may also be sufficient to handle a similar problem with SMTP (request goes from client IP X port Y to server IP Z's well-known port, reply comes back from some other port on server Z to client IP X port Y), but further use may reveal other changes that should be made. svn path=/trunk/; revision=2525
2000-10-21Support for conversations with "wildcard" destination addresses, fromGuy Harris1-29/+118
Jeff Foster. svn path=/trunk/; revision=2523
2000-09-27First step in moving core Ethereal routines to libepan.Gilbert Ramirez1-0/+362
svn path=/trunk/; revision=2458