aboutsummaryrefslogtreecommitdiffstats
path: root/epan/tap.h
AgeCommit message (Collapse)AuthorFilesLines
2019-01-01Add a "failed" return for tap packet routines.Guy Harris1-1/+10
This allows taps that can fail to report an error and fail; a failed tap's packet routine won't be called again, so they don't have to keep track of whether they've failed themselves. We make the return value from the packet routine an enum. Don't have a separate type for the per-packet routine for "follow" taps; they're expected to act like tap packet routines, so just use the type for tap packet routines. One tap packet routine returned -1; that's not a valid return value, and wasn't one before this change (the return value was a boolean), so presume the intent was "don't redraw". Another tap routine's early return, without doing any work, returned TRUE; this is presumably an error (no work done, no need to redraw), so presumably it should be "don't redraw". Clean up some white space while we're at it. Change-Id: Ia7d2b717b2cace4b13c2b886e699aa4d79cc82c8 Reviewed-on: https://code.wireshark.org/review/31283 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-12-29Fix typo: aplications to applicationsJim Young1-1/+1
Change-Id: I14948f563a7638b5bd28f4450ffe1bd98a491e6a Reviewed-on: https://code.wireshark.org/review/31243 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-10-03epan: add missing comment for function parameter on register_tap_listenerNick Calus1-0/+2
Added parameter documentation that was missing for parameter tap_finish on function register_tap_listener in epan/tap.h Bug: 15162 Change-Id: I2b9f2a8816c049647128b317433b7dc21cc44f91 Reviewed-on: https://code.wireshark.org/review/29995 Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Dario Lombardo <lomato@gmail.com>
2018-07-21Add a tap "finish" callback, called when a listener is removed.Guy Harris1-1/+3
Change-Id: Ic6c23dbd39d1adf8f730f1c866e409f731947475 Reviewed-on: https://code.wireshark.org/review/28786 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-03-27tap: fix remaining potential memleaks with register_tap_listenerPeter Wu1-1/+1
Additionally, add an attribute to the tap function to prevent future callers from leaking this memory. Change-Id: Ief6af2bbc74d19153628f09d7b273e85cb2284ab Reviewed-on: https://code.wireshark.org/review/26642 Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
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-12-14Refactor plugin registration and loadingJoão Valverde1-4/+10
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-08Have the frame_tvbuff.c routines not use the global cfile.Guy Harris1-0/+1
Have the routines that create them take a pointer to a struct packet_provider_data, store that in the tvbuff data, and use it to get the wtap from which packets are being read. While we're at it, don't include globals.h in any header files, and include it in source files iff the source file actually uses cfile. Add whatever includes that requires. Change-Id: I9f1ee391f951dc427ff62c80f67aa4877a37c229 Reviewed-on: https://code.wireshark.org/review/24733 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-12-04Put the structure of a capture_file back in cfile.h.Guy Harris1-1/+0
The split isn't necessary now that epan no longer uses the capture_file structure. Change-Id: Ia232712a2fb5db511865805518e8d03509b2167f Reviewed-on: https://code.wireshark.org/review/24693 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-12-03Use cfile.h to define the capture_file type.Guy Harris1-0/+1
Have cfile-int.h declare the structure, and use it in files that directly access the structure. Have cfile.h just incompletely declare the structure and include it rather than explicitly declaring it in source files or other header files. Never directly refer to struct _capture_file except when typedeffing capture_file. Add #includes as necessary, now that cfile.h doesn't drag in a ton of Change-Id: I7931c8039d75ff7c980b0f2a6e221f20e602a556 Reviewed-on: https://code.wireshark.org/review/24686 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2017-02-04tap: add cleanup routine.Dario Lombardo1-0/+4
Change-Id: I460b053880ed43a7377b7696531bbaeb0fd0d68b Reviewed-on: https://code.wireshark.org/review/19764 Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-06-19Revert "tap: change glib functions to wmem."Pascal Quantin1-4/+4
This reverts commit 2e9f3c5d366eaa7139fc877b5301392166b3f985. It breaks the registration of codec, dissector and libwiretap plugins. Change-Id: I4ef91dd192f765adf87ea9fe9f3693e25dbd24de Reviewed-on: https://code.wireshark.org/review/16012 Petri-Dish: Pascal Quantin <pascal.quantin@gmail.com> Reviewed-by: Pascal Quantin <pascal.quantin@gmail.com>
2016-06-17tap: change glib functions to wmem.Dario Lombardo1-4/+4
Change-Id: I878ae6b121a669f9b7f4e1e57bc079f0cb44c0bf Reviewed-on: https://code.wireshark.org/review/15270 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Evan Huus <eapache@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-08-19Recompile dfilter for all tap listeners when fields changedStig Bjørlykke1-0/+3
When fields have changed the compiled display filter may be invalid or need a recompile to be valid. Filters which are not valid after a recompile is set to a filter matching no packets (frame.number == 0) to indicate that this does no longer match anything. We should probably have a better filter matching no packet for this purpose. Change-Id: Id27efa9f46e77e20df50d7366f26d5cada186f93 Reviewed-on: https://code.wireshark.org/review/10123 Petri-Dish: Stig Bjørlykke <stig@bjorlykke.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2015-08-12Align commentsAndersBroman1-5/+5
Change-Id: Iab59ba51700b018337552018c76e30dcbd41f3f6 Reviewed-on: https://code.wireshark.org/review/9993 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-05-16tap: Add ability to reject/ignore "error" packets in tapEvan Huus1-1/+2
ICMP (and a few other protocols) can carry "error packets" as payloads in certain cases. In the same way that we don't (by default) call TCP reassembly code on TCP packets we know are out-of-order, we also shouldn't call tap code on frames carried in ICMP error packets. Bug: 11184 Change-Id: Ie83dbb505c8fdc15c5554705488c16fa0274a06a Reviewed-on: https://code.wireshark.org/review/8446 Petri-Dish: Evan Huus <eapache@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Evan Huus <eapache@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-02-25Fix function prototypes.Evan Huus1-1/+1
Functions with no parameters must be written func(void). Fixes (some) of the buildbots. Change-Id: I1a6e5c0553e032e99419fe67eb4b573bbdfe7fe6 Reviewed-on: https://code.wireshark.org/review/388 Reviewed-by: Evan Huus <eapache@gmail.com>
2014-02-25Adds some Lua helper functions: some commonly used functions, and to help ↵Hadriel Kaplan1-0/+3
troubleshooting Lua scripts There are some common things people need to do, such as convert to/from hex or get the raw binary string in a ByteArray/Tvb/TvbRange. These have been added, as well as some tests for them in the testsuites. Also, functions have been added to allow a script to get all the available tap types and filter fields, since they are not exactly what one can see in the Wireshark gui. Change-Id: I92e5e4eae713bb90d79b0c024eaa4e55b99cc96b Reviewed-on: https://code.wireshark.org/review/249 Reviewed-by: Alexis La Goutte <alexis.lagoutte@gmail.com>
2014-01-08Make it possible to use have_tap_listener() in a pluginPascal Quantin1-1/+1
svn path=/trunk/; revision=54663
2013-12-10Remove config.h includes from proto.h and tap.h.Gerald Combs1-7/+5
svn path=/trunk/; revision=53913
2013-12-10Fix epan building with undefined HAVE_PLUGINSJakub Zawadzki1-0/+4
+ guard prototypes with HAVE_PLUGINS in .h files to get errors before linking. svn path=/trunk/; revision=53909
2013-12-02Move most of the plugin code from epan to wsutil and remove allGuy Harris1-0/+14
knowledge of particular types of plugins. Instead, let particular types of plugins register with the common plugin code, giving a name and a routine to recognize that type of plugin. In particular applications, only process the relevant plugin types. Add a Makefile.common to the codecs directory. svn path=/trunk/; revision=53710
2013-05-03Add doxygen comments.Anders Broman1-3/+175
svn path=/trunk/; revision=49146
2013-03-01Export libwireshark symbols using WS_DLL_PUBLIC defineBalint Reczey1-13/+14
Also remove old WS_VAR_IMPORT define and related Makefile magic everywhere in the project. svn path=/trunk/; revision=47992
2012-10-18Move ui-independent object export routines to the common ui directory.Gerald Combs1-3/+11
Implement DICOM, HTTP, and SMB object exports. Rename the GTK+ export files. C++-ize epan/tap.h. Fix an apparent memory leak in eo_save_all_clicked_cb. The Qt dialog has an indeterminate progress bar. I tried adding something similar to the GTK+ dialog but event processing led down a rabbit hole. svn path=/trunk/; revision=45647
2012-06-28Update Free Software Foundation address.Jakub Zawadzki1-1/+1
(COPYING will be updated in next commit) svn path=/trunk/; revision=43536
2011-05-12Fix the test.sh failures based on Guy's suggestion in ↵Jeff Morriss1-4/+7
https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=5445#c15 : Add a new tap flag to indicate that a tap listener is just a "dissector helper", that is, a tap which is used by a dissector to help it do its dissection but does not, itself, require dissection. Use this new flag in the dissectors which register taps. Remove the (now-unused) have_tap_listeners() function. svn path=/trunk/; revision=37069
2011-04-05Add ICMP tap support, and add a tshark tap to measure such things as:Chris Maynard1-2/+3
* Number of ICMP echo requests, replies, lost replies and percent loss. * Min, Max, Average SRT (Service Response Time), and standard deviation. (This is my first tap, so hopefully I didn't miss something, but we'll see ...) TODO: Add a Wireshark tap. svn path=/trunk/; revision=36480
2010-09-03Add doxygen coments.Anders Broman1-2/+2
svn path=/trunk/; revision=34053
2009-10-02Prime interesting fields when selecting a package, so Lua's ProtoFieldStig Bjørlykke1-0/+1
can extract the field value correctly. This fixes bug 4058. svn path=/trunk/; revision=30252
2009-08-21Sanitize epan includesKovarththanan Rajaratnam1-1/+1
svn path=/trunk/; revision=29502
2009-06-05Have tap listeners specify whether the "packet" routine requiresGuy Harris1-8/+10
a protocol tree; the column values. This includes stats-tree listeners. Have the routines to build the packet list, and to retap packets, honor those requirements. This means that cf_retap_packets() no longer needs an argument to specify whether to construct the column values or not, so get rid of that argument. This also means that there's no need for a tap to have a fake filter to ensure that the protocol tree will be built, so don't set up a fake "frame" filter. While we're at it, clean up some cases where "no filter" was represented as a null string rather than a null pointer. Have a routine to return an indication of the number of tap listeners with filters; use that rather than the global num_tap_filters. Clean up some indentation and some gboolean vs. gint items. svn path=/trunk/; revision=28645
2008-05-05Require GLib 2.4 or later.Guy Harris1-4/+0
That means that G_GINT64_MODIFIER will be defined, so don't check whether it's defined. We don't use the PRI[douxX]64 macros, as we use the GLib print routines and thus use G_GINT64_MODIFIER instead. Get rid of the checks for whether inttypes.h defines PRI[douxX]64; just check whether it exists at all. That means we don't set INTTYPES_H_DEFINES_FORMATS, so don't check for it. svn path=/trunk/; revision=25243
2008-02-17Added an option to Conversations and Endpoints to limit the list to matchStig Bjørlykke1-0/+1
the current display filter. Some Hosts -> Endpoints cleanup. svn path=/trunk/; revision=24368
2007-04-16Wireshark now requires support for 64-bit types so there's no need to #ifdefJeff Morriss1-0/+4
around them. Print 64-bit types using the PRI macros; add inttypes.h to tap.h (if necessary) to pick up those macros for all the taps. svn path=/trunk/; revision=21442
2007-03-06Introduce a new function called have_tap_listener(int tap_id) toStephen Fisher1-0/+1
tell if a specific tap id is currently listening for data. This complements the function have_tap_listeners(), which checks to see if any tap is currently listening. svn path=/trunk/; revision=20979
2007-02-19fetch_tapped_data() returns a const pointer, so declare the function as ↵Jeff Morriss1-1/+1
returning such svn path=/trunk/; revision=20861
2006-06-20Change ETH_VAR_IMPORT to WS_VAR_IMPORT. Try to fix a duplicate variableGerald Combs1-1/+1
definition in the Catapult DCT2000 code. svn path=/trunk/; revision=18524
2006-05-21name changeRonnie Sahlberg1-3/+3
svn path=/trunk/; revision=18197
2005-12-07new function fetch_tapped_data()Ronnie Sahlberg1-0/+1
This function can be called from a dissector to fetch (if any) tapped data from a tap. This can offer an alternative method of passing data between different dissectors much cleaner than the pinfo pollition and private_data design mistake. The SMB2 dissector uses this method to extract vital data such as Account_Name from the ntlmssp dissector (that is 3 leveld down from smb2) svn path=/trunk/; revision=16722
2005-08-19Move the APIs for registering and processing "-z" command-line argumentsGuy Harris1-5/+0
and "Statistics" menu items into "stat.h" and "stat.c", to separate them from the core tapping APIs. A tap could conceivably not register as a "-z" command-line argument or "Statistics" menu item, and a stat could conceivably not be implemented as a tap, and dissectors that implement tapping points don't need the UI-related stuff from "stat.h", they just want the tap-related stuff in <epan/tap.h>. svn path=/trunk/; revision=15427
2005-08-06Squelch more const warnings (and fix some memory leaks that found).Guy Harris1-1/+2
_U_-ify some unused arguments, rather than assigning them to themselves. Un-constify one variable that gets assigned a mallocated pointer. Clean up indentation. svn path=/trunk/; revision=15236
2005-08-05More char -> const char warning fixesJörg Mayer1-1/+1
svn path=/trunk/; revision=15218
2005-07-23More 'char*' -> 'const char*' changes to fix warnings.Jörg Mayer1-3/+3
svn path=/trunk/; revision=15015
2005-07-21More warining fixes: char -> const charJörg Mayer1-1/+1
svn path=/trunk/; revision=14975
2005-04-01Rename "register_ethereal_tap()" to "register_tap_listener_cmd_arg()" asGuy Harris1-0/+4
it's used to register a callback for a tap listener invoked if the specified command line argument is specified to the "-z" flag. Move it, along with routines to: look up a "-z" argument in the table constructed by "register_tap_listener_cmd_arg()" and either save the full argument to "-z" and the corresponding listener if it's found or return a failure indication if it isn't; list the available tap listeners; call the "init" routines for the tap listeners saved in the table above; and have Ethereal and Tethereal use those routines. svn path=/trunk/; revision=13993
2005-01-01As we've made the tap_specific_data field of a tap_packet_t structure aGuy Harris1-1/+1
const pointer (so that we don't get complaints when we make the tap-specific data argument to "tap_queue_packet()" a const pointer, allowing dissectors to hand const data to a tap without a complaint), we should make the tap per-packet function take a const pointer as an argument as well. Do so. In some taps, use _U_, or actually use the argument, rather than sticking in dummy "X = X" assignments to fake use of parameters. (This means that the tap functions in question no longer have the notion that they act on a particular static structure wired in.) svn path=/trunk/; revision=12910
2004-12-30Add a "get_addr_name()" routine that takes an "address *" and attemptsGuy Harris1-1/+1
to resolve it to a name. Fix up some const-pointer-to-non-const-pointer, and function-pointer-to-void-*, conversions. Fix some comments. svn path=/trunk/; revision=12863
2004-09-29Move the tap infrastructure to the epan directory.Guy Harris1-0/+54
svn path=/trunk/; revision=12128