Eliminate fvalue_set() in favor of routines that take arguments

appropriate for particular FT_ types.  This lets us do some more type
checking and lets us use const pointers when appropriate.

Constify a bunch of stuff, and don't cast away constness.

svn path=/trunk/; revision=54811
This commit is contained in:
Guy Harris 2014-01-15 01:05:03 +00:00
parent 04b18f44c1
commit 61867d0b2f
17 changed files with 423 additions and 204 deletions

View File

@ -74,7 +74,7 @@ string_walk(GList* arg1list, GList **retval, gchar(*conv_func)(gchar))
}
new_ft_string = fvalue_new(FT_STRING);
fvalue_set(new_ft_string, s, FALSE);
fvalue_set_string(new_ft_string, s);
*retval = g_list_append(*retval, new_ft_string);
break;

View File

@ -50,14 +50,12 @@ bytes_fvalue_free(fvalue_t *fv)
static void
bytes_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
bytes_fvalue_set(fvalue_t *fv, GByteArray *value)
{
g_assert(already_copied);
/* Free up the old value, if we have one */
bytes_fvalue_free(fv);
fv->value.bytes = (GByteArray *)value;
fv->value.bytes = value;
}
static int
@ -163,7 +161,7 @@ bytes_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf)
}
static void
common_fvalue_set(fvalue_t *fv, guint8* data, guint len)
common_fvalue_set(fvalue_t *fv, const guint8* data, guint len)
{
/* Free up the old value, if we have one */
bytes_fvalue_free(fv);
@ -173,46 +171,39 @@ common_fvalue_set(fvalue_t *fv, guint8* data, guint len)
}
static void
ax25_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
ax25_fvalue_set(fvalue_t *fv, const guint8 *value)
{
g_assert(!already_copied);
common_fvalue_set(fv, (guint8 *)value, FT_AX25_ADDR_LEN);
common_fvalue_set(fv, value, FT_AX25_ADDR_LEN);
}
static void
vines_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
vines_fvalue_set(fvalue_t *fv, const guint8 *value)
{
g_assert(!already_copied);
common_fvalue_set(fv, (guint8 *)value, FT_VINES_ADDR_LEN);
common_fvalue_set(fv, value, FT_VINES_ADDR_LEN);
}
static void
ether_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
ether_fvalue_set(fvalue_t *fv, const guint8 *value)
{
g_assert(!already_copied);
common_fvalue_set(fv, (guint8*)value, FT_ETHER_LEN);
common_fvalue_set(fv, value, FT_ETHER_LEN);
}
static void
oid_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
oid_fvalue_set(fvalue_t *fv, GByteArray *value)
{
g_assert(already_copied);
/* Free up the old value, if we have one */
bytes_fvalue_free(fv);
fv->value.bytes = (GByteArray *)value;
fv->value.bytes = value;
}
static void
system_id_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
system_id_fvalue_set(fvalue_t *fv, GByteArray *value)
{
g_assert(already_copied);
/* Free up the old value, if we have one */
bytes_fvalue_free(fv);
fv->value.bytes = (GByteArray *)value;
fv->value.bytes = value;
}
static gpointer
@ -222,7 +213,7 @@ value_get(fvalue_t *fv)
}
static gboolean
bytes_from_string(fvalue_t *fv, char *s, LogFunc logfunc _U_)
bytes_from_string(fvalue_t *fv, const char *s, LogFunc logfunc _U_)
{
GByteArray *bytes;
@ -238,7 +229,7 @@ bytes_from_string(fvalue_t *fv, char *s, LogFunc logfunc _U_)
}
static gboolean
bytes_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
bytes_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
GByteArray *bytes;
gboolean res;
@ -263,7 +254,7 @@ bytes_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, Log
}
static gboolean
ax25_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
ax25_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
/*
* Don't log a message if this fails; we'll try looking it
@ -321,7 +312,7 @@ ax25_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc
}
static gboolean
vines_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
vines_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
/*
* Don't log a message if this fails; we'll try looking it
@ -350,7 +341,7 @@ vines_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc
}
static gboolean
ether_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
ether_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
guint8 *mac;
@ -381,12 +372,12 @@ ether_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc
return FALSE;
}
ether_fvalue_set(fv, mac, FALSE);
ether_fvalue_set(fv, mac);
return TRUE;
}
static gboolean
oid_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
oid_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
GByteArray *bytes;
gboolean res;
@ -420,7 +411,7 @@ oid_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFu
}
static gboolean
rel_oid_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
rel_oid_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
GByteArray *bytes;
gboolean res;
@ -448,7 +439,7 @@ rel_oid_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, L
}
static gboolean
system_id_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
system_id_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
/*
* Don't log a message if this fails; we'll try looking it
@ -677,28 +668,33 @@ ftype_register_bytes(void)
{
static ftype_t bytes_type = {
FT_BYTES, /* ftype */
"FT_BYTES", /* name */
FT_BYTES, /* ftype */
"FT_BYTES", /* name */
"Sequence of bytes", /* pretty_name */
0, /* wire_size */
bytes_fvalue_new, /* new_value */
bytes_fvalue_free, /* free_value */
0, /* wire_size */
bytes_fvalue_new, /* new_value */
bytes_fvalue_free, /* free_value */
bytes_from_unparsed, /* val_from_unparsed */
bytes_from_string, /* val_from_string */
bytes_to_repr, /* val_to_string_repr */
bytes_repr_len, /* len_string_repr */
bytes_from_string, /* val_from_string */
bytes_to_repr, /* val_to_string_repr */
bytes_repr_len, /* len_string_repr */
bytes_fvalue_set, /* set_value */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
bytes_fvalue_set, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
NULL, /* get_value_uinteger */
NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
value_get, /* get_value */
NULL, /* get_value_uinteger */
NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
cmp_eq,
cmp_ne,
@ -726,7 +722,12 @@ ftype_register_bytes(void)
bytes_to_repr, /* val_to_string_repr */
bytes_repr_len, /* len_string_repr */
bytes_fvalue_set, /* set_value */
bytes_fvalue_set, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
@ -764,7 +765,12 @@ ftype_register_bytes(void)
bytes_to_repr, /* val_to_string_repr */
bytes_repr_len, /* len_string_repr */
ax25_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
ax25_fvalue_set, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_integer */
NULL, /* set_value_integer64 */
@ -797,12 +803,17 @@ ftype_register_bytes(void)
FT_VINES_ADDR_LEN, /* wire_size */
bytes_fvalue_new, /* new_value */
bytes_fvalue_free, /* free_value */
vines_from_unparsed, /* val_from_unparsed */
vines_from_unparsed, /* val_from_unparsed */
NULL, /* val_from_string */
bytes_to_repr, /* val_to_string_repr */
bytes_repr_len, /* len_string_repr */
vines_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
vines_fvalue_set, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_integer */
NULL, /* set_value_integer64 */
@ -840,7 +851,12 @@ ftype_register_bytes(void)
bytes_to_repr, /* val_to_string_repr */
bytes_repr_len, /* len_string_repr */
ether_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
ether_fvalue_set, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
@ -878,7 +894,12 @@ ftype_register_bytes(void)
oid_to_repr, /* val_to_string_repr */
oid_repr_len, /* len_string_repr */
oid_fvalue_set, /* set_value */
oid_fvalue_set, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
@ -916,7 +937,12 @@ ftype_register_bytes(void)
rel_oid_to_repr, /* val_to_string_repr */
rel_oid_repr_len, /* len_string_repr */
oid_fvalue_set, /* set_value (same as full oid) */
oid_fvalue_set, /* set_value_byte_array (same as full oid) */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
@ -954,7 +980,12 @@ ftype_register_bytes(void)
system_id_to_repr, /* val_to_string_repr */
bytes_repr_len, /* len_string_repr */
system_id_fvalue_set, /* set_value */
system_id_fvalue_set, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -49,7 +49,7 @@ value_get_floating(fvalue_t *fv)
}
static gboolean
val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
char *endptr = NULL;
@ -166,7 +166,12 @@ ftype_register_double(void)
float_val_to_repr, /* val_to_string_repr */
float_val_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_snteger */
NULL, /* set_value_integer64 */
@ -204,7 +209,12 @@ ftype_register_double(void)
double_val_to_repr, /* val_to_string_repr */
double_val_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -31,10 +31,9 @@
#include <epan/to_str.h>
static void
guid_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
guid_fvalue_set_guid(fvalue_t *fv, const e_guid_t *value)
{
g_assert(!already_copied);
fv->value.guid = *(e_guid_t*)value;
fv->value.guid = *value;
}
static gpointer
@ -44,10 +43,11 @@ value_get(fvalue_t *fv)
}
static gboolean
get_guid(char *s, e_guid_t *guid)
get_guid(const char *s, e_guid_t *guid)
{
size_t i, n;
char *p, digits[9];
const char *p;
char digits[9];
static const char fmt[] = "XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX";
n = strlen(s);
@ -87,7 +87,7 @@ get_guid(char *s, e_guid_t *guid)
}
static gboolean
guid_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
guid_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
e_guid_t guid;
@ -140,7 +140,12 @@ ftype_register_guid(void)
guid_to_repr, /* val_to_string_repr */
guid_repr_len, /* len_string_repr */
guid_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
guid_fvalue_set_guid, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -64,7 +64,7 @@ get_sinteger(fvalue_t *fv)
static gboolean
uint_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc,
uint_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc,
guint32 max)
{
unsigned long value;
@ -117,31 +117,31 @@ uint_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogF
}
static gboolean
uint32_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
uint32_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
return uint_from_unparsed (fv, s, allow_partial_value, logfunc, G_MAXUINT32);
}
static gboolean
uint24_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
uint24_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
return uint_from_unparsed (fv, s, allow_partial_value, logfunc, 0xFFFFFF);
}
static gboolean
uint16_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
uint16_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
return uint_from_unparsed (fv, s, allow_partial_value, logfunc, G_MAXUINT16);
}
static gboolean
uint8_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
uint8_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
return uint_from_unparsed (fv, s, allow_partial_value, logfunc, G_MAXUINT8);
}
static gboolean
sint_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc,
sint_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc,
gint32 max, gint32 min)
{
long value;
@ -202,25 +202,25 @@ sint_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogF
}
static gboolean
sint32_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
sint32_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
return sint_from_unparsed (fv, s, allow_partial_value, logfunc, G_MAXINT32, G_MININT32);
}
static gboolean
sint24_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
sint24_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
return sint_from_unparsed (fv, s, allow_partial_value, logfunc, 0x7FFFFF, -0x800000);
}
static gboolean
sint16_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
sint16_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
return sint_from_unparsed (fv, s, allow_partial_value, logfunc, G_MAXINT16, G_MININT16);
}
static gboolean
sint8_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc logfunc)
sint8_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
return sint_from_unparsed (fv, s, allow_partial_value, logfunc, G_MAXINT8, G_MININT8);
}
@ -258,7 +258,7 @@ uinteger_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf)
}
static gboolean
ipxnet_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
ipxnet_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
guint32 val;
gboolean known;
@ -379,7 +379,7 @@ get_integer64(fvalue_t *fv)
}
static gboolean
uint64_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
uint64_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
guint64 value;
char *endptr;
@ -424,7 +424,7 @@ uint64_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, Lo
}
static gboolean
sint64_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
sint64_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
gint64 value;
char *endptr;
@ -613,7 +613,7 @@ bool_ne(const fvalue_t *a, const fvalue_t *b)
/* EUI64-specific */
static gboolean
eui64_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
eui64_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
/*
@ -664,7 +664,12 @@ ftype_register_integers(void)
uinteger_to_repr, /* val_to_string_repr */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
@ -701,8 +706,13 @@ ftype_register_integers(void)
uinteger_to_repr, /* val_to_string_repr */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_bytes */
NULL, /* set_value_byte_array */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
@ -738,8 +748,13 @@ ftype_register_integers(void)
uinteger_to_repr, /* val_to_string_repr */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
set_uinteger, /* set_value_integer */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
set_uinteger, /* set_value_integer */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
@ -775,14 +790,19 @@ ftype_register_integers(void)
uinteger_to_repr, /* val_to_string_repr */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
get_uinteger, /* get_value_integer */
get_uinteger, /* get_value_integer */
NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
@ -812,16 +832,21 @@ ftype_register_integers(void)
uinteger64_to_repr, /* val_to_string_repr */
uinteger64_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
set_integer64, /* set_value_integer64 */
set_integer64, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
NULL, /* get_value_uinteger */
NULL, /* get_value_sinteger */
get_integer64, /* get_value_integer64 */
get_integer64, /* get_value_integer64 */
NULL, /* get_value_floating */
cmp_eq64,
@ -849,9 +874,14 @@ ftype_register_integers(void)
integer_to_repr, /* val_to_string_repr */
integer_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
set_sinteger, /* set_value_sinteger */
set_sinteger, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
@ -886,15 +916,20 @@ ftype_register_integers(void)
integer_to_repr, /* val_to_string_repr */
integer_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
set_sinteger, /* set_value_sinteger */
set_sinteger, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
NULL, /* get_value_uinteger */
get_sinteger, /* get_value_sinteger */
get_sinteger, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
@ -923,9 +958,14 @@ ftype_register_integers(void)
integer_to_repr, /* val_to_string_repr */
integer_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
set_sinteger, /* set_value_sinteger */
set_sinteger, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
@ -960,15 +1000,20 @@ ftype_register_integers(void)
integer_to_repr, /* val_to_string_repr */
integer_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
set_sinteger, /* set_value_sinteger */
set_sinteger, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
NULL, /* get_value_uinteger */
get_sinteger, /* get_value_sinteger */
get_sinteger, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
@ -997,16 +1042,21 @@ ftype_register_integers(void)
integer64_to_repr, /* val_to_string_repr */
integer64_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
set_integer64, /* set_value_integer64 */
set_integer64, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
NULL, /* get_value_uinteger */
NULL, /* get_value_sinteger */
get_integer64, /* get_value_integer64 */
get_integer64, /* get_value_integer64 */
NULL, /* get_value_floating */
cmp_eq64,
@ -1034,14 +1084,19 @@ ftype_register_integers(void)
boolean_to_repr, /* val_to_string_repr */
boolean_repr_len, /* len_string_repr */
NULL, /* set_value */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
get_uinteger, /* get_value_uinteger */
get_uinteger, /* get_value_uinteger */
NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
@ -1072,14 +1127,19 @@ ftype_register_integers(void)
ipxnet_to_repr, /* val_to_string_repr */
ipxnet_repr_len, /* len_string_repr */
NULL, /* set_value */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
set_uinteger, /* set_value_uinteger */
NULL, /* get_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
get_uinteger, /* get_value_uinteger */
get_uinteger, /* get_value_uinteger */
NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
@ -1110,14 +1170,19 @@ ftype_register_integers(void)
uinteger_to_repr, /* val_to_string_repr */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
get_uinteger, /* get_value_uinteger */
get_uinteger, /* get_value_uinteger */
NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
@ -1145,10 +1210,15 @@ ftype_register_integers(void)
NULL, /* free_value */
eui64_from_unparsed, /* val_from_unparsed */
NULL, /* val_from_string */
eui64_to_repr, /* val_to_string_repr */
eui64_repr_len, /* len_string_repr */
eui64_to_repr, /* val_to_string_repr */
eui64_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
set_integer64, /* set_value_integer64 */

