Extending true_false_string support

- Separate tfs.[ch]
- Add larger sample collection
- Properly export DATA

svn path=/trunk/; revision=20373
This commit is contained in:
Jaap Keuter 2007-01-10 07:47:00 +00:00
parent a68f0224c3
commit f8422ab7db
8 changed files with 157 additions and 24 deletions

View File

@ -1594,7 +1594,7 @@ behavior collapses to the one of value_string.
FT_BOOLEANS have a default map of 0 = "False", 1 (or anything else) = "True". FT_BOOLEANS have a default map of 0 = "False", 1 (or anything else) = "True".
Sometimes it is useful to change the labels for boolean values (e.g., Sometimes it is useful to change the labels for boolean values (e.g.,
to "Yes"/"No", "Fast"/"Slow", etc.). For these mappings, a struct called to "Yes"/"No", "Fast"/"Slow", etc.). For these mappings, a struct called
true_false_string is used. (This struct is new as of Wireshark 0.7.6). true_false_string is used.
typedef struct true_false_string { typedef struct true_false_string {
char *true_string; char *true_string;
@ -1617,6 +1617,9 @@ string representing falsehood. For FT_BOOLEAN fields that need a
If the Boolean field is to be displayed as "False" or "True", the If the Boolean field is to be displayed as "False" or "True", the
'strings' field would be set to NULL. 'strings' field would be set to NULL.
Wireshark predefines a whole range of ready made "true_false_string"s
in tfs.h, included via packet.h.
bitmask bitmask
------- -------
If the field is a bitfield, then the bitmask is the mask which will If the field is a bitfield, then the bitmask is the mask which will

View File

@ -21,7 +21,7 @@
# #
# You should have received a copy of the GNU General Public License # You should have received a copy of the GNU General Public License
# along with this program; if not, write to the Free Software # along with this program; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. # Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA
LIBWIRESHARK_SRC = \ LIBWIRESHARK_SRC = \
addr_and_mask.c \ addr_and_mask.c \
@ -85,6 +85,7 @@ LIBWIRESHARK_SRC = \
tap.c \ tap.c \
tcap-persistentdata.c \ tcap-persistentdata.c \
timestamp.c \ timestamp.c \
tfs.c \
to_str.c \ to_str.c \
tvbparse.c \ tvbparse.c \
tvbuff.c \ tvbuff.c \
@ -182,6 +183,7 @@ LIBWIRESHARK_INCLUDES = \
tap.h \ tap.h \
tcap-persistentdata.h \ tcap-persistentdata.h \
timestamp.h \ timestamp.h \
tfs.h \
to_str.h \ to_str.h \
tvbparse.h \ tvbparse.h \
tvbuff.h \ tvbuff.h \

View File

@ -688,6 +688,25 @@ tap_queue_packet
tcp_dissect_pdus tcp_dissect_pdus
test_for_directory test_for_directory
test_for_fifo test_for_fifo
tfs_true_false DATA
tfs_yes_no DATA
tfs_set_notset DATA
tfs_enabled_disabled DATA
tfs_ok_error DATA
tfs_success_fail DATA
tfs_on_off DATA
tfs_ack_nack DATA
tfs_odd_even DATA
tfs_allow_block DATA
tfs_restricted_allowed DATA
tfs_accept_reject DATA
tfs_more_nomore DATA
tfs_present_absent DATA
tfs_active_inactive DATA
tfs_found_not_found DATA
tfs_command_response DATA
tfs_capable_not_capable DATA
tfs_supported_not_supported DATA
time_msecs_to_str time_msecs_to_str
time_secs_to_str time_secs_to_str
timestamp_get_precision timestamp_get_precision

View File

@ -19,7 +19,7 @@
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -61,11 +61,6 @@ static gint proto_malformed = -1;
static dissector_handle_t frame_handle = NULL; static dissector_handle_t frame_handle = NULL;
static dissector_handle_t data_handle = NULL; static dissector_handle_t data_handle = NULL;
const true_false_string flags_set_truth = {
"Set",
"Not set"
};
void void
packet_init(void) packet_init(void)
{ {

View File

@ -19,7 +19,7 @@
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
#ifndef __PACKET_H__ #ifndef __PACKET_H__
@ -44,6 +44,7 @@
#include "packet_info.h" #include "packet_info.h"
#include "column-utils.h" #include "column-utils.h"
#include "epan.h" #include "epan.h"
#include "tfs.h"
#define hi_nibble(b) (((b) & 0xf0) >> 4) #define hi_nibble(b) (((b) & 0xf0) >> 4)
#define lo_nibble(b) ((b) & 0x0f) #define lo_nibble(b) ((b) & 0x0f)
@ -84,18 +85,6 @@ typedef enum {
CHAR_EBCDIC = 1 /* EBCDIC */ CHAR_EBCDIC = 1 /* EBCDIC */
} char_enc; } char_enc;
/* Struct for boolean enumerations */
typedef struct true_false_string {
const char *true_string;
const char *false_string;
} true_false_string;
/**
* A default set of true/false strings that dissectors can use for
* FT_BOOLEAN header fields.
**/
extern const true_false_string flags_set_truth;
extern void packet_init(void); extern void packet_init(void);
extern void packet_cleanup(void); extern void packet_cleanup(void);

View File

@ -19,7 +19,7 @@
* *
* You should have received a copy of the GNU General Public License * You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software * along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
*/ */
#ifdef HAVE_CONFIG_H #ifdef HAVE_CONFIG_H
@ -3902,8 +3902,7 @@ fill_label_boolean(field_info *fi, gchar *label_str)
int ret; /*tmp return value */ int ret; /*tmp return value */
header_field_info *hfinfo = fi->hfinfo; header_field_info *hfinfo = fi->hfinfo;
static const true_false_string default_tf = { "True", "False" }; const true_false_string *tfstring = &tfs_true_false;
const true_false_string *tfstring = &default_tf;
if (hfinfo->strings) { if (hfinfo->strings) {
tfstring = (const struct true_false_string*) hfinfo->strings; tfstring = (const struct true_false_string*) hfinfo->strings;

61
epan/tfs.c Normal file
View File

@ -0,0 +1,61 @@
/* tfs.c
* true_false strings
* Copyright 2007, Jaap Keuter <jaap.keuter@xs4all.nl>
*
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* 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.
*/
#ifdef HAVE_CONFIG_H
# include "config.h"
#endif
#include "tfs.h"
/*
* A default set of true/false strings that dissectors can use for
* FT_BOOLEAN header fields.
*/
const true_false_string tfs_true_false = { "True", "False" };
const true_false_string tfs_yes_no = { "Yes", "No" };
const true_false_string tfs_set_notset = { "Set", "Not Set" };
const true_false_string tfs_enabled_disabled = { "Enabled", "Disabled" };
const true_false_string tfs_ok_error = { "Ok", "Error" };
const true_false_string tfs_success_fail = { "Success", "Fail" };
const true_false_string tfs_on_off = { "On", "Off" };
const true_false_string tfs_ack_nack = { "Ack", "Nack" };
const true_false_string tfs_odd_even = { "Odd", "Even" };
const true_false_string tfs_allow_block = { "Allow", "Block" };
const true_false_string tfs_restricted_allowed = { "Restricted", "Allowed" };
const true_false_string tfs_accept_reject = { "Accept", "Reject" };
const true_false_string tfs_more_nomore = { "More", "No More" };
const true_false_string tfs_present_absent = { "Present", "Absent" };
const true_false_string tfs_active_inactive = { "Active", "Inactive" };
const true_false_string tfs_found_not_found = { "Found", "Not found" };
const true_false_string tfs_command_response = { "Command", "Response" };
const true_false_string tfs_capable_not_capable = { "Capable", "Not capable" };
const true_false_string tfs_supported_not_supported = { "Supported", "Not supported" };
/*
* Old true_false_string from packet.c
* Retained for backward compatibility until all dissectors are updated.
*/
const true_false_string flags_set_truth = { "Set", "Not set" };

65
epan/tfs.h Normal file
View File

@ -0,0 +1,65 @@
/* tfs.h
* true_false strings
* Copyright 2007, Jaap Keuter <jaap.keuter@xs4all.nl>
*
* $Id$
*
* Wireshark - Network traffic analyzer
* By Gerald Combs <gerald@wireshark.org>
* Copyright 1998 Gerald Combs
*
* 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 __TFS_H__
#define __TFS_H__
/* Struct for boolean enumerations */
typedef struct true_false_string {
const char *true_string;
const char *false_string;
} true_false_string;
/*
* A default set of true/false strings that dissectors can use for
* FT_BOOLEAN header fields.
*/
WS_VAR_IMPORT const true_false_string tfs_true_false;
WS_VAR_IMPORT const true_false_string tfs_yes_no;
WS_VAR_IMPORT const true_false_string tfs_set_notset;
WS_VAR_IMPORT const true_false_string tfs_enabled_disabled;
WS_VAR_IMPORT const true_false_string tfs_ok_error;
WS_VAR_IMPORT const true_false_string tfs_success_fail;
WS_VAR_IMPORT const true_false_string tfs_on_off;
WS_VAR_IMPORT const true_false_string tfs_ack_nack;
WS_VAR_IMPORT const true_false_string tfs_odd_even;
WS_VAR_IMPORT const true_false_string tfs_allow_block;
WS_VAR_IMPORT const true_false_string tfs_restricted_allowed;
WS_VAR_IMPORT const true_false_string tfs_accept_reject;
WS_VAR_IMPORT const true_false_string tfs_more_nomore;
WS_VAR_IMPORT const true_false_string tfs_present_absent;
WS_VAR_IMPORT const true_false_string tfs_active_inactive;
WS_VAR_IMPORT const true_false_string tfs_found_not_found;
WS_VAR_IMPORT const true_false_string tfs_command_response;
WS_VAR_IMPORT const true_false_string tfs_capable_not_capable;
WS_VAR_IMPORT const true_false_string tfs_supported_not_supported;
/*
* Old true_false_string from packet.c
* Retained for backward compatibility until all dissectors are updated.
*/
WS_VAR_IMPORT const true_false_string flags_set_truth;
#endif