aboutsummaryrefslogtreecommitdiffstats
path: root/epan/tap.c
AgeCommit message (Collapse)AuthorFilesLines
2019-01-03epan: remove redundant casts.Dario Lombardo1-1/+1
Found by clang-tidy. Change-Id: Iaf6cf84c33b03ddfcd39a333b49f4987002afa56 Reviewed-on: https://code.wireshark.org/review/31338 Petri-Dish: Dario Lombardo <lomato@gmail.com> Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-01-01Add a "failed" return for tap packet routines.Guy Harris1-4/+44
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-12-29Small cleanups.Guy Harris1-3/+4
Get rid of an extra blank line in a comment. Change another comment to refer to "error packets", as we do elsewhere. Fix indentation. Change-Id: I4d81b8856ea876f20914352f962b1df0e115404c Reviewed-on: https://code.wireshark.org/review/31241 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-10-21tap-follow: fix memory leakVasil Velichkov1-2/+9
Register the follow_free as a finish callback. Call the tap's finish callback in free_tap_listener which is called from both remove_tap_listener and tap_cleanup. Describe the finish callback in README.tapping Change-Id: Ie79ce8f39b0ca6d84810d2e3307dcff38b18d3ac Reviewed-on: https://code.wireshark.org/review/29309 Reviewed-by: Peter Wu <peter@lekensteyn.nl> Petri-Dish: Peter Wu <peter@lekensteyn.nl> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2018-09-19Try to discourage the use of APIs via counting.Gerald Combs1-3/+2
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-08-26Remove weird use of volatile qualifierJoão Valverde1-21/+20
Change-Id: I47232912aea16f27ebdbd61940526dbcec5a387c Reviewed-on: https://code.wireshark.org/review/29285 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot Reviewed-by: João Valverde <j@v6e.pt>
2018-07-25Don't remove a tap listener we didn't find in the first place.Guy Harris1-2/+4
If remove_tap_listener() doesn't find a tap listener with the specified data, print a warning message and skip the "remove the tap listener" steps. This means that the internal free_tap_listener() won't be called with a null listener; remove the now-unnecessary check (if anybody *does* call it with a null pointer, that's a bug). This prevents the crash in bug 15006, but that now produces a warning message; it doesn't fix the underlying bug, it just changes the symptom. Change-Id: Ia9a2bfa3d57b86eac0d6e0b0bad03a7b81e254e3 Ping-Bug: 15006 Reviewed-on: https://code.wireshark.org/review/28853 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-07-21Add a tap "finish" callback, called when a listener is removed.Guy Harris1-1/+6
Change-Id: Ic6c23dbd39d1adf8f730f1c866e409f731947475 Reviewed-on: https://code.wireshark.org/review/28786 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-05-16Eliminate some unneeded header checks.Guy Harris1-3/+1
sys/stat.h and sys/types.h date back to V7 UNIX, so they should be present on all UN*Xes, and we're assuming they're available on Windows, so, unless and until we ever support platforms that are neither UN*Xes nor Windows, we don't need to check for them. Remove the CMake checks for them, remove the HAVE_ values from cmakeconfig.h.in, and remove all tests for the HAVE_ values. Change-Id: I90bb2aab37958553673b03b52f4931d3b304b9d0 Reviewed-on: https://code.wireshark.org/review/27603 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-04-16glib: Get rid of GLIB_CHECK_VERSION as we now require 2.32.0Anders1-1/+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-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-60/+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-10-15Remove superfluous null-checks before strdup/freeAhmad Fatoum1-3/+1
NULL checks were removed for following free functions: - g_free "If mem is NULL it simply returns" https://developer.gnome.org/glib/stable/glib-Memory-Allocation.html#g-free - g_slist_free(_full)? "NULL is considered to be the empty list" https://developer.gnome.org/glib/stable/glib-Singly-Linked-Lists.html - g_strfreev "If str_array is NULL, this function simply returns." https://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html#g-strfreev - g_slice_free "If mem is NULL, this macro does nothing." https://developer.gnome.org/glib/stable/glib-Memory-Slices.html#g-slice-free - g_match_info_free "not NULL... otherwise does nothing" https://developer.gnome.org/glib/stable/glib-Perl-compatible-regular-expressions.html#g-match-info-free - dfilter_free defined in Wireshark code. Returns early when passed NULL epan/dfilter/dfilter.c They were also removed around calls to g_strdup where applicable: - g_strdup "If str is NULL it returns NULL." https://developer.gnome.org/glib/stable/glib-String-Utility-Functions.html#g-strdup Change-Id: Ie80c2db89bef531edc3aed7b7c9f654e1d654d04 Reviewed-on: https://code.wireshark.org/review/23406 Petri-Dish: Roland Knall <rknall@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: João Valverde <j@v6e.pt>
2017-09-26Move some DIAG_OFFs to make code less uglyJoão Valverde1-2/+2
Change-Id: I0f343ab69a6592a466e12e5d258f0878b9c32c25 Reviewed-on: https://code.wireshark.org/review/23752 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-26plugins: Use g_slist_prepend() instead.João Valverde1-1/+1
Change-Id: If145137bfd44025ccab762b67960072777efd302 Reviewed-on: https://code.wireshark.org/review/23750 Reviewed-by: João Valverde <j@v6e.pt>
2017-09-05Fix unitialized variable warnings that popped up with -OgJoão Valverde1-1/+1
Using GCC version 7.1.1. Change-Id: I7447a48fc97efb1eb15a016a29165f69d37f40a6 Reviewed-on: https://code.wireshark.org/review/23399 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-04-12Rename routines to clarify what they do.Guy Harris1-1/+1
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-03-02Use glib-compatAndersBroman1-5/+1
Change-Id: I510af18d433c4db360243dda72260e59eb84355f Reviewed-on: https://code.wireshark.org/review/20336 Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-02-16g_slist_free_full requires glib 2.28AndersBroman1-0/+5
Change-Id: I4f9ce7f65da0349b962f6be317635c5acb2daf73 Reviewed-on: https://code.wireshark.org/review/20148 Petri-Dish: Anders Broman <a.broman58@gmail.com> Reviewed-by: Dario Lombardo <lomato@gmail.com> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-02-12Fix compilation without plugins.Jakub Zawadzki1-6/+9
proto.c:667:6: error: ‘dissector_plugins’ undeclared (first use in this function) tap.c:773:20: error: ‘tap_plugins’ undeclared (first use in this function) Change-Id: I8feaec4219dc97202bdb79d72399c5fd1d383e27 Reviewed-on: https://code.wireshark.org/review/20081 Petri-Dish: Jakub Zawadzki <darkjames-ws@darkjames.pl> Reviewed-by: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Jakub Zawadzki <darkjames-ws@darkjames.pl>
2017-02-08tap: destroy list on cleanup.Dario Lombardo1-0/+8
Change-Id: I24ab3d07721d338edf910b9fa8864306cbfe9dfa Reviewed-on: https://code.wireshark.org/review/20021 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-02-04tap: add cleanup routine.Dario Lombardo1-0/+21
Change-Id: I460b053880ed43a7377b7696531bbaeb0fd0d68b Reviewed-on: https://code.wireshark.org/review/19764 Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-09-28When regestering taps, only loop trough the list of taps once when addingAndersBroman1-7/+11
new taps. Change-Id: Ida5ad2375c95664ee1b911d265cb69672db2be2d Reviewed-on: https://code.wireshark.org/review/17964 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2016-07-26Fix some of the checkAPIs.pl warnings for g_warning.Michael Mann1-1/+2
1. Create ws_g_warning for legitimate uses of g_warning 2. Use proto_tree_add_debug_text 3. Comment some out Change-Id: Ida044bf40286b955fdd529c4f9907c8e09b3d7c5 Reviewed-on: https://code.wireshark.org/review/16678 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>
2016-07-05tap: check return value (CID 1355643).Dario Lombardo1-1/+3
Change-Id: I03b141c7aeaa1bc06dc126c5cc8f0d001a57c116 Reviewed-on: https://code.wireshark.org/review/16302 Petri-Dish: Dario Lombardo <lomato@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-06-19Revert "tap: change glib functions to wmem."Pascal Quantin1-23/+25
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-25/+23
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>
2016-04-04Include ws_diag_control.h in config.hJoão Valverde1-3/+1
Change-Id: Ia394071710ecda3b0e6686a51fbca45a8ff20317 Reviewed-on: https://code.wireshark.org/review/14749 Petri-Dish: João Valverde <j@v6e.pt> Petri-Dish: Gerald Combs <gerald@wireshark.org> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: João Valverde <j@v6e.pt>
2016-01-25Move the proto data stuff out of frame_data.[ch].Guy Harris1-0/+4
It's not tied to the frame_data structure any more, so it belongs by itself. Clean up some #includes while we're at it; in particular, frame_data.h doesn't use anything related to tvbuffs, so don't have it gratuitiously include tvbuff.h. Change-Id: Ic32922d4a3840bac47007c5d4c546b8842245e0c Reviewed-on: https://code.wireshark.org/review/13518 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-01-12Fix warnings for epan/tap.c [-Wcast-qual]João Valverde1-40/+51
tap_listener queue is declared volatile. Assignment with cast to non-volatile generates compiler warnings. Change-Id: I3a2954f0d6ecfd7862ee0d9c1820cf737128a3c5 Reviewed-on: https://code.wireshark.org/review/13076 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Dario Lombardo <lomato@gmail.com> Reviewed-by: João Valverde <j@v6e.pt>
2016-01-08Fix warning for epan/tap.c [-Wpedantic]João Valverde1-0/+3
Disable ISO C compatibility warning when loading an external symbol. Change-Id: I85e0be1664a4f77983636a4bab559af2f79321aa Reviewed-on: https://code.wireshark.org/review/13132 Petri-Dish: João Valverde <j@v6e.pt> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Dario Lombardo <lomato@gmail.com>
2015-08-19Recompile dfilter for all tap listeners when fields changedStig Bjørlykke1-0/+30
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-06-27Avoid some Visual Studio Code Anaylzer warningsMartin Mathieson1-1/+1
Change-Id: I320386b02bea09658636a9281ee3cbba34a5e4cd Reviewed-on: https://code.wireshark.org/review/9188 Petri-Dish: Martin Mathieson <martin.r.mathieson@googlemail.com> Reviewed-by: Martin Kaiser <wireshark@kaiser.cx> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-05-16Have per-queued-packet flags, including "is a packet in error".Guy Harris1-2/+31
The contents of the packet_info structure change during the dissection process, so you can't rely on its contents when running tap listeners. Bug: 11184 Change-Id: I52fc45774add56ee2bcb5faef2af7c731b4304fd Reviewed-on: https://code.wireshark.org/review/8486 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2015-05-16tap: Add ability to reject/ignore "error" packets in tapEvan Huus1-8/+12
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>
2015-01-18Clean up ftype-conversion and dfilter error message string handling.Guy Harris1-4/+8
Have dfilter_compile() take an additional gchar ** argument, pointing to a gchar * item that, on error, gets set to point to a g_malloc()ed error string. That removes one bit of global state from the display filter parser, and doesn't impose a fixed limit on the error message strings. Have fvalue_from_string() and fvalue_from_unparsed() take a gchar ** argument, pointer to a gchar * item, rather than an error-reporting function, and set the gchar * item to point to a g_malloc()ed error string on an error. Allow either gchar ** argument to be null; if the argument is null, no error message is allocated or provided. Change-Id: Ibd36b8aaa9bf4234aa6efa1e7fb95f7037493b4c Reviewed-on: https://code.wireshark.org/review/6608 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2014-10-10Add editor modelines; Adjust whitespace as needed.Bill Meier1-1/+14
Change-Id: I3dc57f4c2ca57585103e3b71503ac4c332903e50 Reviewed-on: https://code.wireshark.org/review/4594 Reviewed-by: Bill Meier <wmeier@newsguy.com>
2014-04-14Increase tap limit to 5000Michal Labedzki1-1/+1
This will fix "Warn Too many taps queued" information, while there is more then 100 PDUs to be exported. For example while exporting Logcat from TCP/IP it is quite often to have PDU with multiple Logcat PDUs around 1000. Change-Id: I24d0619e57ae494c836c19c8a67df44503c54318 Reviewed-on: https://code.wireshark.org/review/1096 Reviewed-by: Alexis La Goutte <alexis.lagoutte@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/+14
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>
2013-12-02Move most of the plugin code from epan to wsutil and remove allGuy Harris1-2/+71
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-03-20 From beroset:Bill Meier1-2/+2
remove C++ incompatibilities https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=8416 attachment #10397 svn path=/trunk/; revision=48438
2012-09-20We always HAVE_CONFIG_H so don't bother checking whether we have it or not.Jeff Morriss1-3/+1
svn path=/trunk/; revision=45016
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-3/+14
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-03-31(Trivial) Fix some typos; do some whitespace cleanup & rewording of comments.Bill Meier1-26/+26
svn path=/trunk/; revision=36417
2010-08-03(Trivial) Fix a typo.Bill Meier1-1/+1
svn path=/trunk/; revision=33700
2009-10-02Prime interesting fields when selecting a package, so Lua's ProtoFieldStig Bjørlykke1-9/+20
can extract the field value correctly. This fixes bug 4058. svn path=/trunk/; revision=30252