aboutsummaryrefslogtreecommitdiffstats
path: root/epan/epan.c
AgeCommit message (Collapse)AuthorFilesLines
2019-04-22Add brotli decompression support for HTTP and HTTP2 dissectors.Dániel Bakai1-0/+18
Change-Id: I9c09f55673187f6fee723fcd72798fb6b9958b03 Reviewed-on: https://code.wireshark.org/review/32745 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2019-01-28epan: add missing include.Dario Lombardo1-0/+1
Fix broken compilation on fedora28. Change-Id: Ib2c4ec3b2437bab0b8bf35e8a3c8072cf1c0f996 Reviewed-on: https://code.wireshark.org/review/31772 Reviewed-by: Dario Lombardo <lomato@gmail.com> Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Vasil Velichkov <vvvelichkov@gmail.com> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2019-01-28funnel: Fix memleaks in funnel_remove_menuStig Bjørlykke1-0/+1
The loop to remove all matching callbacks was skipping every second entry which would give some leaks when reloading Lua plugins. Add funnel_cleanup() to be called in epan_cleanup() at shutdown to remove all allocated menu entries. Change-Id: I3a50ba2070c8675fee1385f25e9e109db57c2dc5 Reviewed-on: https://code.wireshark.org/review/31769 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2019-01-27wslua: fix memleaks related to Proto and PrefPeter Wu1-0/+11
Proto objects were only freed while reloading Lua plugins, be sure to release these on program exit too. Fix missing deallocation of heur_list (matches per-protocol cleanup in proto_cleanup_base). Be sure to keep a reference to the "Pref" object after registering it to a Proto, otherwise it could be garbage-collected early, resulting in memleaks (because the preference was still in use). Fixes a lot of memory leaks reported by ASAN for tests, ten tests were affected by Proto_new leaks, four were affected by the new_pref leaks. Change-Id: Ica52718849a33eda614775f533dc0fcefec9cc74 Reviewed-on: https://code.wireshark.org/review/31746 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2018-12-29Add support for RSA decryption using PKCS #11 tokensPeter Wu1-0/+3
Add support for loading RSA private key files from PKCS #11 tokens, identified by PKCS #11 URIs. Add a new 'pkcs11_libs' UAT which can dynamically load PKCS #11 provider libraries that are not found by p11-kit. The configuration GUI will need additional code to discover available PKCS #11 tokens and will be added later. This feature requires GnuTLS 3.4 with PKCS #11 support, so Windows, macOS via Homebrew, Ubuntu 16.04, Debian Stretch. Not supported: RHEL7. Currently macOS via official packages disables PKCS #11 support, so that will also not work. Change-Id: I20646bfd69c6bd13c8c2d27cb65c164a4b0b7a66 Reviewed-on: https://code.wireshark.org/review/30855 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2018-11-20Add new Secrets API and allow TLS to use pcapng decryption secretsPeter Wu1-0/+3
Add a new secrets API to the core, one that can outlive the lifetime of a single capture file. Expose decryption secrets from wiretap through a callback and let the secrets API route it to a dissector. Bug: 15252 Change-Id: Ie2f1867bdfd265bad11fc58f1e8d8e7295c0d1e7 Reviewed-on: https://code.wireshark.org/review/30705 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-09-19Try to discourage the use of APIs via counting.Gerald Combs1-2/+1
Add the ability to specify maximum function counts for each group to checkAPIs. Add maximum counts for the "termoutput" and "abort" groups where needed. Show summaries in various checkAPI targets. Switch uses of ws_g_warning back to plain g_warning. Change-Id: I5cbddc8c671729e424eed8551f69116d16491976 Reviewed-on: https://code.wireshark.org/review/29721 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2018-09-09epan: Add argument to epan_init() to disable pluginsJoão Valverde1-2/+4
Change-Id: I8dc76e6bf8c4d5a3081cbdc1d47b88e857415d29 Reviewed-on: https://code.wireshark.org/review/29498 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde <j@v6e.pt>
2018-08-29epan: Remove unnecessary all protocols registration callbackJoão Valverde1-15/+10
We are exporting a registration function from libwireshark just to have it passed back as a callback. Seems unnecessary. Change-Id: I7621005c9be11691d319102326824c5e3520a6f3 Reviewed-on: https://code.wireshark.org/review/29328 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde <j@v6e.pt>
2018-06-26epan: Fix session null-pointer checkRoland Knall1-1/+1
Fix rare null-pointer when switching profiles Change-Id: I2a57ef22b4567f936f3a87e133db6132864a83ac Reviewed-on: https://code.wireshark.org/review/28468 Reviewed-by: Roland Knall <rknall@gmail.com>
2018-06-03Free dynamic header fields on exitStig Bjørlykke1-3/+12
Put routine to free all dynamically registered header fields in the UAT reset callback to avoid ASAN report for memory leaks on exit. Handle duplicated entries without leaking memory. Call proto_free_deregistered_fields() in proto_cleanup() and move this after prefs_cleanup() to free the memory used in UATs. Change-Id: I96545177b5b23b9c20ad8e7751a0d5621c9ca10f Reviewed-on: https://code.wireshark.org/review/27907 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2018-05-23plugins: Don't free static variableJoão Valverde1-1/+1
Our convention is to pass a pointer to a static structure as argument to *_register_plugin(). Don't try to free it. Change-Id: I16d81b72faf298ebfb3dccf4c9d4772291fd8cf0 Reviewed-on: https://code.wireshark.org/review/27748 Reviewed-by: João Valverde <j@v6e.pt>
2018-04-16glib: Get rid of GLIB_CHECK_VERSION as we now require 2.32.0Anders1-8/+0
Change-Id: Ie95cf37f9cd283545693e290340a7489cc989c95 Reviewed-on: https://code.wireshark.org/review/26970 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-03-08epan: Ignore SIGPIPE.Gerald Combs1-0/+10
We need to ignore SIGPIPE whenever we use maxmind_db. Do so in epan_init. Ping-Bug: 14494 Change-Id: I4372935e371a94c02a79050d59b2e3ee1ba04fee Reviewed-on: https://code.wireshark.org/review/26369 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-03-06Transition from GeoIP Legacy to MaxMindDB.Gerald Combs1-5/+5
MaxMind is discontinuing its legacy databases in April in favor of GeoIP2, which use a newer database format (MaxMind DB). The reference C library (libmaxminddb) is available under the Apache 2.0 license which isn't quite compatible with ours. Add mmdbresolve, a utility that reads IPv4 and IPv6 addresses on stdin and prints resolved information on stdout. Place it under a liberal license (MIT) so that we can keep libmaxminddb at arm's length. Add epan/maxmind_db.[ch], which spawns mmdbresolve and communicates with it via stdio. Migrate the preferences and documentation to MaxMindDB. Change the IPv4 and IPv6 asnum fields to FT_UINT32s. Change the geographic coordinate fields to FT_DOUBLEs. Bug: 10658 Change-Id: I24aeed637bea1b41d173270bda413af230f4425f Reviewed-on: https://code.wireshark.org/review/26214 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-02-09Generalize wtap_pkthdr into a structure for packet and non-packet records.Guy Harris1-8/+8
Separate the stuff that any record could have from the stuff that only particular record types have; put the latter into a union, and put all that into a wtap_rec structure. Add some record-type checks as necessary. Change-Id: Id6b3486858f826fce4b096c59231f463e44bfaa2 Reviewed-on: https://code.wireshark.org/review/25696 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-02-08replace SPDX identifier GPL-2.0+ with GPL-2.0-or-later.Dario Lombardo1-1/+1
The first is deprecated, as per https://spdx.org/licenses/. Change-Id: I8e21e1d32d09b8b94b93a2dc9fbdde5ffeba6bed Reviewed-on: https://code.wireshark.org/review/25661 Petri-Dish: Anders Broman <a.broman58@gmail.com> Petri-Dish: Dario Lombardo <lomato@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-01-11Use an enum for plugin types.Gerald Combs1-14/+2
Make plugins.c the source of truth for plugin names. Where plugins reside and what they do are two different things, so split the plugin directory and description into two separate elements. CMake creates portable[1] builds on Windows and macOS. That is, the build-time directory layout is the same as the installation directory layout. Adjust various plugin paths macOS accordingly. [1] You have to run osx-app.sh on macOS to prepare the application bundle, but the goal is to create a directory/bundle that can be moved or copied to a different system and run in the new location. Change-Id: Icf9d02e61918fdf1404468baf52542910edf2743 Reviewed-on: https://code.wireshark.org/review/25166 Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Gerald Combs <gerald@wireshark.org>
2018-01-03[glib-compat] Include <wsutil/glib-compat.h>Anders1-0/+1
Change-Id: Id505f1dc8dbbeb241162156fc3ef557599a251fb Reviewed-on: https://code.wireshark.org/review/25123 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-12-24Fix build and thread runtime compat with older GLibPeter Wu1-0/+14
CentOS 6 ships with glib 2.28.8 which do not support g_ptr_array_new_full (make-taps/make-dissectors) and need to link with wsutil for glib-compat. g_thread_new was only introduced with GLib 2.32 (not 2.31), so adjust the check accordingly. Abort in case thread creation fails (as documented). Properly initialize threads or it will abort on runtime (this also requires linking epan with gthreads in CMake, autotools already includes it with GLIB_LIBS). Change-Id: Ie81d6df7b3b26aaa4eb25e23719a220755e2c13c Reviewed-on: https://code.wireshark.org/review/24978 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Reviewed-by: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-12-14Add new plugin type for libwiresharkJoão Valverde1-2/+67
Allow epan itself to be extended by plugins. Adds the following new plugin interfaces: void plugin_epan_init() void plugin_epan_dissect_init(epan_dissect_t *) void plugin_epan_dissect_cleanup(epan_dissect_t *) void plugin_epan_cleanup() void plugin_epan_register_all_protocols(register_cb, gointer) [OPTIONAL] void plugin_epan_register_all_handoffs(register_cb, gointer) [OPTIONAL] Any one of these can be an empty function but the first four must be present. The motivation for the change is a better way to implement a language binding other than registering a fake protocol and stuffing everything into a single dissector call (and maybe require an extra packet_info field) but I expect there would be other interesting use cases. Change-Id: I215d50750ac7561fe25fdcdcfbc6a3f351984785 Reviewed-on: https://code.wireshark.org/review/24813 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde <j@v6e.pt>
2017-12-14Refactor plugin registration and loadingJoão Valverde1-17/+14
Put different types of plugins (libwiretap, libwireshark) in different subdirectories, give libwiretap and libwireshark init routines that load the plugins, and have them scan the appropriate subdirectories so that we don't even *try* to, for example, load libwireshark plugins in programs that only use libwiretap. Compiled plugins are stored in subfolders of the plugin folders, with the subfolder name being the Wireshark minor version number (X.Y). There is another hierarchical level for each Wireshark library (libwireshark, libwscodecs and libwiretap). The folder names are respectively plugins/X.Y/{epan,codecs,wiretap}. Currently we only distribute "epan" (libwireshark) plugins. Change-Id: I3438787a6f45820d64ba4ca91cbe3c8864708acb Reviewed-on: https://code.wireshark.org/review/23983 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde <j@v6e.pt>
2017-12-08Hand the packet provider functions to epan_new().Guy Harris1-10/+20
Have separate packet_provider_data structures and packet_provider_funcs structures; the latter holds a table of functions that libwireshark can call for information about packets, the latter holds the data that those functions use. This means we no longer need to expose the structure of an epan_t outside epan/epan.c; get rid of epan/epan-int.h. Change-Id: I381b88993aa19e55720ce02c42ad33738e3f51f4 Reviewed-on: https://code.wireshark.org/review/24732 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-12-08Move the frame_set stuff back into the capture_file structure.Guy Harris1-6/+8
libwireshark now expects an epan_t to be created with a pointer to a "packet provider" structure; that structure is opaque within libwireshark, and a pointer to it is passed to the callbacks that provide interface names, interface, descriptions, user comments, and packet time stamps, and that set user comments. The code that calls epan_new() is expected to provide those callbacks, and to define the structure, which can be used by the providers. If none of the callbacks need that extra information, the "packet provider" structure can be null. Have a "file" packet provider for all the programs that provide packets from a file. Change-Id: I4b5709a3dd7b098ebd7d2a7d95bcdd7b5903c1a0 Reviewed-on: https://code.wireshark.org/review/24731 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-12-04Move the parts of a capture_file used by libwireshark to a new structure.Guy Harris1-4/+4
Embed one of those structures in a capture_file, and have a struct epan_session point to that structure rather than to a capture_file. Pass that structure to the routines that fetch data that libwireshark uses when dissecting. That separates the stuff that libwireshark expects from the stuff that it doesn't look at. Change-Id: Ia3cd28efb9622476437a2ce32204597fae720877 Reviewed-on: https://code.wireshark.org/review/24692 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-12-01Get rid of some void pointers.Gerald Combs1-5/+5
Explictly struct _capture_file * in epan_session and its callbacks. Change-Id: I63703015c661a08f3350a7448a7bcdaf98f119dc Reviewed-on: https://code.wireshark.org/review/24675 Reviewed-by: Gerald Combs <gerald@wireshark.org> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-11-13Remove circuit APIMichael Mann1-13/+0
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-09-26Rename "ws_version_info.h", also .cJoão Valverde1-1/+1
It's not installed so like most other files it doesn't need or benefit from the prefix. Change-Id: I01517e06f12b3101fee21b68cba3bc6842bbef5c Reviewed-on: https://code.wireshark.org/review/23751 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: João Valverde <j@v6e.pt>
2017-09-03Add function to return version number at run-timeJoão Valverde1-0/+7
For use by plugins using libwireshark to check compatibility. Change-Id: I66a9d41644da7efce01cbed30d2a1f76fbc3754d Reviewed-on: https://code.wireshark.org/review/23378 Petri-Dish: João Valverde <j@v6e.pt> Reviewed-by: João Valverde <j@v6e.pt>
2017-05-09Don't have epan_dissect_init() return anything.Michael Mann1-4/+3
It manipulates the epan_dissect_t structure passed into it and then returns that. Callers can (and have been) just using the passed in epan_dissect_t structure anyway. Change-Id: Ia19d360a7347ff473654eeb553756f59a38f95bd Reviewed-on: https://code.wireshark.org/review/21570 Petri-Dish: Michael Mann <mmann78@netscape.net> Reviewed-by: Jaap Keuter <jaap.keuter@xs4all.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-04-19Add libxml2 as optional dependencyAhmad Fatoum1-0/+20
This can be used by dissectors that need to parse out-of-band configuration. Change-Id: I13c0a2f408fb5c21bad7ab3d7971e0fa8ed7d783 Reviewed-on: https://code.wireshark.org/review/20912 Reviewed-by: Roland Knall <rknall@gmail.com>
2017-04-12Prime the epan_dissect_t with postdissector wanted fields if necessary.Guy Harris1-0/+11
This makes sure that postdissectors that indicate that they need certain fields in the first pass will get them. While we're at it: Fix the field-fetching code in TRANSUM not to assume it got any instances of the field being fetched. Rename process_packet_first_pass() in sharkd to process_packet(), as it's the only routine in sharkd that processes packets. Rename process_packet() in tshark and tfshark to process_packet_single_pass(), as it's what's used if we're only doing one-pass analysis. Clean up comments and whitespace. Change-Id: I3769af952c66f5ca4b68002ad6213858ab9cab9b Reviewed-on: https://code.wireshark.org/review/21063 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-12Rename routines to clarify what they do.Guy Harris1-3/+3
XXX_prime_with_YYY makes it a bit clearer than does XXX_prime_YYY that we're not priming YYY, we're priming XXX *using* YYY. Change-Id: I1686b8b5469bc0f0bd6db8551fb6301776a1b133 Reviewed-on: https://code.wireshark.org/review/21031 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-09Pull all the "load settings" calls into a epan_load_settings() routine.Guy Harris1-0/+22
That way, nothing using libwireshark needs to know what settings need to be loaded, they just call epan_load_settings(). Change-Id: I9390e259e286fc4f5acaeaac2767e4c3c4b656af Reviewed-on: https://code.wireshark.org/review/20983 Petri-Dish: Guy Harris <guy@alum.mit.edu> Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-09Pull the code to save enabled/disabled lists into libwireshark.Guy Harris1-1/+1
It's identical in the GTK+ and Qt UIs, and it should just be done in libwireshark. Rename some routines to just speak of enabled_and_disabled_lists, so we don't have to say enabled_and_disabled_protos_and_heuristic_dissectors or something such as that. Clean up indentation. Change-Id: Ief2e612d9e1b60d8d0123b6bd3409dce5faf6495 Reviewed-on: https://code.wireshark.org/review/20970 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-04-08Clean up handling of enabled/disabled protocols/heuristic dissectors.Guy Harris1-2/+2
Add a "report a warning message" routine to the "report_err" code in libwsutil, and rename files and routines appropriately, as they don't only handle errors any more. Have a routine read_enabled_and_disabled_protos() that reads all the files that enable or disable protocols or heuristic dissectors, enables and disables them based on the contents of those files, and reports errors itself (as warnings) using the new "report a warning message" routine. Fix that error reporting to report separately on the disabled protocols, enabled protocols, and heuristic dissectors files. Have a routine to set up the enabled and disabled protocols and heuristic dissectors from the command-line arguments, so it's done the same way in all programs. If we try to enable or disable an unknown heuristic dissector via a command-line argument, report an error. Update a bunch of comments. Update the name of disabled_protos_cleanup(), as it cleans up information for disabled *and* enabled protocols and for heuristic dissectors. Support the command-line flags to enable and disable protocols and heuristic dissectors in tfshark. Change-Id: I9b8bd29947cccdf6dc34a0540b5509ef941391df Reviewed-on: https://code.wireshark.org/review/20966 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-03-06Switch conversations to use wmem_tree_t instead of (sorted) GSList.Michael Mann1-1/+0
Change-Id: Ifaf25ca5a7974f1d398ceebbb4c6733d4d3e001a Reviewed-on: https://code.wireshark.org/review/20006 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-02-24dtd: free memory on shutdown.Dario Lombardo1-0/+2
Change-Id: I502e505730b9310066563bfd9c8df9fceddd0301 Reviewed-on: https://code.wireshark.org/review/20229 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Dario Lombardo <lomato@gmail.com>
2017-02-13Make Libgcrypt a mandatory dependencyPeter Wu1-16/+5
Removed all guards for HAVE_LIBGCRYPT, change autotools and CMake to error out if it is not available. Update release notes, developer documentation and README with the new status. Clarify relation with GnuTLS in macosx-setup.sh. Install Libgcrypt via brew script. Motivation for this change is that many dissectors depend on Libgcrypt and having it optional increases the maintenance burden (there have been several compile issues in the past due to the optional status). Furthermore, wsutil has crypto code that can be replaced by Libgcrypt. Change-Id: Idf0021b8c4cd5db70b8766f7dcc2a8b3acbf042f Link: https://www.wireshark.org/lists/wireshark-dev/201702/msg00011.html Reviewed-on: https://code.wireshark.org/review/20030 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Peter Wu <peter@lekensteyn.nl>
2017-02-10Convert conversation hash tables to use wmem.Michael Mann1-7/+2
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-09Make the capture file's interface description filterableJim Young1-0/+9
This patch introduces the frame.interface_description field. While testing this new functionality it became obvious that we have a non-optimal interaction between the existing cfile.c's cap_file_get_interface_name(), the recently added frame.interface_name field and this new frame.interface_description field. The string returned from cap_file_get_interface_name() may in fact come from one of three different sources: the idb's interface name (if it exists) or the idb's interface description (if that exists) or a default text of "unknown". The string ultimately becomes the rame.interface_name whether or not the idb had an interface name option to begin with. This behavior does not allow one to test for the simple presence of frame.interface_name. The new peer function cap_file_get_interface_description() added by this patch returns NULL instead of "unknown" if the idb does not have an interface description. Should cap_file_get_interface_name() be similarly modified to return NULL if the idb does not have an interface name? Bug: 9781 Change-Id: Ie479f373c5080c004dd22bd88919838feca71e95 Reviewed-on: https://code.wireshark.org/review/19861 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-02-08Switch stat tap to use wmem_tree_t instead of (sorted) GSList.Michael Mann1-1/+0
Change-Id: I172167eb20793113562b69d1e0e93a4882200404 Reviewed-on: https://code.wireshark.org/review/20019 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-08Switch follow (tables) to use wmem_tree_t instead of (sorted) GSList.Michael Mann1-1/+0
Change-Id: Iabf354d2533ae429c002b115c5de33b592019997 Reviewed-on: https://code.wireshark.org/review/20018 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-02-08Switch rtd and srt tables to use wmem_tree_t instead of (sorted) GSList.Michael Mann1-1/+0
Change-Id: I54fec10801eb8f359414f34bf705767964c9725e Reviewed-on: https://code.wireshark.org/review/20017 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-02-08Switch export objects to use wmem_tree_t instead of (sorted) GSList.Michael Mann1-1/+0
Change-Id: Iaaa7b44954337c7857dbb541b727924e2de57c9d Reviewed-on: https://code.wireshark.org/review/20016 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-02-07stats_tree: add cleanup function.Dario Lombardo1-0/+2
Change-Id: Iefd264bdd79af172c245c3a30119999cca9d56c0 Reviewed-on: https://code.wireshark.org/review/19976 Reviewed-by: Michael Mann <mmann78@netscape.net> Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Dario Lombardo <lomato@gmail.com>
2017-02-04tap: add cleanup routine.Dario Lombardo1-0/+1
Change-Id: I460b053880ed43a7377b7696531bbaeb0fd0d68b Reviewed-on: https://code.wireshark.org/review/19764 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-02-04srt_table: add cleanup function.Dario Lombardo1-0/+2
Change-Id: I8d1e9d587f7d47a9064d7b2e0c89f31dc41854ea Reviewed-on: https://code.wireshark.org/review/19946 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-01-29Register reassembly tablesMichael Mann1-0/+1
Register all reassembly tables with a central unit, allowing the central unit to have the callback that initializes and destroys the reassembly tables, rather than have dissectors do it individually. Change-Id: Ic92619c06fb5ba6f1c3012f613cae14982e101d4 Reviewed-on: https://code.wireshark.org/review/19834 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-01-21reassemble: add cleanup routine.Dario Lombardo1-0/+2
Change-Id: I948d342a29aacc2212076359e5b073113c50c5de Reviewed-on: https://code.wireshark.org/review/19697 Reviewed-by: Michael Mann <mmann78@netscape.net>