aboutsummaryrefslogtreecommitdiffstats
path: root/epan/conversation.h
AgeCommit message (Collapse)AuthorFilesLines
2019-11-24conversation.h: Whitespace fixesJoerg Mayer1-10/+8
Change-Id: Id8b0b352ac5fcfc7451663367ccea8fe4be86da9 Reviewed-on: https://code.wireshark.org/review/35200 Reviewed-by: Jörg Mayer <jmayer@loplof.de>
2018-08-01Revert "Have find_or_create_conversation() use pinfo->conv_endpoint if present."Guy Harris1-3/+6
This reverts commit ba202ef36225b59eb797c5a48b8d4a4665b479c7. Creating endpoints, and corresponding conversations, for protocols atop which TCP or UDP runs can potentially cause attempts to look up the conversation to find the conversation for that protocol rather than for TCP/UDP, which can confuse protocols running atop TCP or UDP. Change-Id: I3ca522e54e67cc4f996d0ee841c6bb40ee6a9976 Reviewed-on: https://code.wireshark.org/review/28912 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-31Have find_or_create_conversation() use pinfo->conv_endpoint if present.Guy Harris1-6/+3
Add conversation_new_pinfo(), which uses the endpoint if present, and have find_or_create_conversation() use it rather than conversation_new(). Remove find_or_create_conversation_by_id() - it's no longer needed. Bug: 15018 Change-Id: Ib13e539751af0f071aede4ee0ed751d0cb72ba3f Reviewed-on: https://code.wireshark.org/review/28908 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-31Export some more conversation functions.Guy Harris1-4/+6
They're used by built-in dissectors; I see no reason whatsoever to forbid plugins from using them. See https://ask.wireshark.org/question/4366/compile-plugin-with-call-to-conversation_set_port2/ Change-Id: I6a04df961c164a09b88abd8f46a1fe3420a21661 Reviewed-on: https://code.wireshark.org/review/28906 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-31For ISDN, don't create an endpoint by ID and then use it.Guy Harris1-0/+6
That isn't working, because it depends on the notion that for every "endpoint type" there's a "port type" for the packet_info structure; that's not true for ISDN channels. The whole point of "use the packet_info structure when trying to find a conversation and create it if it doesn't exist" is to use address information *already filled in by somebody for use by other dissectors*; we don't do that with the ISDN channel number, because there's no *need* to do so. So just add a new find_or_create_conversation_by_id() routine, which passes the packet_info structure to get the frame number, and explicitly passes the endpoint type and ID. Use that in the ISDN dissector. Bug: 15018 Change-Id: Id0e997254b0eaf7cbc9261a2adff639ecbf083c0 Reviewed-on: https://code.wireshark.org/review/28904 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-10UDP: Heuristic dissector for conversation taking precedenceRobert Jongbloed1-1/+1
When a single UDP port is supporting multiple protocols, for example RTP and RTCP can share a port, and one of these protocols is detected through a heuristic before a superior protocol (e.g. SIP/SDP) has established that the port has multiple protocols, then only the heuristic is used. This is due to only looking for an exact match with find_conversation() and not going any further. The superior protocol only adds the dissector by source address/port. So, to fix, if we do not find the exact match, we continue serching for a dissector on the partial matches. Bug: 14370 Change-Id: Icdded9ca1637cd594b920f979f6f0a003bef9aae Reviewed-on: https://code.wireshark.org/review/25432 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2018-02-08epan: use SPDX indentifiers.Dario Lombardo1-13/+1
Skipping dissectors dir for now. Change-Id: I717b66bfbc7cc81b83f8c2cbc011fcad643796aa Reviewed-on: https://code.wireshark.org/review/25694 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-11-13Remove circuit APIMichael Mann1-4/+21
Replace with conversation API that limits the "endpoint" to a single uint32 value. The intention is to eventually have "layered" endpoints, because circuit_id was used in cases where src/dest port have already been populated (and are used for layers above). Those src/dest ports should just be treated as just another endpoint, but we currently only have support for one. Change-Id: Ic6aa7ef0241275aa4dfde9459194369b48c72960 Reviewed-on: https://code.wireshark.org/review/24369 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-11-09ISDN: Convert circuit API to conversation APIMichael Mann1-1/+6
Change-Id: I8752123a740c47f9328e0144624d4fbf4e200165 Reviewed-on: https://code.wireshark.org/review/24314 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-11-09ISO 14443: Convert circuit API to conversation APIMichael Mann1-1/+2
Change-Id: Id007a3df5442cf4d21263acb17303b6d735aaa7d Reviewed-on: https://code.wireshark.org/review/24311 Petri-Dish: Michael Mann <mmann78@netscape.net> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-11-09DVB-CI: Convert circuit API to conversation APIMichael Mann1-1/+6
Add the few necessary conversation APIs to make conversion possible. Change-Id: I775f23005c48cacd2be342bdc704af4738f0789c Reviewed-on: https://code.wireshark.org/review/24310 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-11-01Add ability to create endpoints through conversationsMichael Mann1-0/+6
Add endpoint information to the packet_info structure for dissectors to potentially use as their data to create conversations. This patch includes a simple "example" of using conversation_create_endpoint with TDMoP. The assignment of the PT_TDMOP "port type" has been replaced by setting ENDPOINT_TDMOP within the endpoint structure. Then when subdissectors of TDMoP call find_or_create_conversation(), it implicitly picks up the conversation information set by TDMoP Change-Id: I11dc29989cccd3b0f0349ee901babb455ca02d19 Reviewed-on: https://code.wireshark.org/review/24190 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Andrew Chernyh <andrew.chernyh@gmail.com> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-10-29Add conversation endpoint typeMichael Mann1-3/+31
For the moment this mirrors the port_type enumeration (PT_XXX), but the intent is to move away from using "port types", eliminating most (if not all) Added conversation_pt_to_endpoint_type() so that conversations deal with the correct enumeration. This is for dissector that use pinfo->ptype as input to conversation APIs. Explicit use of port types are converted to using ENDPOINT_XXX type. Change-Id: Ia0bf553a3943b702c921f185407e03ce93ebf0ef Reviewed-on: https://code.wireshark.org/review/24166 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-10-28Privatize the conversation_key structureMichael Mann1-9/+13
The intention is to make it more transparent when making a switch to an "endpoint" over address/port combination. Change-Id: Ic424c32095ecb103bcb4f7f4079c549de2c8d9c4 Reviewed-on: https://code.wireshark.org/review/24148 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-10-28Share use of conversation_hash_exactMichael Mann1-0/+2
It was duplicated in GTK, so just make it public (at least for now) Change-Id: I89d985b2d42f0edb1c535a65a97b132920dedbcd Reviewed-on: https://code.wireshark.org/review/24146 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-10-27Add find_conversation_pinfoMichael Mann1-0/+5
Convenience function to add the same parameters to find_conversation as find_or_create_conversation. Change-Id: I3a92541cb9c1e827a9de8248825636debbd989cd Reviewed-on: https://code.wireshark.org/review/24118 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-02-10Convert conversation hash tables to use wmem.Michael Mann1-8/+7
Simplifies cleanup because wmem can handle the memory cleanup. Change-Id: Idc6a9bfe5f23c83b59a5278a64b9fb706862342d Reviewed-on: https://code.wireshark.org/review/20042 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-02-10Convert conversation data_list from GSList to wmem_tree.Michael Mann1-1/+1
Change-Id: I7eac4b4da86d1ac1ce8753f424b698a9949df00b Reviewed-on: https://code.wireshark.org/review/20041 Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-06-26conversation: rename shadow variableDario Lombardo1-1/+1
Change-Id: I8f738b2e01d7f448b21cdc1b488b16b7dd581911 Reviewed-on: https://code.wireshark.org/review/16104 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-02-08Revert "Create an extended converstaion hastable taking more address ↵Anders Broman1-14/+2
information into consideration. This makes it possible to differentiate between packets on different vlans and can be expanded to handle tunnels." This reverts commit f80e9df7939be9d88062718d6c15fa2983e5e605. Change-Id: I7877b250d479c30209cfe74351069d54359757b5 Reviewed-on: https://code.wireshark.org/review/13825 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-02-02Create an extended converstaion hastable taking more address informationAndersBroman1-2/+14
into consideration. This makes it possible to differentiate between packets on different vlans and can be expanded to handle tunnels. Change-Id: Id36e71028702d1ba4b6b3047e822e5a62056a1e2 Reviewed-on: https://code.wireshark.org/review/13637 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-10-30STUN: register a new conversation dissector after receiving a ConnectionBind ↵Pascal Quantin1-2/+9
Success Response message According to RFC 6062, once the connection is established, data is sent as-is To stop the STUN dissector from interfering, add the ability to specify a starting frame for a conversation dissector and use it Bug: 11641 Change-Id: I65ca96bddacf70444009c0642ea22173fa68992e Reviewed-on: https://code.wireshark.org/review/11372 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2014-03-04Remove all $Id$ from top of fileAlexis La Goutte1-2/+0
(Using sed : sed -i '/^ \* \$Id\$/,+1 d') Fix manually some typo (in export_object_dicom.c and crc16-plain.c) Change-Id: I4c1ae68d1c4afeace8cb195b53c715cf9e1227a8 Reviewed-on: https://code.wireshark.org/review/497 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2014-01-04(Trivial) explicitely --> explicitlyBill Meier1-1/+1
svn path=/trunk/; revision=54594
2013-11-02Bluetooth: Use dissector data instead of pinfo->private_data. Bug 7893 ↵Michael Mann1-3/+0
(https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7893) From Michal Labedzki svn path=/trunk/; revision=53051
2013-11-01Allow try_conversation_dissector() to pass data to subdissectors.Michael Mann1-1/+1
svn path=/trunk/; revision=53035
2013-09-15Use a better hash algorithm and add a dialouge to get hastable data.Anders Broman1-0/+16
svn path=/trunk/; revision=52078
2013-07-08New Qt feature: Show related packet list items in the frame numberGerald Combs1-0/+2
column. Conversation spans (setup frame to last frame) are shown with a square bracket. Linked frames are shown with a circle. Use correct column justifications in Qt. Move common justification-related packet list code to ui/packet_list_utils.[ch]. Add a last_frame element to conversation_t. svn path=/trunk/; revision=50447
2013-03-01Export libwireshark symbols using WS_DLL_PUBLIC defineBalint Reczey1-7/+9
Also remove old WS_VAR_IMPORT define and related Makefile magic everywhere in the project. svn path=/trunk/; revision=47992
2012-06-28Update Free Software Foundation address.Jakub Zawadzki1-1/+1
(COPYING will be updated in next commit) svn path=/trunk/; revision=43536
2012-04-19From Cristian Constantin:Anders Broman1-0/+2
while caching the last element from the conversation hash chain lists speeds-up the operation when the hash/chain lists are actually built, it does NOT help a lot when a certain random conversation which is in the hash table is looked-up. I did some profiling and tracing and I saw that a lot of cpu time is spent in the function conversation_lookup_hashtable() when wireshark is asked to show the "Flow Graph", "TCP Conversations", "Voip Calls". I used two types of captures with over 500k packets: - tcp packets having the _same_ src ip addr, src tcp port, dst ip addr, dst tcp port - (mostly) sip packets containing sdp payloads which advertise the _same_ ip addr, udp port for media these types of captures lead to _huge_ chain lists behind the same hash bucket (to which the conversation is actually mapped) the solution would be to cache the last found conversation into the head of the chain list and to use it whenever it is possible; most of the time the look-up will be in O(1) instead of O(n) (n - number of elements in the list). https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=7149 svn path=/trunk/; revision=42141
2012-02-04From Cristian Constantin:Anders Broman1-0/+1
Slow loading/processing of conversations with over 500k frames. https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=6755 svn path=/trunk/; revision=40837
2010-08-28Doxygen changes.Anders Broman1-8/+79
svn path=/trunk/; revision=33981
2010-05-13As suggested in ↵Jeff Morriss1-0/+2
http://www.wireshark.org/lists/wireshark-dev/200809/msg00075.html (as referenced in https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=2907 ) and https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=3411 : Write a new convenience routine for finding a conversation and, if it is not found, create it. The frame number and addresses are taken from pinfo (as is the common case). Use this function in a bunch of dissectors. svn path=/trunk/; revision=32790
2010-04-03 From Yaniv Kaul: constify parametersBill Meier1-12/+12
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4422 From me: Fix a number of instances where the function prototype or the function definition wasn't changed so there was a mismatch thus causing Windows (but not gcc) compilation errors. svn path=/trunk/; revision=32365
2010-04-02Revert SVN #32360 until Windows compilation errors corrected.Bill Meier1-12/+12
svn path=/trunk/; revision=32361
2010-04-02From Yaniv Kaul: constify parametersBill Meier1-12/+12
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=4422 svn path=/trunk/; revision=32360
2009-09-06Split a bunch of init routines into init() and cleanup(). This allows us to ↵Kovarththanan Rajaratnam1-0/+1
free memory properly on shutdown. This is an initial step. There's still some work to do. svn path=/trunk/; revision=29754
2008-03-15Get rid of a flag that's not used and that has no effect.Guy Harris1-1/+0
svn path=/trunk/; revision=24644
2007-01-18PutGuy Harris1-0/+8
#ifdef __cplusplus extern "C" { #endif /* __cplusplus */ ... #ifdef __cplusplus } #endif /* __cplusplus */ wrappers into some header files, for the benefit of C++ plugins. Also, add multiple-include protections. svn path=/trunk/; revision=20485
2006-05-21name changeRonnie Sahlberg1-2/+2
svn path=/trunk/; revision=18197
2005-02-03Check in the missing part of Jon Ringle's patch (the part that actuallyGuy Harris1-2/+3
changed the conversation code). svn path=/trunk/; revision=13250
2004-12-15From Peter Johansson: "template" conversations - if one is recognized,Guy Harris1-0/+8
the template is left around, and a new conversation is created with the wildcards in the template un-wildcarded. svn path=/trunk/; revision=12757
2004-07-18Set the svn:eol-style property on all text files to "native", so thatGuy Harris1-1/+1
they have LF at the end of the line on UN*X and CR/LF on Windows; hopefully this means that if a CR/LF version is checked in on Windows, the CRs will be stripped so that they show up only when checked out on Windows, not on UN*X. svn path=/trunk/; revision=11400
2004-07-06From Dinesh Dutt:Gerald Combs1-1/+3
- conversation.[ch] - To support not setting port2 on matching a conversation. This is used by protocols such as iSNS in which the client registers a TCP/UDP port with the server for notifications and the server sends notifications to this port from different source ports. - packet-isns.c - Added support for handling zero-length TLVs and ESI & SCN frames (when registering an SCN/ESI port, a conversation dissector is setup). svn path=/trunk/; revision=11320
2002-08-28Removed trailing whitespaces from .h and .c files using theJörg Mayer1-6/+6
winapi_cleanup tool written by Patrik Stridvall for the wine project. svn path=/trunk/; revision=6116
2001-11-27Change "conversation_set_dissector()" to take a dissector handle, ratherGuy Harris1-3/+4
than a pointer to a dissector function, as an argument. This means that the conversation dissector is called through "call_dissector()", so the dissector itself doesn't have to worry about checking whether the protocol is enabled or setting "pinfo->current_proto", so get rid of the code that does that in conversation dissectors. Also, make the conversation dissectors static. Get rid of some direct calls to dissectors; replace them with calls through handles, and, again, get rid of code to check whether a protocol is enabled and set "pinfo->current_proto" where that code isn't needed. Make those dissectors static if they aren't already static. Add a routine "create_dissector_handle()" to create a dissector handle without registering it by name, if the dissector isn't used outside the module in which it's defined. svn path=/trunk/; revision=4281
2001-11-04Declare routines exported to plugins through the plugin API table asGuy Harris1-10/+10
extern, so that "plugin_api_defs.h" works on platforms where you have to use the plugin API table. svn path=/trunk/; revision=4151
2001-10-31Get rid of a bunch of stuff that was there to support non-tvbuffifiedGuy Harris1-10/+4
dissectors and that's no longer needed. svn path=/trunk/; revision=4112
2001-09-03Instead of having a single datum attached to a conversation, have a listGuy Harris1-3/+8
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