diff options
-rw-r--r-- | epan/dfilter/semcheck.c | 2 | ||||
-rw-r--r-- | epan/dissectors/packet-catapult-dct2000.c | 23 | ||||
-rw-r--r-- | epan/dissectors/packet-ncp2222.inc | 4 | ||||
-rw-r--r-- | epan/dissectors/packet-smb-sidsnooping.c | 6 | ||||
-rw-r--r-- | epan/dissectors/packet-text-media.c | 1 | ||||
-rw-r--r-- | epan/ftypes/ftype-bytes.c | 30 | ||||
-rw-r--r-- | epan/ftypes/ftype-double.c | 12 | ||||
-rw-r--r-- | epan/ftypes/ftype-guid.c | 6 | ||||
-rw-r--r-- | epan/ftypes/ftype-integer.c | 152 | ||||
-rw-r--r-- | epan/ftypes/ftype-ipv4.c | 10 | ||||
-rw-r--r-- | epan/ftypes/ftype-none.c | 6 | ||||
-rw-r--r-- | epan/ftypes/ftype-pcre.c | 6 | ||||
-rw-r--r-- | epan/ftypes/ftype-string.c | 18 | ||||
-rw-r--r-- | epan/ftypes/ftype-time.c | 12 | ||||
-rw-r--r-- | epan/ftypes/ftype-tvbuff.c | 6 | ||||
-rw-r--r-- | epan/ftypes/ftypes.c | 28 | ||||
-rw-r--r-- | epan/ftypes/ftypes.h | 25 | ||||
-rw-r--r-- | epan/proto.c | 37 | ||||
-rw-r--r-- | epan/wslua/wslua_field.c | 4 | ||||
-rw-r--r-- | file.c | 2 | ||||
-rw-r--r-- | gtk/io_stat.c | 13 | ||||
-rw-r--r-- | gtk/proto_draw.c | 2 | ||||
-rw-r--r-- | gtk/rtp_analysis.c | 2 | ||||
-rw-r--r-- | print.c | 8 | ||||
-rw-r--r-- | tap-iostat.c | 30 | ||||
-rw-r--r-- | wiretap/catapult_dct2000.c | 7 |
26 files changed, 303 insertions, 149 deletions
diff --git a/epan/dfilter/semcheck.c b/epan/dfilter/semcheck.c index 572bbc3e2b..354590a911 100644 --- a/epan/dfilter/semcheck.c +++ b/epan/dfilter/semcheck.c @@ -133,7 +133,7 @@ mk_uint32_fvalue(guint32 val) fvalue_t *fv; fv = fvalue_new(FT_UINT32); - fvalue_set_integer(fv, val); + fvalue_set_uinteger(fv, val); return fv; } diff --git a/epan/dissectors/packet-catapult-dct2000.c b/epan/dissectors/packet-catapult-dct2000.c index a450d96d41..53da620012 100644 --- a/epan/dissectors/packet-catapult-dct2000.c +++ b/epan/dissectors/packet-catapult-dct2000.c @@ -400,7 +400,8 @@ dissector_handle_t look_for_dissector(char *protocol_name) 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"); } @@ -485,8 +486,9 @@ void attach_fp_info(packet_info *pinfo, gboolean received, const char *protocol_ } 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; } @@ -508,6 +510,10 @@ void attach_fp_info(packet_info *pinfo, gboolean received, const char *protocol_ { p_fp_info->release = 6; } + else if (strcmp(protocol_name, "fpiur_r5") == 0) + { + p_fp_info->release = 5; + } else { return; @@ -525,6 +531,14 @@ void attach_fp_info(packet_info *pinfo, gboolean received, const char *protocol_ 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++]; @@ -702,7 +716,8 @@ dissect_catapult_dct2000(tvbuff_t *tvb, packet_info *pinfo, proto_tree *tree) 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, diff --git a/epan/dissectors/packet-ncp2222.inc b/epan/dissectors/packet-ncp2222.inc index f7d08989f1..c11ad5b917 100644 --- a/epan/dissectors/packet-ncp2222.inc +++ b/epan/dissectors/packet-ncp2222.inc @@ -1663,10 +1663,10 @@ get_finfo_value_integer(field_info *finfo) 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) diff --git a/epan/dissectors/packet-smb-sidsnooping.c b/epan/dissectors/packet-smb-sidsnooping.c index 32e2d25a5c..1d524604f6 100644 --- a/epan/dissectors/packet-smb-sidsnooping.c +++ b/epan/dissectors/packet-smb-sidsnooping.c @@ -124,7 +124,7 @@ samr_query_dispinfo(void *dummy _U_, packet_info *pinfo, epan_dissect_t *edt, co return 0; } fi=gp->pdata[0]; - info_level=fi->value.value.integer; + info_level=fi->value.value.sinteger; if(info_level!=1){ return 0; @@ -209,7 +209,7 @@ samr_query_dispinfo(void *dummy _U_, packet_info *pinfo, epan_dissect_t *edt, co 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; @@ -235,7 +235,7 @@ lsa_policy_information(void *dummy _U_, packet_info *pinfo _U_, epan_dissect_t * return 0; } fi=gp->pdata[0]; - info_level=fi->value.value.integer; + info_level=fi->value.value.sinteger; switch(info_level){ case 3: diff --git a/epan/dissectors/packet-text-media.c b/epan/dissectors/packet-text-media.c index 0fffe4a777..7b3a36120a 100644 --- a/epan/dissectors/packet-text-media.c +++ b/epan/dissectors/packet-text-media.c @@ -157,4 +157,5 @@ proto_reg_handoff_text_lines(void) 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); } diff --git a/epan/ftypes/ftype-bytes.c b/epan/ftypes/ftype-bytes.c index 88c46b2e31..268da752d3 100644 --- a/epan/ftypes/ftype-bytes.c +++ b/epan/ftypes/ftype-bytes.c @@ -500,12 +500,14 @@ ftype_register_bytes(void) 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 */ @@ -536,12 +538,14 @@ ftype_register_bytes(void) 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 */ @@ -572,12 +576,14 @@ ftype_register_bytes(void) 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 */ @@ -608,12 +614,14 @@ ftype_register_bytes(void) 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 */ @@ -644,12 +652,14 @@ ftype_register_bytes(void) 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 */ diff --git a/epan/ftypes/ftype-double.c b/epan/ftypes/ftype-double.c index 0078beedee..ff2f4b77d5 100644 --- a/epan/ftypes/ftype-double.c +++ b/epan/ftypes/ftype-double.c @@ -169,12 +169,14 @@ ftype_register_double(void) 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 */ @@ -205,12 +207,14 @@ ftype_register_double(void) 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 */ diff --git a/epan/ftypes/ftype-guid.c b/epan/ftypes/ftype-guid.c index 17256c248a..622da5f4d2 100644 --- a/epan/ftypes/ftype-guid.c +++ b/epan/ftypes/ftype-guid.c @@ -141,12 +141,14 @@ ftype_register_guid(void) 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 */ diff --git a/epan/ftypes/ftype-integer.c b/epan/ftypes/ftype-integer.c index 8e354d4e67..d00f3097ed 100644 --- a/epan/ftypes/ftype-integer.c +++ b/epan/ftypes/ftype-integer.c @@ -48,21 +48,35 @@ 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) { @@ -104,7 +118,7 @@ val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFu return FALSE; } - fv->value.integer = value; + fv->value.uinteger = value; return TRUE; } @@ -117,7 +131,7 @@ integer_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) 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 @@ -129,7 +143,7 @@ uinteger_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) 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 @@ -149,7 +163,7 @@ ipxnet_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, Lo val = get_ipxnet_addr(s, &known); if (known) { - fv->value.integer = val; + fv->value.uinteger = val; return TRUE; } @@ -166,73 +180,73 @@ ipxnet_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) 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 @@ -393,7 +407,7 @@ cmp_bitwise_and64(fvalue_t *a, fvalue_t *b) static void boolean_fvalue_new(fvalue_t *fv) { - fv->value.integer = TRUE; + fv->value.uinteger = TRUE; } static int @@ -405,15 +419,15 @@ boolean_repr_len(fvalue_t *fv _U_, ftrepr_t rtype _U_) 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 { @@ -421,7 +435,7 @@ bool_eq(fvalue_t *a, fvalue_t *b) } } else { - if (b->value.integer) { + if (b->value.uinteger) { return FALSE; } else { @@ -456,12 +470,14 @@ ftype_register_integers(void) 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 */ @@ -491,12 +507,14 @@ ftype_register_integers(void) 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 */ @@ -526,12 +544,14 @@ ftype_register_integers(void) 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 */ @@ -561,12 +581,14 @@ ftype_register_integers(void) 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 */ @@ -596,13 +618,15 @@ ftype_register_integers(void) 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, @@ -631,12 +655,14 @@ ftype_register_integers(void) 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 */ @@ -666,12 +692,14 @@ ftype_register_integers(void) 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 */ @@ -701,12 +729,14 @@ ftype_register_integers(void) 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 */ @@ -736,12 +766,14 @@ ftype_register_integers(void) 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 */ @@ -771,13 +803,15 @@ ftype_register_integers(void) 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, @@ -806,12 +840,14 @@ ftype_register_integers(void) 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 */ @@ -842,12 +878,14 @@ ftype_register_integers(void) 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 */ @@ -878,12 +916,14 @@ ftype_register_integers(void) 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 */ diff --git a/epan/ftypes/ftype-ipv4.c b/epan/ftypes/ftype-ipv4.c index bb81272d5e..789f80676f 100644 --- a/epan/ftypes/ftype-ipv4.c +++ b/epan/ftypes/ftype-ipv4.c @@ -33,7 +33,7 @@ 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); @@ -99,7 +99,7 @@ val_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value _U_, LogFu 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) { @@ -206,12 +206,14 @@ ftype_register_ipv4(void) 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 */ diff --git a/epan/ftypes/ftype-none.c b/epan/ftypes/ftype-none.c index 7d133f8462..1428a1ba53 100644 --- a/epan/ftypes/ftype-none.c +++ b/epan/ftypes/ftype-none.c @@ -44,12 +44,14 @@ ftype_register_none(void) 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 */ diff --git a/epan/ftypes/ftype-pcre.c b/epan/ftypes/ftype-pcre.c index 4c4c4fdf90..d5f58aa681 100644 --- a/epan/ftypes/ftype-pcre.c +++ b/epan/ftypes/ftype-pcre.c @@ -232,12 +232,14 @@ ftype_register_pcre(void) 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 */ diff --git a/epan/ftypes/ftype-string.c b/epan/ftypes/ftype-string.c index 57d13f8cde..fed7c2b017 100644 --- a/epan/ftypes/ftype-string.c +++ b/epan/ftypes/ftype-string.c @@ -309,12 +309,14 @@ ftype_register_string(void) 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 */ @@ -344,12 +346,14 @@ ftype_register_string(void) 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 */ @@ -379,12 +383,14 @@ ftype_register_string(void) 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 */ diff --git a/epan/ftypes/ftype-time.c b/epan/ftypes/ftype-time.c index 38e43d0d6a..cd2663ac80 100644 --- a/epan/ftypes/ftype-time.c +++ b/epan/ftypes/ftype-time.c @@ -357,12 +357,14 @@ ftype_register_time(void) 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 */ @@ -392,12 +394,14 @@ ftype_register_time(void) 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 */ diff --git a/epan/ftypes/ftype-tvbuff.c b/epan/ftypes/ftype-tvbuff.c index c083ec3911..5df4e59378 100644 --- a/epan/ftypes/ftype-tvbuff.c +++ b/epan/ftypes/ftype-tvbuff.c @@ -272,12 +272,14 @@ ftype_register_tvbuff(void) 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 */ diff --git a/epan/ftypes/ftypes.c b/epan/ftypes/ftypes.c index a2305f97f9..2ff211a3ee 100644 --- a/epan/ftypes/ftypes.c +++ b/epan/ftypes/ftypes.c @@ -417,13 +417,21 @@ 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) { - 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) { g_assert(fv->ftype->set_value_integer64); @@ -446,12 +454,20 @@ fvalue_get(fvalue_t *fv) } 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) { diff --git a/epan/ftypes/ftypes.h b/epan/ftypes/ftypes.h index 6e42655693..78c322555d 100644 --- a/epan/ftypes/ftypes.h +++ b/epan/ftypes/ftypes.h @@ -149,7 +149,8 @@ typedef struct _fvalue_t { union { /* Put a few basic types in here */ gpointer pointer; - guint32 integer; + guint32 uinteger; + gint32 sinteger; guint64 integer64; gdouble floating; gchar *string; @@ -181,12 +182,14 @@ typedef void (*FvalueToStringRepr)(fvalue_t*, ftrepr_t, char*); 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*); @@ -209,13 +212,15 @@ struct _ftype_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; @@ -299,7 +304,10 @@ void 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); @@ -311,7 +319,10 @@ gpointer 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); diff --git a/epan/proto.c b/epan/proto.c index c1f822c7af..52cb642fa9 100644 --- a/epan/proto.c +++ b/epan/proto.c @@ -1450,7 +1450,7 @@ proto_tree_add_ipxnet_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint 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 */ @@ -1531,7 +1531,7 @@ proto_tree_add_ipv4_format(proto_tree *tree, int hfindex, tvbuff_t *tvb, gint st 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 */ @@ -2403,7 +2403,7 @@ proto_tree_set_uint(field_info *fi, guint32 value) integer >>= hfinfo->bitshift; } } - fvalue_set_integer(&fi->value, integer); + fvalue_set_uinteger(&fi->value, integer); } /* Add FT_UINT64 to a proto_tree */ @@ -2567,7 +2567,7 @@ proto_tree_set_int(field_info *fi, gint32 value) integer >>= hfinfo->bitshift; } } - fvalue_set_integer(&fi->value, integer); + fvalue_set_sinteger(&fi->value, integer); } /* Add FT_INT64 to a proto_tree */ @@ -3801,7 +3801,7 @@ proto_item_fill_label(field_info *fi, gchar *label_str) 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); @@ -3907,7 +3907,7 @@ fill_label_boolean(field_info *fi, gchar *label_str) 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); @@ -3952,7 +3952,7 @@ fill_label_enumerated_bitfield(field_info *fi, gchar *label_str) 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; @@ -3989,7 +3989,7 @@ fill_label_numeric_bitfield(field_info *fi, gchar *label_str) 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; @@ -4023,7 +4023,7 @@ fill_label_enumerated_uint(field_info *fi, gchar *label_str) /* 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, @@ -4043,7 +4043,7 @@ fill_label_uint(field_info *fi, gchar *label_str) /* 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)) { @@ -4091,7 +4091,7 @@ fill_label_enumerated_int(field_info *fi, gchar *label_str) /* 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, @@ -4111,7 +4111,7 @@ fill_label_int(field_info *fi, gchar *label_str) /* 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)) { @@ -5074,6 +5074,7 @@ construct_match_selected_string(field_info *finfo, epan_dissect_t *edt, int dfilter_len, i; gint start, length, length_remaining; guint8 c; + gchar is_signed_num = FALSE; hfinfo = finfo->hfinfo; DISSECTOR_ASSERT(hfinfo); @@ -5101,14 +5102,15 @@ construct_match_selected_string(field_info *finfo, epan_dissect_t *edt, */ 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 " == ". @@ -5132,7 +5134,8 @@ construct_match_selected_string(field_info *finfo, epan_dissect_t *edt, 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; diff --git a/epan/wslua/wslua_field.c b/epan/wslua/wslua_field.c index 26eaffe27d..dcccb26c6f 100644 --- a/epan/wslua/wslua_field.c +++ b/epan/wslua/wslua_field.c @@ -68,11 +68,13 @@ WSLUA_METAMETHOD FieldInfo__call(lua_State* L) { 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: @@ -3160,7 +3160,7 @@ cf_goto_framenum(capture_file *cf) 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); } diff --git a/gtk/io_stat.c b/gtk/io_stat.c index df6fbc9058..ab4dd3e8a6 100644 --- a/gtk/io_stat.c +++ b/gtk/io_stat.c @@ -290,12 +290,21 @@ gtk_iostat_packet(void *g, packet_info *pinfo, epan_dissect_t *edt, const void * 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; } diff --git a/gtk/proto_draw.c b/gtk/proto_draw.c index f5af94cc64..c2c13b17a4 100644 --- a/gtk/proto_draw.c +++ b/gtk/proto_draw.c @@ -1882,7 +1882,7 @@ tree_view_follow_link(field_info *fi) 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); diff --git a/gtk/rtp_analysis.c b/gtk/rtp_analysis.c index 5ba0684036..81ebdb367f 100644 --- a/gtk/rtp_analysis.c +++ b/gtk/rtp_analysis.c @@ -3604,7 +3604,7 @@ static gboolean process_node(proto_node *ptree_node, header_field_info *hfinform *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; } @@ -373,7 +373,7 @@ proto_tree_write_node_pdml(proto_node *node, gpointer data) 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); } @@ -440,7 +440,7 @@ print_pdml_geninfo(proto_tree *tree, FILE *fh) 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 */ @@ -448,7 +448,7 @@ print_pdml_geninfo(proto_tree *tree, FILE *fh) 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 */ @@ -456,7 +456,7 @@ print_pdml_geninfo(proto_tree *tree, FILE *fh) 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 */ diff --git a/tap-iostat.c b/tap-iostat.c index 1ed2019628..758455f006 100644 --- a/tap-iostat.c +++ b/tap-iostat.c @@ -120,7 +120,20 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const void 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; @@ -138,7 +151,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const void 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){ @@ -149,12 +162,12 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const void 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); @@ -183,7 +196,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const void 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){ @@ -194,7 +207,7 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const void 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)){ @@ -229,11 +242,14 @@ iostat_packet(void *arg, packet_info *pinfo, epan_dissect_t *edt _U_, const void 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: diff --git a/wiretap/catapult_dct2000.c b/wiretap/catapult_dct2000.c index af4e269073..234e5c2f2b 100644 --- a/wiretap/catapult_dct2000.c +++ b/wiretap/catapult_dct2000.c @@ -940,6 +940,13 @@ gboolean parse_line(gint line_length, gint *seconds, gint *useconds, 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) |