fvalue_t *fv;
fv = fvalue_new(FT_UINT32);
- fvalue_set_integer(fv, val);
+ fvalue_set_uinteger(fv, val);
return fv;
}
if ((strcmp(protocol_name, "fp") == 0) ||
(strcmp(protocol_name, "fp_r4") == 0) ||
(strcmp(protocol_name, "fp_r5") == 0) ||
- (strcmp(protocol_name, "fp_r6") == 0))
+ (strcmp(protocol_name, "fp_r6") == 0) ||
+ (strcmp(protocol_name, "fpiur_r5") == 0))
{
return find_dissector("fp");
}
}
memset(p_fp_info, 0, sizeof(struct _fp_info));
- /* Read values from array into their places */
- if (outhdr_values_found < 5)
+ /* Check that the number of outhdr values looks sensible */
+ if (((strcmp(protocol_name, "fpiur_r5") == 0) && (outhdr_values_found != 2)) ||
+ (outhdr_values_found < 5))
{
return;
}
{
p_fp_info->release = 6;
}
+ else if (strcmp(protocol_name, "fpiur_r5") == 0)
+ {
+ p_fp_info->release = 5;
+ }
else
{
return;
p_fp_info->is_uplink = (( received && (p_fp_info->node_type == 2)) ||
(!received && (p_fp_info->node_type == 1)));
+ /* IUR only uses the above... */
+ if (strcmp(protocol_name, "fpiur_r5") == 0)
+ {
+ /* Store info in packet */
+ p_add_proto_data(pinfo->fd, proto_fp, p_fp_info);
+ return;
+ }
+
/* DCH CRC present */
p_fp_info->dch_crc_present = outhdr_values[i++];
if ((strcmp(protocol_name, "fp") == 0) ||
(strcmp(protocol_name, "fp_r4") == 0) ||
(strcmp(protocol_name, "fp_r5") == 0) ||
- (strcmp(protocol_name, "fp_r6") == 0))
+ (strcmp(protocol_name, "fp_r6") == 0) ||
+ (strcmp(protocol_name, "fpiur_r5") == 0))
{
parse_outhdr_string(tvb_get_ephemeral_string(tvb, outhdr_start, outhdr_length));
attach_fp_info(pinfo, direction, protocol_name,
since we sometimes fake the entries to speed things up.
this dissector should not call fvalue_ functions directly.
*/
- if(!finfo->value.ftype->get_value_integer){
+ if(!finfo->value.ftype->get_value_uinteger){
return 0;
}
- return fvalue_get_integer(&finfo->value);
+ return fvalue_get_uinteger(&finfo->value);
}
static guint
get_item_value(proto_item *item)
return 0;
}
fi=gp->pdata[0];
- info_level=fi->value.value.integer;
+ info_level=fi->value.value.sinteger;
if(info_level!=1){
return 0;
fi_name=gp_names->pdata[num_rids-1];
strncpy(sid_name, sid, len);
sid_name[len++]='-';
- g_snprintf(sid_name+len, 256-len, "%d",fi_rid->value.value.integer);
+ g_snprintf(sid_name+len, 256-len, "%d",fi_rid->value.value.sinteger);
add_sid_name_mapping(sid_name, fi_name->value.value.string);
}
return 1;
return 0;
}
fi=gp->pdata[0];
- info_level=fi->value.value.integer;
+ info_level=fi->value.value.sinteger;
switch(info_level){
case 3:
dissector_add_string("media_type", "text/vnd.sun.j2me.app-descriptor", text_lines_handle);
dissector_add_string("media_type", "application/vnd.poc.refer-to", text_lines_handle);
+ dissector_add_string("media_type", "application/vnd.drm.message", text_lines_handle);
}
bytes_repr_len, /* len_string_repr */
bytes_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
bytes_repr_len, /* len_string_repr */
bytes_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
bytes_repr_len, /* len_string_repr */
ether_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
ipv6_repr_len, /* len_string_repr */
ipv6_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
oid_repr_len, /* len_string_repr */
oid_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
float_val_repr_len, /* len_string_repr */
NULL, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_snteger */
NULL, /* set_value_integer64 */
double_fvalue_set_floating, /* set_value_floating */
NULL, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
value_get_floating, /* get_value_floating */
double_val_repr_len, /* len_string_repr */
NULL, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
double_fvalue_set_floating, /* set_value_floating */
NULL, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_snteger */
NULL, /* get_value_integer64 */
value_get_floating, /* get_value_floating */
guid_repr_len, /* len_string_repr */
guid_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
static void
int_fvalue_new(fvalue_t *fv)
{
- fv->value.integer = 0;
+ fv->value.uinteger = 0;
}
static void
-set_integer(fvalue_t *fv, guint32 value)
+set_uinteger(fvalue_t *fv, guint32 value)
{
- fv->value.integer = value;
+ fv->value.uinteger = value;
}
+static void
+set_sinteger(fvalue_t *fv, gint32 value)
+{
+ fv->value.sinteger = value;
+}
+
+
static guint32
-get_integer(fvalue_t *fv)
+get_uinteger(fvalue_t *fv)
{
- return fv->value.integer;
+ return fv->value.uinteger;
}
+static gint32
+get_sinteger(fvalue_t *fv)
+{
+ return fv->value.sinteger;
+}
+
+
static gboolean
val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFunc logfunc)
{
return FALSE;
}
- fv->value.integer = value;
+ fv->value.uinteger = value;
return TRUE;
}
static void
integer_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf)
{
- sprintf(buf, "%d", fv->value.integer);
+ sprintf(buf, "%d", fv->value.sinteger);
}
static int
static void
uinteger_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf)
{
- sprintf(buf, "%u", fv->value.integer);
+ sprintf(buf, "%u", fv->value.uinteger);
}
static gboolean
val = get_ipxnet_addr(s, &known);
if (known) {
- fv->value.integer = val;
+ fv->value.uinteger = val;
return TRUE;
}
static void
ipxnet_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf)
{
- sprintf(buf, "0x%08x", fv->value.integer);
+ sprintf(buf, "0x%08x", fv->value.uinteger);
}
static gboolean
cmp_eq(fvalue_t *a, fvalue_t *b)
{
- return a->value.integer == b->value.integer;
+ return a->value.uinteger == b->value.uinteger;
}
static gboolean
cmp_ne(fvalue_t *a, fvalue_t *b)
{
- return a->value.integer != b->value.integer;
+ return a->value.uinteger != b->value.uinteger;
}
static gboolean
u_cmp_gt(fvalue_t *a, fvalue_t *b)
{
- return (int)a->value.integer > (int)b->value.integer;
+ return a->value.uinteger > b->value.uinteger;
}
static gboolean
u_cmp_ge(fvalue_t *a, fvalue_t *b)
{
- return (int)a->value.integer >= (int)b->value.integer;
+ return a->value.uinteger >= b->value.uinteger;
}
static gboolean
u_cmp_lt(fvalue_t *a, fvalue_t *b)
{
- return (int)a->value.integer < (int)b->value.integer;
+ return a->value.uinteger < b->value.uinteger;
}
static gboolean
u_cmp_le(fvalue_t *a, fvalue_t *b)
{
- return (int)a->value.integer <= (int)b->value.integer;
+ return a->value.uinteger <= b->value.uinteger;
}
static gboolean
s_cmp_gt(fvalue_t *a, fvalue_t *b)
{
- return a->value.integer > b->value.integer;
+ return a->value.sinteger > b->value.sinteger;
}
static gboolean
s_cmp_ge(fvalue_t *a, fvalue_t *b)
{
- return a->value.integer >= b->value.integer;
+ return a->value.sinteger >= b->value.sinteger;
}
static gboolean
s_cmp_lt(fvalue_t *a, fvalue_t *b)
{
- return a->value.integer < b->value.integer;
+ return a->value.sinteger < b->value.sinteger;
}
static gboolean
s_cmp_le(fvalue_t *a, fvalue_t *b)
{
- return a->value.integer <= b->value.integer;
+ return a->value.sinteger <= b->value.sinteger;
}
static gboolean
cmp_bitwise_and(fvalue_t *a, fvalue_t *b)
{
- return ((a->value.integer & b->value.integer) != 0);
+ return ((a->value.uinteger & b->value.uinteger) != 0);
}
static void
static void
boolean_fvalue_new(fvalue_t *fv)
{
- fv->value.integer = TRUE;
+ fv->value.uinteger = TRUE;
}
static int
static void
boolean_to_repr(fvalue_t *fv, ftrepr_t rtype _U_, char *buf)
{
- sprintf(buf, "%s", fv->value.integer ? "1" : "0");
+ sprintf(buf, "%s", fv->value.uinteger ? "1" : "0");
}
/* Checks for equality with zero or non-zero */
static gboolean
bool_eq(fvalue_t *a, fvalue_t *b)
{
- if (a->value.integer) {
- if (b->value.integer) {
+ if (a->value.uinteger) {
+ if (b->value.uinteger) {
return TRUE;
}
else {
}
}
else {
- if (b->value.integer) {
+ if (b->value.uinteger) {
return FALSE;
}
else {
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ set_uinteger, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ get_uinteger, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ set_uinteger, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ get_uinteger, /* get_value_integer */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ set_uinteger, /* set_value_integer */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ get_uinteger, /* get_value_integer */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ set_uinteger, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ get_uinteger, /* get_value_integer */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
uinteger64_repr_len, /* len_string_repr */
NULL, /* set_value */
- NULL, /* set_value_integer */
- set_integer64, /* set_value_integer64 */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
+ set_integer64, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- NULL, /* get_value_integer */
- get_integer64, /* get_value_integer64 */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
+ get_integer64, /* get_value_integer64 */
NULL, /* get_value_floating */
cmp_eq64,
integer_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ set_sinteger, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ get_sinteger, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
integer_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ set_sinteger, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ get_sinteger, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
integer_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ set_sinteger, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ get_sinteger, /* get_value_integer */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
integer_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ set_sinteger, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ get_sinteger, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
integer64_repr_len, /* len_string_repr */
NULL, /* set_value */
- NULL, /* set_value_integer */
- set_integer64, /* set_value_integer64 */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
+ set_integer64, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- NULL, /* get_value_integer */
- get_integer64, /* get_value_integer64 */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
+ get_integer64, /* get_value_integer64 */
NULL, /* get_value_floating */
cmp_eq64,
boolean_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ set_uinteger, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ get_uinteger, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
ipxnet_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ set_uinteger, /* set_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ get_uinteger, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
uinteger_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ set_uinteger, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- get_integer, /* get_value_integer */
+ get_uinteger, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
static void
-set_integer(fvalue_t *fv, guint32 value)
+set_uinteger(fvalue_t *fv, guint32 value)
{
ipv4_addr_set_net_order_addr(&(fv->value.ipv4), value);
ipv4_addr_set_netmask_bits(&(fv->value.ipv4), 32);
if (!nmask_fvalue) {
return FALSE;
}
- nmask_bits = fvalue_get_integer(nmask_fvalue);
+ nmask_bits = fvalue_get_uinteger(nmask_fvalue);
FVALUE_FREE(nmask_fvalue);
if (nmask_bits > 32) {
val_repr_len, /* len_string_repr */
NULL, /* set_value */
- set_integer, /* set_value_integer */
+ set_uinteger, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
NULL, /* len_string_repr */
NULL, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
NULL, /* len_string_repr */
NULL, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
NULL, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
string_repr_len, /* len_string_repr */
string_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
string_repr_len, /* len_string_repr */
string_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
string_repr_len, /* len_string_repr */
string_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
absolute_val_repr_len, /* len_string_repr */
time_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
relative_val_repr_len, /* len_string_repr */
time_fvalue_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
val_repr_len, /* len_string_repr */
value_set, /* set_value */
- NULL, /* set_value_integer */
+ NULL, /* set_value_uinteger */
+ NULL, /* set_value_sinteger */
NULL, /* set_value_integer64 */
NULL, /* set_value_floating */
value_get, /* get_value */
- NULL, /* get_value_integer */
+ NULL, /* get_value_uinteger */
+ NULL, /* get_value_sinteger */
NULL, /* get_value_integer64 */
NULL, /* get_value_floating */
}
void
-fvalue_set_integer(fvalue_t *fv, guint32 value)
+fvalue_set_uinteger(fvalue_t *fv, guint32 value)
{
- g_assert(fv->ftype->set_value_integer);
- fv->ftype->set_value_integer(fv, value);
+ g_assert(fv->ftype->set_value_uinteger);
+ fv->ftype->set_value_uinteger(fv, value);
}
+void
+fvalue_set_sinteger(fvalue_t *fv, gint32 value)
+{
+ g_assert(fv->ftype->set_value_sinteger);
+ fv->ftype->set_value_sinteger(fv, value);
+}
+
+
void
fvalue_set_integer64(fvalue_t *fv, guint64 value)
{
}
guint32
-fvalue_get_integer(fvalue_t *fv)
+fvalue_get_uinteger(fvalue_t *fv)
{
- g_assert(fv->ftype->get_value_integer);
- return fv->ftype->get_value_integer(fv);
+ g_assert(fv->ftype->get_value_uinteger);
+ return fv->ftype->get_value_uinteger(fv);
}
+gint32
+fvalue_get_sinteger(fvalue_t *fv)
+{
+ g_assert(fv->ftype->get_value_sinteger);
+ return fv->ftype->get_value_sinteger(fv);
+}
+
+
guint64
fvalue_get_integer64(fvalue_t *fv)
{
union {
/* Put a few basic types in here */
gpointer pointer;
- guint32 integer;
+ guint32 uinteger;
+ gint32 sinteger;
guint64 integer64;
gdouble floating;
gchar *string;
typedef int (*FvalueStringReprLen)(fvalue_t*, ftrepr_t);
typedef void (*FvalueSetFunc)(fvalue_t*, gpointer, gboolean);
-typedef void (*FvalueSetIntegerFunc)(fvalue_t*, guint32);
+typedef void (*FvalueSetUnsignedIntegerFunc)(fvalue_t*, guint32);
+typedef void (*FvalueSetSignedIntegerFunc)(fvalue_t*, gint32);
typedef void (*FvalueSetInteger64Func)(fvalue_t*, guint64);
typedef void (*FvalueSetFloatingFunc)(fvalue_t*, gdouble);
typedef gpointer (*FvalueGetFunc)(fvalue_t*);
-typedef guint32 (*FvalueGetIntegerFunc)(fvalue_t*);
+typedef guint32 (*FvalueGetUnsignedIntegerFunc)(fvalue_t*);
+typedef gint32 (*FvalueGetSignedIntegerFunc)(fvalue_t*);
typedef guint64 (*FvalueGetInteger64Func)(fvalue_t*);
typedef double (*FvalueGetFloatingFunc)(fvalue_t*);
/* could be union */
FvalueSetFunc set_value;
- FvalueSetIntegerFunc set_value_integer;
+ FvalueSetUnsignedIntegerFunc set_value_uinteger;
+ FvalueSetSignedIntegerFunc set_value_sinteger;
FvalueSetInteger64Func set_value_integer64;
FvalueSetFloatingFunc set_value_floating;
/* could be union */
FvalueGetFunc get_value;
- FvalueGetIntegerFunc get_value_integer;
+ FvalueGetUnsignedIntegerFunc get_value_uinteger;
+ FvalueGetSignedIntegerFunc get_value_sinteger;
FvalueGetInteger64Func get_value_integer64;
FvalueGetFloatingFunc get_value_floating;
fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied);
void
-fvalue_set_integer(fvalue_t *fv, guint32 value);
+fvalue_set_uinteger(fvalue_t *fv, guint32 value);
+
+void
+fvalue_set_sinteger(fvalue_t *fv, gint32 value);
void
fvalue_set_integer64(fvalue_t *fv, guint64 value);
fvalue_get(fvalue_t *fv);
extern guint32
-fvalue_get_integer(fvalue_t *fv);
+fvalue_get_uinteger(fvalue_t *fv);
+
+extern gint32
+fvalue_get_sinteger(fvalue_t *fv);
guint64
fvalue_get_integer64(fvalue_t *fv);
static void
proto_tree_set_ipxnet(field_info *fi, guint32 value)
{
- fvalue_set_integer(&fi->value, value);
+ fvalue_set_uinteger(&fi->value, value);
}
/* Add a FT_IPv4 to a proto_tree */
static void
proto_tree_set_ipv4(field_info *fi, guint32 value)
{
- fvalue_set_integer(&fi->value, value);
+ fvalue_set_uinteger(&fi->value, value);
}
/* Add a FT_IPv6 to a proto_tree */
integer >>= hfinfo->bitshift;
}
}
- fvalue_set_integer(&fi->value, integer);
+ fvalue_set_uinteger(&fi->value, integer);
}
/* Add FT_UINT64 to a proto_tree */
integer >>= hfinfo->bitshift;
}
}
- fvalue_set_integer(&fi->value, integer);
+ fvalue_set_sinteger(&fi->value, integer);
}
/* Add FT_INT64 to a proto_tree */
break;
case FT_IPXNET:
- integer = fvalue_get_integer(&fi->value);
+ integer = fvalue_get_uinteger(&fi->value);
ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
"%s: %s (0x%08X)", hfinfo->name,
get_ipxnet_name(integer), integer);
tfstring = (const struct true_false_string*) hfinfo->strings;
}
- value = fvalue_get_integer(&fi->value);
+ value = fvalue_get_uinteger(&fi->value);
if (hfinfo->bitmask) {
/* Figure out the bit width */
bitwidth = hfinfo_bitwidth(hfinfo);
format = hfinfo_uint_vals_format(hfinfo);
/* Un-shift bits */
- unshifted_value = fvalue_get_integer(&fi->value);
+ unshifted_value = fvalue_get_uinteger(&fi->value);
value = unshifted_value;
if (hfinfo->bitshift > 0) {
unshifted_value <<= hfinfo->bitshift;
format = hfinfo_uint_format(hfinfo);
/* Un-shift bits */
- unshifted_value = fvalue_get_integer(&fi->value);
+ unshifted_value = fvalue_get_uinteger(&fi->value);
value = unshifted_value;
if (hfinfo->bitshift > 0) {
unshifted_value <<= hfinfo->bitshift;
/* Pick the proper format string */
format = hfinfo_uint_vals_format(hfinfo);
- value = fvalue_get_integer(&fi->value);
+ value = fvalue_get_uinteger(&fi->value);
/* Fill in the textual info */
ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
/* Pick the proper format string */
format = hfinfo_uint_format(hfinfo);
- value = fvalue_get_integer(&fi->value);
+ value = fvalue_get_uinteger(&fi->value);
/* Fill in the textual info */
if (IS_BASE_DUAL(hfinfo->display)) {
/* Pick the proper format string */
format = hfinfo_int_vals_format(hfinfo);
- value = fvalue_get_integer(&fi->value);
+ value = fvalue_get_sinteger(&fi->value);
/* Fill in the textual info */
ret = g_snprintf(label_str, ITEM_LABEL_LENGTH,
/* Pick the proper format string */
format = hfinfo_int_format(hfinfo);
- value = fvalue_get_integer(&fi->value);
+ value = fvalue_get_sinteger(&fi->value);
/* Fill in the textual info */
if (IS_BASE_DUAL(hfinfo->display)) {
int dfilter_len, i;
gint start, length, length_remaining;
guint8 c;
+ gchar is_signed_num = FALSE;
hfinfo = finfo->hfinfo;
DISSECTOR_ASSERT(hfinfo);
*/
switch(hfinfo->type) {
- case FT_UINT8:
- case FT_UINT16:
- case FT_UINT24:
- case FT_UINT32:
case FT_INT8:
case FT_INT16:
case FT_INT24:
case FT_INT32:
+ is_signed_num = TRUE;
+ case FT_UINT8:
+ case FT_UINT16:
+ case FT_UINT24:
+ case FT_UINT32:
case FT_FRAMENUM:
/*
* 4 bytes for " == ".
format = hfinfo_numeric_format(hfinfo);
g_snprintf(*filter, dfilter_len, format,
hfinfo->abbrev,
- fvalue_get_integer(&finfo->value));
+ is_signed_num ? fvalue_get_sinteger(&finfo->value)
+ : fvalue_get_uinteger(&finfo->value));
}
break;
case FT_UINT24:
case FT_UINT32:
case FT_FRAMENUM:
+ lua_pushnumber(L,(lua_Number)fvalue_get_uinteger(&(fi->value)));
+ return 1;
case FT_INT8:
case FT_INT16:
case FT_INT24:
case FT_INT32:
- lua_pushnumber(L,(lua_Number)fvalue_get_integer(&(fi->value)));
+ lua_pushnumber(L,(lua_Number)fvalue_get_sinteger(&(fi->value)));
return 1;
case FT_FLOAT:
case FT_DOUBLE:
hfinfo = cf->finfo_selected->hfinfo;
g_assert(hfinfo);
if (hfinfo->type == FT_FRAMENUM) {
- framenum = fvalue_get_integer(&cf->finfo_selected->value);
+ framenum = fvalue_get_uinteger(&cf->finfo_selected->value);
if (framenum != 0)
return cf_goto_frame(cf, framenum);
}
case FT_UINT16:
case FT_UINT24:
case FT_UINT32:
+ new_int=fvalue_get_uinteger(&((field_info *)gp->pdata[i])->value);
+
+ if((new_int>it->int_max)||(it->frames==0)){
+ it->int_max=new_int;
+ }
+ if((new_int<it->int_min)||(it->frames==0)){
+ it->int_min=new_int;
+ }
+ it->int_tot+=new_int;
+ break;
case FT_INT8:
case FT_INT16:
case FT_INT24:
case FT_INT32:
- new_int=fvalue_get_integer(&((field_info *)gp->pdata[i])->value);
-
+ new_int=fvalue_get_sinteger(&((field_info *)gp->pdata[i])->value);
if((new_int>it->int_max)||(it->frames==0)){
it->int_max=new_int;
}
gchar *url;
if(fi->hfinfo->type == FT_FRAMENUM) {
- cf_goto_frame(&cfile, fi->value.value.integer);
+ cf_goto_frame(&cfile, fi->value.value.uinteger);
}
if(FI_GET_FLAG(fi, FI_URL) && IS_FT_STRING(fi->hfinfo->type)) {
url = g_strndup(tvb_get_ptr(fi->ds_tvb, fi->start, fi->length), fi->length);
*p_result = ipv4_get_net_order_addr(ipv4);
}
else {
- *p_result = fvalue_get_integer(&finfo->value);
+ *p_result = fvalue_get_uinteger(&finfo->value);
}
return TRUE;
}
fputs("\" value=\"", pdata->fh);
if (fi->hfinfo->bitmask!=0) {
- fprintf(pdata->fh, "%X", fvalue_get_integer(&fi->value));
+ fprintf(pdata->fh, "%X", fvalue_get_uinteger(&fi->value));
fputs("\" unmaskedvalue=\"", pdata->fh);
write_pdml_field_hex_value(pdata, fi);
}
if (g_ptr_array_len(finfo_array) < 1) {
return;
}
- num = fvalue_get_integer(&((field_info*)finfo_array->pdata[0])->value);
+ num = fvalue_get_uinteger(&((field_info*)finfo_array->pdata[0])->value);
g_ptr_array_free(finfo_array, FALSE);
/* frame.pkt_len --> geninfo.len */
if (g_ptr_array_len(finfo_array) < 1) {
return;
}
- len = fvalue_get_integer(&((field_info*)finfo_array->pdata[0])->value);
+ len = fvalue_get_uinteger(&((field_info*)finfo_array->pdata[0])->value);
g_ptr_array_free(finfo_array, FALSE);
/* frame.cap_len --> geninfo.caplen */
if (g_ptr_array_len(finfo_array) < 1) {
return;
}
- caplen = fvalue_get_integer(&((field_info*)finfo_array->pdata[0])->value);
+ caplen = fvalue_get_uinteger(&((field_info*)finfo_array->pdata[0])->value);
g_ptr_array_free(finfo_array, FALSE);
/* frame.time --> geninfo.timestamp */
gp=proto_get_finfo_ptr_array(edt->tree, it->hf_index);
if(gp){
for(i=0;i<gp->len;i++){
- it->counter+=fvalue_get_integer(&((field_info *)gp->pdata[i])->value);
+ switch(proto_registrar_get_ftype(it->hf_index)){
+ case FT_UINT8:
+ case FT_UINT16:
+ case FT_UINT24:
+ case FT_UINT32:
+ it->counter+=fvalue_get_uinteger(&((field_info *)gp->pdata[i])->value);
+ break;
+ case FT_INT8:
+ case FT_INT16:
+ case FT_INT24:
+ case FT_INT32:
+ it->counter+=fvalue_get_sinteger(&((field_info *)gp->pdata[i])->value);
+ break;
+ }
}
}
break;
case FT_UINT16:
case FT_UINT24:
case FT_UINT32:
- val=fvalue_get_integer(&((field_info *)gp->pdata[i])->value);
+ val=fvalue_get_uinteger(&((field_info *)gp->pdata[i])->value);
if((it->frames==1)&&(i==0)){
it->counter=val;
} else if(val<it->counter){
case FT_INT16:
case FT_INT24:
case FT_INT32:
- val=fvalue_get_integer(&((field_info *)gp->pdata[i])->value);
+ val=fvalue_get_sinteger(&((field_info *)gp->pdata[i])->value);
if((it->frames==1)&&(i==0)){
it->counter=val;
} else if((gint32)val<(gint32)(it->counter)){
it->counter=val;
- }
+ }
break;
case FT_RELATIVE_TIME:
new_time=fvalue_get(&((field_info *)gp->pdata[i])->value);
case FT_UINT16:
case FT_UINT24:
case FT_UINT32:
- val=fvalue_get_integer(&((field_info *)gp->pdata[i])->value);
+ val=fvalue_get_uinteger(&((field_info *)gp->pdata[i])->value);
if((it->frames==1)&&(i==0)){
it->counter=val;
} else if(val>it->counter){
case FT_INT16:
case FT_INT24:
case FT_INT32:
- val=fvalue_get_integer(&((field_info *)gp->pdata[i])->value);
+ val=fvalue_get_sinteger(&((field_info *)gp->pdata[i])->value);
if((it->frames==1)&&(i==0)){
it->counter=val;
} else if((gint32)val>(gint32)(it->counter)){
case FT_UINT16:
case FT_UINT24:
case FT_UINT32:
+ val=fvalue_get_uinteger(&((field_info *)gp->pdata[i])->value);
+ it->counter+=val;
+ break;
case FT_INT8:
case FT_INT16:
case FT_INT24:
case FT_INT32:
- val=fvalue_get_integer(&((field_info *)gp->pdata[i])->value);
+ val=fvalue_get_sinteger(&((field_info *)gp->pdata[i])->value);
it->counter+=val;
break;
case FT_RELATIVE_TIME:
atm_header_present = TRUE;
}
}
+ else if (strcmp(protocol_name, "fpiur_r5") == 0)
+ {
+ /* FP (IuR) over AAL2 */
+ *encap = WTAP_ENCAP_ATM_PDUS_UNTRUNCATED;
+ atm_header_present = TRUE;
+ }
+
else
if (strcmp(protocol_name, "ppp") == 0)