aboutsummaryrefslogtreecommitdiffstats
path: root/epan/decode_as.c
AgeCommit message (Collapse)AuthorFilesLines
2019-06-13register_decode_as_next_proto: remove the "title" parameterMartin Kaiser1-1/+1
Remove the "title" parameter from the register_decode_as_next_proto() function. This parameter is no longer required since decode_as_t does not have a title any more. Change-Id: I300c755bd465453aa91703b53ce9adc954e38c00 Reviewed-on: https://code.wireshark.org/review/33579 Reviewed-by: Martin Kaiser <wireshark@kaiser.cx> Petri-Dish: Martin Kaiser <wireshark@kaiser.cx> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-06-11decode_as: remove the "title" member from decode_as_tMartin Kaiser1-2/+1
The title of a decode_as_t was used by the GTK UI. It's no longer required for Qt. Change-Id: Ibd9d4acbe9cad2c1af520340d04e550326a97ebe Reviewed-on: https://code.wireshark.org/review/33557 Petri-Dish: Martin Kaiser <wireshark@kaiser.cx> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2019-03-17Constification, to remove some compiler warnings.Guy Harris1-2/+2
Change-Id: I24f0bdc72109a6ef3d801dc28cb9b523ff4e5fe7 Reviewed-on: https://code.wireshark.org/review/32458 Petri-Dish: Guy Harris <guy@alum.mit.edu> Tested-by: Petri Dish Buildbot Reviewed-by: Guy Harris <guy@alum.mit.edu>
2019-03-15decode-as: Write the entries sorted to file.Anders Broman1-15/+38
If the list isn't sorted port ranges in preferences get may get "scrambled". Try SIP udp.ports 5060, 5062-5064, 5066, 5078 save and open again the order is now random. This patch should fix that. Change-Id: Ic81f5d132d2c28ca982e8719786cdddbd237d37b Reviewed-on: https://code.wireshark.org/review/32420 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2018-02-13Fix the "pointer to function that generates a label" values.Guy Harris1-2/+2
build_label_func is a pointer type, pointing to a function that can be used to generate a label for a "Decode As" entry. There's no need to have pointers to those pointers; have register_decode_as_next_proto() take a build_label_func, not a build_label_func *, as its last argument, assign that value rather than dereferencing it, get rid of unnecessary casts, and fix the comment in epan/decode_as.h for that argument. Change-Id: Idc3cf18204c543a2191b122c8129b362562c0ecd Reviewed-on: https://code.wireshark.org/review/25773 Reviewed-by: Guy Harris <guy@alum.mit.edu>
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>
2018-01-18Don't cast away constness if it's not necessary.Guy Harris1-2/+2
Change-Id: Ic5ecf4628f03c63b68fadd9ffed49cfd5497d99c Reviewed-on: https://code.wireshark.org/review/25361 Reviewed-by: Guy Harris <guy@alum.mit.edu>
2018-01-06Add ability for preferences to determine what they can change.Michael Mann1-1/+1
Add flags field to preference structure to help determine what areas of Wireshark are affected by a preference changing. The intent is to be able to distinguish dissection from GUI or other changes that are not dissection. The default is to have all preferences affect dissection, but their flags can be changed. This patch doesn't change any flags from the default. Change-Id: Ied5ae961bc3f33f5b730b2892fff3fa0898380b8 Reviewed-on: https://code.wireshark.org/review/25171 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-12-04[decode_as.c] Use g_list_prepend() insted of g_list_append, it's faster.AndersBroman1-1/+1
Change-Id: I56c4a7948da48d02c81c5cf30187a6eeb973db77 Reviewed-on: https://code.wireshark.org/review/24700 Petri-Dish: Anders Broman <a.broman58@gmail.com> Tested-by: Petri Dish Buildbot Reviewed-by: Anders Broman <a.broman58@gmail.com>
2017-09-16Add support for dissector tables of type FT_NONE.Michael Mann1-0/+26
This is for dissectors that have "payloads" that don't have a unique identifier to determine a sub dissector. For the command line parameter -d, specifying a selector is no longer required for dissector tables of type FT_NONE. Change-Id: I3370d9e0dc147deeca4f26b842fe35dc3bda876e Reviewed-on: https://code.wireshark.org/review/22574 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-09-16Have register_decode_as_next_proto create dissector table.Michael Mann1-6/+4
For protocols that have don't have a unique identifier for their payload, have register_decode_as_next_proto be a one stop shop to create Decode As functionality and a dissector table of type FT_NONE. Change-Id: Ic1f2e9ed0aee0554a4eb8f232630b99c0604dfc0 Reviewed-on: https://code.wireshark.org/review/22575 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-07-11Expand register_decode_as_next_proto to include prompt string.Michael Mann1-2/+12
Many dissectors don't have an identifier to pass to a dissector table. When using Decode As they all have a "value" function that returns 0 just so something is returned. A first step to a cleaner refactor of the functionality is to allow dissectors to provide a "prompt" function when registering Decode As with register_decode_as_next_proto() so that the text exposed in the GUI can vary, but the function that returns 0 (nothing) can be consolidated under decode as registration functionality. This casts a wider net for register_decode_as_next_proto() use. Change-Id: I2995b3c251dae70f5f529b672473d25c6288ed5c Reviewed-on: https://code.wireshark.org/review/22562 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-06-24decode_as: replace DISSECTOR_ASSERT() with g_assert()Martin Kaiser1-4/+4
Don't use DISSECTOR_ASSERT() unless we're in wmem packet scope, see commit 341b06ce0795ae957627c9174b57e75c7827f028 Change-Id: I509f9197155fe6ea6f46c23c93eb188220b9dd8d Reviewed-on: https://code.wireshark.org/review/22379 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-06-24simplified Decode As entry if the next protocol requires manual selectionMartin Kaiser1-0/+35
There's a number of protocols whose payload contains yet another protocol but no criterion to figure out what this next protocol is. Define a new global function register_decode_as_next_proto() to register a Decode As entry for this scenario so the user can manually select the next protocol. A lot of the housekeeping that is normally required for Decode As is not applicable to such a scenario. Provide simple data structures and functions to cover this, make them internal to epan/decode_as.c and allow them to be shared by multiple of the new simplified Decode As entries. (For now, the mechanism is based on an FT_UINT32 dissectore table where all entries are linked to number 0. We should eventually come up with a better mechanism.) Change-Id: I3f81e331d7d04cfdfe9a58732d881652d77fabe2 Reviewed-on: https://code.wireshark.org/review/22376 Reviewed-by: Martin Kaiser <wireshark@kaiser.cx> Petri-Dish: Martin Kaiser <wireshark@kaiser.cx> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-04-19decode as: Fix small memory leakMax Dmitrichenko1-0/+1
Change-Id: I3b924ff3e81a5b4ca17fcb9a087b7d7520225f34 Reviewed-on: https://code.wireshark.org/review/21231 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-01-28decode_as: Initialize decode_as_list after freeStig Bjørlykke1-0/+1
Initialize decode_as_list = NULL after free to avoid random crashes in g_list functions after changing profile. This bug was introduced in g5c7b0b96 Change-Id: Ibc752f245115c5a426989e20e0ab9d0f0faac43d Reviewed-on: https://code.wireshark.org/review/19821 Reviewed-by: Stig Bjørlykke <stig@bjorlykke.org>
2017-01-22Internalize struct preferenceMichael Mann1-19/+19
Move "struct preference" into prefs.c, essentially creating a "private" structure to handle preferences. The 2 motivating factors were: 1. Better memory management so that clients/users of API don't have to worry about it. 2. Hide the ugliness of the union stuff and make it transparent to the API. A few bugs related to preference <-> Decode As integration were fixed while in the neighborhood. Change-Id: I509b9a236235d066b139c98222b701475e0ed365 Reviewed-on: https://code.wireshark.org/review/19578 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-01-21decode_as: clean memory on exit.Dario Lombardo1-0/+2
Change-Id: Ifbbfc1ff71c32c2e9b758b55d32bff9a1ccd1576 Reviewed-on: https://code.wireshark.org/review/19689 Reviewed-by: Michael Mann <mmann78@netscape.net>
2017-01-07Refactor range preference.Michael Mann1-1/+1
Refactored so that all handling of ranges in struct preference can be internal to prefs.c Change-Id: I68577909f9c07b23a16ab3443a523355d4645314 Reviewed-on: https://code.wireshark.org/review/19577 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-07Convert range API to always use wmem memory.Michael Mann1-1/+1
This is mostly to address memory leaks in range preferences (the biggest user of range functionality) on shutdown. Now range preferences must use epan scoped memory when referencing internal preference structures to keep consistency. Change-Id: Idc644f59b5b42fa1d46891542b53ff13ea754157 Reviewed-on: https://code.wireshark.org/review/19387 Petri-Dish: Michael Mann <mmann78@netscape.net> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Peter Wu <peter@lekensteyn.nl> Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-10-18Some Pref <-> Decode As bugfixes.Michael Mann1-1/+5
1. If a deprecated port preference is found, populate the new port preference with the value 2. Mark preferences as changed to trigger preference callback at startup. Change-Id: Ic271841686617e847d2e0ed8800bbb0fa874df47 Reviewed-on: https://code.wireshark.org/review/18274 Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-10-08Combine Decode As and port preferences for tcp.port dissector table.Michael Mann1-0/+309
This patch introduces new APIs to allow dissectors to have a preference for a (TCP) port, but the underlying data is actually part of Decode As functionality. For now the APIs are intentionally separate from the regular APIs that register a dissector within a dissector table. It may be possible to eventually combine the two so that all dissectors that register with a dissector table have an opportunity to "automatically" have a preference to adjust the "table value" through the preferences dialog. The tcp.port dissector table was used as the guinea pig. This will eventually be expanded to other dissector tables as well (most notably UDP ports). Some dissectors that "shared" a TCP/UDP port preference were also converted. It also removed the need for some preference callback functions (mostly when the callback function was the proto_reg_handoff function) so there is cleanup around that. Dissectors that has a port preference whose default was 0 were switched to using the dissector_add_for_decode_as_with_preference API rather than dissector_add_uint_with_preference Also added comments for TCP ports used that aren't IANA registered. Change-Id: I99604f95d426ad345f4b494598d94178b886eb67 Reviewed-on: https://code.wireshark.org/review/17724 Reviewed-by: Michael Mann <mmann78@netscape.net>
2016-08-31Don't do any Decode As stuff for dissector tables not used with Decode As.Guy Harris1-15/+1
Have all dissector tables have a "supports Decode As" flag, which defaults to FALSE, and which is set to TRUE if a register_decode_as() refers to it. When adding a dissector to a dissector table with a given key, only add it for Decode As if the dissector table supports it. For non-FT_STRING dissector tables, always check for multiple entries for the same protocol with different dissectors, and report an error if we found them. This means there's no need for the creator of a dissector table to specify whether duplicates of that sort should be allowed - we always do the check when registering something for "Decode As" (in a non-FT_STRING dissector table), and just don't bother registering anything for "Decode As" if the dissector table doesn't support "Decode As", so there's no check done for those dissector tables. Change-Id: I4a1fdea3bddc2af27a65cfbca23edc99b26c0eed Reviewed-on: https://code.wireshark.org/review/17402 Petri-Dish: Guy Harris <guy@alum.mit.edu> Reviewed-by: Guy Harris <guy@alum.mit.edu>
2016-02-16const gpointer -> gconstpointerJoão Valverde1-2/+2
'const gpointer' is the same as 'void *const'. Replace with gconstpointer where straightforward (assuming that was the intent) and use gpointer everywhere else for clarity (that does not change *API* constness contract; it just means a variable is not declared immutable inside the called funtion). Change-Id: Iad2ef13205bfb4ff0056b2bce056353b58942267 Reviewed-on: https://code.wireshark.org/review/13945 Petri-Dish: Anders Broman <a.broman58@gmail.com> Petri-Dish: Alexis La Goutte <alexis.lagoutte@gmail.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Anders Broman <a.broman58@gmail.com>
2015-11-04Don't allow multiple registrations of a protocol in dissector tables.Michael Mann1-0/+24
The target here is the Decode As dialog where protocols have multiple registrations into a dissector table and that shows up as multiple entries in the Decode As dialog list with the same name so users are unsure which "dissector" they are choosing. The "default" behavior (done in this commit) is to not allow duplicates for a dissector table, whether its part of Decode As or not. It's just ENFORCED for Decode As. Bug: 3949 Change-Id: Ibe14fa61aaeca0881f9cc39b78799e314b5e8127 Reviewed-on: https://code.wireshark.org/review/11405 Petri-Dish: Michael Mann <mmann78@netscape.net> Reviewed-by: Michael Mann <mmann78@netscape.net>
2015-03-14Qt: Fix DecodeAsMichal Labedzki1-3/+38
Previously DecodeAs neither save its changes nor changes dissector tables. Do that and redissect packets to refresh view. Bug: 10553 Change-Id: Icd8453c9650f0265852f6b6b58bc483b35570a15 Reviewed-on: https://code.wireshark.org/review/7676 Petri-Dish: Michal Labedzki <michal.labedzki@tieto.com> Tested-by: Petri Dish Buildbot <buildbot-no-reply@wireshark.org> Reviewed-by: Michal Labedzki <michal.labedzki@tieto.com>
2014-08-04Remove a comment asking a question, as the answer is "no".Guy Harris1-1/+0
I.e., no, the epan/decode_as.c stuff belongs in libwireshark, not libui, because dissectors need to be able to say "I support decode-as...". Code to implement the UIs that allow decode-as entries to be specified would belong in libui. Change-Id: Ibf9da19e752481a3892d0f03d0a0537590ab1811 Reviewed-on: https://code.wireshark.org/review/3416 Reviewed-by: Guy Harris <guy@alum.mit.edu>
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>
2013-12-10Get the "Decode As" dialog working, albeit with a few warts. It differsGerald Combs1-209/+1
from the GTK flavor in two major ways: - The "Decode As" and "User Specified Decodes" dialog have been unified. - You can modify the decode as behavior at any time, not just when you have a packet selected. Revert part of 53498 so that we can move items marked /*** THE FOLLOWING SHOULD NOT BE USED BY ANY DISSECTORS!!! ***/ from epan/decode_as.h to ui/decode_as_utils.h. Move "save" code from decode_as_dlg.c to decode_as_utils.c as well. In packet-dcerpc.c don't register a table named "ethertype". We might want to add checks for duplicate table names. To do: - Add support for ranges? - Either add support for DCERPC or make DCERPC use a regular dissector table. - Fix string selectors (i.e. BER). svn path=/trunk/; revision=53910
2013-12-03When including <epan/prefs.h> don't force inclusion of <epan/uat.h>Jakub Zawadzki1-0/+2
svn path=/trunk/; revision=53769
2013-11-29Clean up whitespace.Gerald Combs1-66/+79
svn path=/trunk/; revision=53648
2013-11-29Restore disabled "decode as" settings.Gerald Combs1-1/+6
svn path=/trunk/; revision=53635
2013-11-22Move common "decode as" preference code to epan.Gerald Combs1-1/+201
We presumably want "decode as" behavior to be consistent across UIs so call load_decode_as_entries() from read_prefs(). svn path=/trunk/; revision=53498
2013-11-20Provide "Decode As" functionality through dissectors themselves instead of ↵Michael Mann1-0/+94
the GUI. Bug 9450 (https://bugs.wireshark.org/bugzilla/show_bug.cgi?id=9450) The basic idea behind this design is to have dissectors register with a "decode as list" with their name and dissector table. When "Decode As" dialog is launched, any "registered" dissector found in the packet will cause a tab to be created in the dialog. This patch includes just the dissector portion of the functionality (minus packet-dcerpc.[ch] because it has hooks to the current GUI) svn path=/trunk/; revision=53445