View File

@ -44,13 +44,13 @@ value_get(fvalue_t *fv)
}
static gboolean
val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
guint32 addr;
unsigned int nmask_bits;
char *has_slash;
char *net_str, *addr_str;
const char *has_slash;
const char *net_str, *addr_str;
fvalue_t *nmask_fvalue;
/* Look for CIDR: Is there a single slash in the string? */
@ -178,7 +178,12 @@ ftype_register_ipv4(void)
val_to_repr, /* val_to_string_repr */
val_repr_len, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
set_uinteger, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -30,18 +30,16 @@
#include <epan/emem.h>
static void
ipv6_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
ipv6_fvalue_set(fvalue_t *fv, const guint8 *value)
{
g_assert(!already_copied);
memcpy(fv->value.ipv6.addr.bytes, value, FT_IPv6_LEN);
fv->value.ipv6.prefix = 128;
}
static gboolean
ipv6_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
ipv6_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
char *has_slash, *addr_str;
const char *has_slash, *addr_str;
unsigned int nmask_bits;
fvalue_t *nmask_fvalue;
@ -227,7 +225,12 @@ ftype_register_ipv6(void)
ipv6_to_repr, /* val_to_string_repr */
ipv6_repr_len, /* len_string_repr */
ipv6_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
ipv6_fvalue_set, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -41,7 +41,12 @@ ftype_register_none(void)
NULL, /* val_to_string_repr */
NULL, /* len_string_repr */
NULL, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -75,7 +75,7 @@ raw_flag_needed(const gchar *pattern)
/* Generate a FT_PCRE from a parsed string pattern.
* Uses the specified logfunc() to report errors. */
static gboolean
val_from_string(fvalue_t *fv, char *pattern, LogFunc logfunc)
val_from_string(fvalue_t *fv, const char *pattern, LogFunc logfunc)
{
GError *regex_error = NULL;
GRegexCompileFlags cflags = G_REGEX_OPTIMIZE;
@ -113,7 +113,7 @@ val_from_string(fvalue_t *fv, char *pattern, LogFunc logfunc)
/* Generate a FT_PCRE from an unparsed string pattern.
* Uses the specified logfunc() to report errors. */
static gboolean
val_from_unparsed(fvalue_t *fv, char *pattern, gboolean allow_partial_value _U_, LogFunc logfunc)
val_from_unparsed(fvalue_t *fv, const char *pattern, gboolean allow_partial_value _U_, LogFunc logfunc)
{
g_assert(! allow_partial_value);
@ -137,13 +137,12 @@ gregex_to_repr(fvalue_t *fv, ftrepr_t rtype, char *buf)
/* BEHOLD - value contains the string representation of the regular expression,
* and we want to store the compiled PCRE RE object into the value. */
static void
gregex_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
gregex_fvalue_set(fvalue_t *fv, const char *value)
{
g_assert(value != NULL);
/* Free up the old value, if we have one */
gregex_fvalue_free(fv);
g_assert(! already_copied);
val_from_unparsed(fv, (char *)value, FALSE, NULL);
val_from_unparsed(fv, value, FALSE, NULL);
}
static gpointer
@ -167,7 +166,12 @@ ftype_register_pcre(void)
gregex_to_repr, /* val_to_string_repr */
gregex_repr_len, /* len_string_repr */
gregex_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
gregex_fvalue_set, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -45,17 +45,14 @@ string_fvalue_free(fvalue_t *fv)
}
static void
string_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
string_fvalue_set_string(fvalue_t *fv, const gchar *value)
{
DISSECTOR_ASSERT(value != NULL);
/* Free up the old value, if we have one */
string_fvalue_free(fv);
if (already_copied)
fv->value.string = (gchar *)value; /* must be g_ allocated */
else
fv->value.string = (gchar *)g_strdup((const gchar *)value);
fv->value.string = (gchar *)g_strdup(value);
}
static int
@ -95,7 +92,7 @@ value_get(fvalue_t *fv)
}
static gboolean
val_from_string(fvalue_t *fv, char *s, LogFunc logfunc _U_)
val_from_string(fvalue_t *fv, const char *s, LogFunc logfunc _U_)
{
/* Free up the old value, if we have one */
string_fvalue_free(fv);
@ -105,7 +102,7 @@ val_from_string(fvalue_t *fv, char *s, LogFunc logfunc _U_)
}
static gboolean
val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
fvalue_t *fv_bytes;
@ -247,7 +244,12 @@ ftype_register_string(void)
string_to_repr, /* val_to_string_repr */
string_repr_len, /* len_string_repr */
string_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
string_fvalue_set_string, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
@ -284,7 +286,12 @@ ftype_register_string(void)
string_to_repr, /* val_to_string_repr */
string_repr_len, /* len_string_repr */
string_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
string_fvalue_set_string, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
@ -321,7 +328,12 @@ ftype_register_string(void)
string_to_repr, /* val_to_string_repr */
string_repr_len, /* len_string_repr */
string_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
string_fvalue_set_string, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -113,11 +113,11 @@ cmp_le(const fvalue_t *a, const fvalue_t *b)
* Returns true on success, false on failure.
*/
static gboolean
get_nsecs(char *startp, int *nsecs)
get_nsecs(const char *startp, int *nsecs)
{
int ndigits;
int scale;
char *p;
const char *p;
int val;
int digit;
int i;
@ -171,9 +171,10 @@ get_nsecs(char *startp, int *nsecs)
}
static gboolean
relative_val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
relative_val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
char *curptr, *endptr;
const char *curptr;
char *endptr;
gboolean negative = FALSE;
curptr = s;
@ -236,7 +237,7 @@ fail:
static gboolean
absolute_val_from_string(fvalue_t *fv, char *s, LogFunc logfunc)
absolute_val_from_string(fvalue_t *fv, const char *s, LogFunc logfunc)
{
struct tm tm;
char *curptr;
@ -300,7 +301,7 @@ fail:
}
static gboolean
absolute_val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
absolute_val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
return absolute_val_from_string(fv, s, logfunc);
}
@ -313,10 +314,9 @@ time_fvalue_new(fvalue_t *fv)
}
static void
time_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
time_fvalue_set(fvalue_t *fv, const nstime_t *value)
{
g_assert(!already_copied);
memcpy(&(fv->value.time), value, sizeof(nstime_t));
fv->value.time = *value;
}
static gpointer
@ -374,7 +374,12 @@ ftype_register_time(void)
absolute_val_to_repr, /* val_to_string_repr */
absolute_val_repr_len, /* len_string_repr */
time_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
time_fvalue_set, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
@ -411,7 +416,12 @@ ftype_register_time(void)
relative_val_to_repr, /* val_to_string_repr */
relative_val_repr_len, /* len_string_repr */
time_fvalue_set, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
time_fvalue_set, /* set_value_time */
NULL, /* set_value_string */
NULL, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -48,14 +48,12 @@ value_free(fvalue_t *fv)
}
static void
value_set(fvalue_t *fv, gpointer value, gboolean already_copied)
value_set(fvalue_t *fv, tvbuff_t *value)
{
g_assert(already_copied);
/* Free up the old value, if we have one */
value_free(fv);
fv->value.tvb = (tvbuff_t *)value;
fv->value.tvb = value;
}
static void
@ -65,7 +63,7 @@ free_tvb_data(void *data)
}
static gboolean
val_from_string(fvalue_t *fv, char *s, LogFunc logfunc _U_)
val_from_string(fvalue_t *fv, const char *s, LogFunc logfunc _U_)
{
tvbuff_t *new_tvb;
guint8 *private_data;
@ -89,7 +87,7 @@ val_from_string(fvalue_t *fv, char *s, LogFunc logfunc _U_)
}
static gboolean
val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
val_from_unparsed(fvalue_t *fv, const char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
fvalue_t *fv_bytes;
tvbuff_t *new_tvb;
@ -429,7 +427,12 @@ ftype_register_tvbuff(void)
val_to_repr, /* val_to_string_repr */
val_repr_len, /* len_string_repr */
value_set, /* set_value */
NULL, /* set_value_byte_array */
NULL, /* set_value_bytes */
NULL, /* set_value_guid */
NULL, /* set_value_time */
NULL, /* set_value_string */
value_set, /* set_value_tvbuff */
NULL, /* set_value_uinteger */
NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */

View File

@ -49,12 +49,17 @@ void ftype_register_pcre(void);
typedef void (*FvalueNewFunc)(fvalue_t*);
typedef void (*FvalueFreeFunc)(fvalue_t*);
typedef gboolean (*FvalueFromUnparsed)(fvalue_t*, char*, gboolean, LogFunc);
typedef gboolean (*FvalueFromString)(fvalue_t*, char*, LogFunc);
typedef gboolean (*FvalueFromUnparsed)(fvalue_t*, const char*, gboolean, LogFunc);
typedef gboolean (*FvalueFromString)(fvalue_t*, const char*, LogFunc);
typedef void (*FvalueToStringRepr)(fvalue_t*, ftrepr_t, char*volatile);
typedef int (*FvalueStringReprLen)(fvalue_t*, ftrepr_t);
typedef void (*FvalueSetFunc)(fvalue_t*, gpointer, gboolean);
typedef void (*FvalueSetByteArrayFunc)(fvalue_t*, GByteArray *);
typedef void (*FvalueSetBytesFunc)(fvalue_t*, const guint8 *);
typedef void (*FvalueSetGuidFunc)(fvalue_t*, const e_guid_t *);
typedef void (*FvalueSetTimeFunc)(fvalue_t*, const nstime_t *);
typedef void (*FvalueSetStringFunc)(fvalue_t*, const gchar *value);
typedef void (*FvalueSetTvbuffFunc)(fvalue_t*, tvbuff_t *value);
typedef void (*FvalueSetUnsignedIntegerFunc)(fvalue_t*, guint32);
typedef void (*FvalueSetSignedIntegerFunc)(fvalue_t*, gint32);
typedef void (*FvalueSetInteger64Func)(fvalue_t*, guint64);
@ -84,7 +89,12 @@ struct _ftype_t {
FvalueStringReprLen len_string_repr;
/* could be union */
FvalueSetFunc set_value;
FvalueSetByteArrayFunc set_value_byte_array;
FvalueSetBytesFunc set_value_bytes;
FvalueSetGuidFunc set_value_guid;
FvalueSetTimeFunc set_value_time;
FvalueSetStringFunc set_value_string;
FvalueSetTvbuffFunc set_value_tvbuff;
FvalueSetUnsignedIntegerFunc set_value_uinteger;
FvalueSetSignedIntegerFunc set_value_sinteger;
FvalueSetInteger64Func set_value_integer64;

View File

@ -227,7 +227,7 @@ fvalue_init(fvalue_t *fv, ftenum_t ftype)
}
fvalue_t*
fvalue_from_unparsed(ftenum_t ftype, char *s, gboolean allow_partial_value, LogFunc logfunc)
fvalue_from_unparsed(ftenum_t ftype, const char *s, gboolean allow_partial_value, LogFunc logfunc)
{
fvalue_t *fv;
@ -246,7 +246,7 @@ fvalue_from_unparsed(ftenum_t ftype, char *s, gboolean allow_partial_value, LogF
}
fvalue_t*
fvalue_from_string(ftenum_t ftype, char *s, LogFunc logfunc)
fvalue_from_string(ftenum_t ftype, const char *s, LogFunc logfunc)
{
fvalue_t *fv;
@ -408,16 +408,51 @@ fvalue_slice(fvalue_t *fv, drange_t *d_range)
drange_foreach_drange_node(d_range, slice_func, &slice_data);
new_fv = fvalue_new(FT_BYTES);
fvalue_set(new_fv, slice_data.bytes, TRUE);
fvalue_set_byte_array(new_fv, slice_data.bytes);
return new_fv;
}
void
fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
fvalue_set_byte_array(fvalue_t *fv, GByteArray *value)
{
g_assert(fv->ftype->set_value);
fv->ftype->set_value(fv, value, already_copied);
g_assert(fv->ftype->set_value_byte_array);
fv->ftype->set_value_byte_array(fv, value);
}
void
fvalue_set_bytes(fvalue_t *fv, const guint8 *value)
{
g_assert(fv->ftype->set_value_bytes);
fv->ftype->set_value_bytes(fv, value);
}
void
fvalue_set_guid(fvalue_t *fv, const e_guid_t *value)
{
g_assert(fv->ftype->set_value_guid);
fv->ftype->set_value_guid(fv, value);
}
void
fvalue_set_time(fvalue_t *fv, const nstime_t *value)
{
g_assert(fv->ftype->set_value_time);
fv->ftype->set_value_time(fv, value);
}
void
fvalue_set_string(fvalue_t *fv, const gchar *value)
{
g_assert(fv->ftype->set_value_string);
fv->ftype->set_value_string(fv, value);
}
void
fvalue_set_tvbuff(fvalue_t *fv, tvbuff_t *value)
{
g_assert(fv->ftype->set_value_tvbuff);
fv->ftype->set_value_tvbuff(fv, value);
}
void

View File

@ -208,10 +208,10 @@ fvalue_init(fvalue_t *fv, ftenum_t ftype);
WS_DLL_PUBLIC
fvalue_t*
fvalue_from_unparsed(ftenum_t ftype, char *s, gboolean allow_partial_value, LogFunc logfunc);
fvalue_from_unparsed(ftenum_t ftype, const char *s, gboolean allow_partial_value, LogFunc logfunc);
fvalue_t*
fvalue_from_string(ftenum_t ftype, char *s, LogFunc logfunc);
fvalue_from_string(ftenum_t ftype, const char *s, LogFunc logfunc);
/* Returns the length of the string required to hold the
* string representation of the the field value.
@ -243,7 +243,22 @@ const char*
fvalue_type_name(fvalue_t *fv);
void
fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied);
fvalue_set_byte_array(fvalue_t *fv, GByteArray *value);
void
fvalue_set_bytes(fvalue_t *fv, const guint8 *value);
void
fvalue_set_guid(fvalue_t *fv, const e_guid_t *value);
void
fvalue_set_time(fvalue_t *fv, const nstime_t *value);
void
fvalue_set_string(fvalue_t *fv, const gchar *value);
void
fvalue_set_tvbuff(fvalue_t *fv, tvbuff_t *value);
void
fvalue_set_uinteger(fvalue_t *fv, guint32 value);

View File

@ -180,7 +180,7 @@ proto_tree_set_bytes(field_info *fi, const guint8* start_ptr, gint length);
static void
proto_tree_set_bytes_tvb(field_info *fi, tvbuff_t *tvb, gint offset, gint length);
static void
proto_tree_set_time(field_info *fi, nstime_t *value_ptr);
proto_tree_set_time(field_info *fi, const nstime_t *value_ptr);
static void
proto_tree_set_string(field_info *fi, const char* value);
static void
@ -1990,7 +1990,7 @@ ptvcursor_advance(ptvcursor_t* ptvc, gint length)
static void
proto_tree_set_protocol_tvb(field_info *fi, tvbuff_t *tvb)
{
fvalue_set(&fi->value, tvb, TRUE);
fvalue_set_tvbuff(&fi->value, tvb);
}
/* Add a FT_PROTOCOL to a proto_tree */
@ -2102,7 +2102,7 @@ proto_tree_set_bytes(field_info *fi, const guint8* start_ptr, gint length)
if (length > 0) {
g_byte_array_append(bytes, start_ptr, length);
}
fvalue_set(&fi->value, bytes, TRUE);
fvalue_set_byte_array(&fi->value, bytes);
}
@ -2115,7 +2115,7 @@ proto_tree_set_bytes_tvb(field_info *fi, tvbuff_t *tvb, gint offset, gint length
/* Add a FT_*TIME to a proto_tree */
proto_item *
proto_tree_add_time(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start,
gint length, nstime_t *value_ptr)
gint length, const nstime_t *value_ptr)
{
proto_item *pi;
header_field_info *hfinfo;
@ -2171,11 +2171,11 @@ proto_tree_add_time_format(proto_tree *tree, int hfindex, tvbuff_t *tvb,
/* Set the FT_*TIME value */
static void
proto_tree_set_time(field_info *fi, nstime_t *value_ptr)
proto_tree_set_time(field_info *fi, const nstime_t *value_ptr)
{
DISSECTOR_ASSERT(value_ptr != NULL);
fvalue_set(&fi->value, value_ptr, FALSE);
fvalue_set_time(&fi->value, value_ptr);
}
/* Add a FT_IPXNET to a proto_tree */
@ -2366,7 +2366,7 @@ static void
proto_tree_set_ipv6(field_info *fi, const guint8* value_ptr)
{
DISSECTOR_ASSERT(value_ptr != NULL);
fvalue_set(&fi->value, (gpointer) value_ptr, FALSE);
fvalue_set_bytes(&fi->value, value_ptr);
}
static void
@ -2437,7 +2437,7 @@ static void
proto_tree_set_guid(field_info *fi, const e_guid_t *value_ptr)
{
DISSECTOR_ASSERT(value_ptr != NULL);
fvalue_set(&fi->value, (gpointer) value_ptr, FALSE);
fvalue_set_guid(&fi->value, value_ptr);
}
static void
@ -2519,7 +2519,7 @@ proto_tree_set_oid(field_info *fi, const guint8* value_ptr, gint length)
if (length > 0) {
g_byte_array_append(bytes, value_ptr, length);
}
fvalue_set(&fi->value, bytes, TRUE);
fvalue_set_byte_array(&fi->value, bytes);
}
static void
@ -2540,7 +2540,7 @@ proto_tree_set_system_id(field_info *fi, const guint8* value_ptr, gint length)
if (length > 0) {
g_byte_array_append(bytes, value_ptr, length);
}
fvalue_set(&fi->value, bytes, TRUE);
fvalue_set_byte_array(&fi->value, bytes);
}
static void
@ -2769,7 +2769,7 @@ proto_item_append_string(proto_item *pi, const char *str)
new_str = ep_strconcat(old_str, str, NULL);
else
new_str = str;
fvalue_set(&fi->value, (gpointer) new_str, FALSE);
fvalue_set_string(&fi->value, new_str);
}
/* Set the FT_STRING value */
@ -2777,9 +2777,9 @@ static void
proto_tree_set_string(field_info *fi, const char* value)
{
if (value) {
fvalue_set(&fi->value, (gpointer) value, FALSE);
fvalue_set_string(&fi->value, value);
} else {
fvalue_set(&fi->value, (gpointer) "[ Null ]", FALSE);
fvalue_set_string(&fi->value, "[ Null ]");
}
}
@ -2819,7 +2819,7 @@ proto_tree_add_ax25(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start, gi
static void
proto_tree_set_ax25(field_info *fi, const guint8* value)
{
fvalue_set(&fi->value, (gpointer) value, FALSE);
fvalue_set_bytes(&fi->value, value);
}
static void
@ -2832,7 +2832,7 @@ proto_tree_set_ax25_tvb(field_info *fi, tvbuff_t *tvb, gint start)
static void
proto_tree_set_vines(field_info *fi, const guint8* value)
{
fvalue_set(&fi->value, (gpointer) value, FALSE);
fvalue_set_bytes(&fi->value, value);
}
static void
@ -2901,7 +2901,7 @@ proto_tree_add_ether_format(proto_tree *tree, int hfindex, tvbuff_t *tvb,
static void
proto_tree_set_ether(field_info *fi, const guint8* value)
{
fvalue_set(&fi->value, (gpointer) value, FALSE);
fvalue_set_bytes(&fi->value, value);
}
static void
@ -4379,7 +4379,7 @@ proto_item_add_subtree(proto_item *pi, const gint idx) {
}
proto_tree *
proto_item_get_subtree(const proto_item *pi) {
proto_item_get_subtree(proto_item *pi) {
field_info *fi;
if (!pi)
@ -4411,7 +4411,7 @@ proto_item_get_parent_nth(proto_item *ti, int gen) {
proto_item *
proto_tree_get_parent(const proto_tree *tree) {
proto_tree_get_parent(proto_tree *tree) {
if (!tree)
return NULL;
return (proto_item *)tree;
@ -4503,10 +4503,11 @@ int
proto_register_protocol(const char *name, const char *short_name,
const char *filter_name)
{
protocol_t *protocol, *existing_protocol = NULL;
protocol_t *protocol;
const protocol_t *existing_protocol = NULL;
header_field_info *hfinfo;
int proto_id;
char *existing_name;
const char *existing_name;
gint *key;
guint i;
guchar c;
@ -4531,7 +4532,7 @@ proto_register_protocol(const char *name, const char *short_name,
key = (gint *)g_malloc (sizeof(gint));
*key = wrs_str_hash(name);
existing_name = (char *)g_hash_table_lookup(proto_names, key);
existing_name = (const char *)g_hash_table_lookup(proto_names, key);
if (existing_name != NULL) {
/* g_error will terminate the program */
g_error("Duplicate protocol name \"%s\"!"
@ -4539,7 +4540,7 @@ proto_register_protocol(const char *name, const char *short_name,
}
g_hash_table_insert(proto_names, key, (gpointer)name);
existing_name = (char *)g_hash_table_lookup(proto_short_names, (gpointer)short_name);
existing_name = (const char *)g_hash_table_lookup(proto_short_names, (gpointer)short_name);
if (existing_name != NULL) {
g_error("Duplicate protocol short_name \"%s\"!"
" This might be caused by an inappropriate plugin or a development error.", short_name);
@ -4558,7 +4559,7 @@ proto_register_protocol(const char *name, const char *short_name,
" Allowed are lower characters, digits, '-', '_' and '.'."
" This might be caused by an inappropriate plugin or a development error.", filter_name);
}
existing_protocol = (protocol_t *)g_hash_table_lookup(proto_filter_names, (gpointer)filter_name);
existing_protocol = (const protocol_t *)g_hash_table_lookup(proto_filter_names, (gpointer)filter_name);
if (existing_protocol != NULL) {
g_error("Duplicate protocol filter_name \"%s\"!"
" This might be caused by an inappropriate plugin or a development error.", filter_name);
@ -4701,14 +4702,14 @@ proto_get_id(const protocol_t *protocol)
int proto_get_id_by_filter_name(const gchar* filter_name)
{
protocol_t *protocol = NULL;
const protocol_t *protocol = NULL;
if(!filter_name){
fprintf(stderr, "No filter name present");
DISSECTOR_ASSERT(filter_name);
}
protocol = (protocol_t *)g_hash_table_lookup(proto_filter_names, (gpointer)filter_name);
protocol = (const protocol_t *)g_hash_table_lookup(proto_filter_names, (gpointer)filter_name);
if (protocol == NULL)
return -1;

View File

@ -659,7 +659,7 @@ WS_DLL_PUBLIC proto_tree* proto_item_add_subtree(proto_item *ti, const gint idx)
/** Get an existing subtree under an item.
@param ti the parent item of the subtree
@return the subtree or NULL */
WS_DLL_PUBLIC proto_tree* proto_item_get_subtree(const proto_item *ti);
WS_DLL_PUBLIC proto_tree* proto_item_get_subtree(proto_item *ti);
/** Get the parent of a subtree item.
@param ti the child item in the subtree
@ -754,7 +754,7 @@ proto_tree_prime_hfid(proto_tree *tree, const int hfid);
/** Get a parent item of a subtree.
@param tree the tree to get the parent from
@return parent item */
WS_DLL_PUBLIC proto_item* proto_tree_get_parent(const proto_tree *tree);
WS_DLL_PUBLIC proto_item* proto_tree_get_parent(proto_tree *tree);
/** Get the root tree from any subtree.
@param tree the tree to get the root from
@ -901,7 +901,7 @@ proto_tree_add_bytes_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint s
@return the newly created item */
WS_DLL_PUBLIC proto_item *
proto_tree_add_time(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint start,
gint length, nstime_t* value_ptr);
gint length, const nstime_t* value_ptr);
/** Add a formatted FT_ABSOLUTE_TIME or FT_RELATIVE_TIME to a proto_tree, with
the format generating the string for the value and with the field name