diff options
author | Gerald Combs <gerald@wireshark.org> | 2013-12-10 19:23:26 +0000 |
---|---|---|
committer | Gerald Combs <gerald@wireshark.org> | 2013-12-10 19:23:26 +0000 |
commit | 17a67c3b5cb80619ab7e1260a05a28e888cee09e (patch) | |
tree | 538f734525e8a488e4fc60ad4eff509a80458c8f /ui/decode_as_utils.h | |
parent | 5fa7d37e377abb89e317f4ebd47ebea69ebe0fd9 (diff) |
Get the "Decode As" dialog working, albeit with a few warts. It differs
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
Diffstat (limited to 'ui/decode_as_utils.h')
-rw-r--r-- | ui/decode_as_utils.h | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/ui/decode_as_utils.h b/ui/decode_as_utils.h new file mode 100644 index 0000000000..de050c731f --- /dev/null +++ b/ui/decode_as_utils.h @@ -0,0 +1,93 @@ +/* decode_as_utils.h + * + * $Id$ + * + * "Decode As" UI utility routines. + * + * By David Hampton <dhampton@mac.com> + * Copyright 2001 David Hampton + * + * This program is free software; you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation; either version 2 + * of the License, or (at your option) any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. + * + */ + +#ifndef __DECODE_AS_UTILS_H__ +#define __DECODE_AS_UTILS_H__ + +/** @file + * "Decode As" / "User Specified Decodes" dialog box. + * @ingroup main_ui_group + */ + +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ + +/** Reset the "decode as" entries and reload ones of the current profile. + */ +WS_DLL_PUBLIC void load_decode_as_entries(void); + +/** This routine creates one entry in the list of protocol dissector + * that need to be reset. It is called by the g_hash_table_foreach + * routine once for each changed entry in a dissector table. + * Unfortunately it cannot delete the entry immediately as this screws + * up the foreach function, so it builds a list of dissectors to be + * reset once the foreach routine finishes. + * + * @param table_name The table name in which this dissector is found. + * + * @param key A pointer to the key for this entry in the dissector + * hash table. This is generally the numeric selector of the + * protocol, i.e. the ethernet type code, IP port number, TCP port + * number, etc. + * + * @param value A pointer to the value for this entry in the dissector + * hash table. This is an opaque pointer that can only be handed back + * to routine in the file packet.c - but it's unused. + * + * @param user_data Unused. + */ +WS_DLL_PUBLIC void decode_build_reset_list (const gchar *table_name, ftenum_t selector_type, + gpointer key, gpointer value _U_, + gpointer user_data _U_); + +/** Clear all "decode as" settings. + */ +WS_DLL_PUBLIC void decode_clear_all(void); + +/** Open the "decode_as_entries" configuration file and write its header. + * + * Entries should be written with decode_as_write_entry(). The file should + * be closed with fclose(). + * + * @return A valid FILE pointer on success, NULL on failure. + */ +FILE *decode_as_open(); + +/** Write an entry to the "decode_as_entries" file. + * + * @param[in] da_file FILE pointer returned by decode_as_open(). + * @param[in] table_name A short decode_as table name. + * @param[in] selector Integer or string selector, e.g. 80 for TCP port 80. + * @param[in] default_proto The default protocol for the selector, or "(none)". + * @param[in] current_proto The desired protocol for the selector, or "(none)" to disable. + */ +void decode_as_write_entry(FILE *da_file, const char *table_name, const char *selector, const char *default_proto, const char *current_proto); + +#ifdef __cplusplus +} +#endif /* __cplusplus */ + +#endif /* __DECODE_AS_UTILS_H__ */ |