Add separate union entries to fvalue.value for signed and unsigned
authormartinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 18 Jan 2007 11:02:26 +0000 (11:02 +0000)
committermartinm <martinm@f5534014-38df-0310-8fa8-9805f1628bb7>
Thu, 18 Jan 2007 11:02:26 +0000 (11:02 +0000)
32-bit numbers.  Separate signed and unsigned accessors have been
added and used where appropriate.

Definitely not for 0.99.5.

git-svn-id: http://anonsvn.wireshark.org/wireshark/trunk@20472 f5534014-38df-0310-8fa8-9805f1628bb7

26 files changed:
epan/dfilter/semcheck.c
epan/dissectors/packet-catapult-dct2000.c
epan/dissectors/packet-ncp2222.inc
epan/dissectors/packet-smb-sidsnooping.c
epan/dissectors/packet-text-media.c
epan/ftypes/ftype-bytes.c
epan/ftypes/ftype-double.c
epan/ftypes/ftype-guid.c
epan/ftypes/ftype-integer.c
epan/ftypes/ftype-ipv4.c
epan/ftypes/ftype-none.c
epan/ftypes/ftype-pcre.c
epan/ftypes/ftype-string.c
epan/ftypes/ftype-time.c
epan/ftypes/ftype-tvbuff.c
epan/ftypes/ftypes.c
epan/ftypes/ftypes.h
epan/proto.c
epan/wslua/wslua_field.c
file.c
gtk/io_stat.c
gtk/proto_draw.c
gtk/rtp_analysis.c
print.c
tap-iostat.c
wiretap/catapult_dct2000.c

index 572bbc3e2b62f21587d7638b4feabbb9992a4aea..354590a9115eeaa7df3b7707647888115b605053 100644 (file)
@@ -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;
 }
index a450d96d41b96046227bc39c69c251b31621eac6..53da6200128aaec54600bb06245a030ae39cf54c 100644 (file)
@@ -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,
index f7d08989f1219a6aad6cde6a3be6b61c59bf10f3..c11ad5b9171606a2696736a9007a4a9c6fa9fb6e 100644 (file)
@@ -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)
index 32e2d25a5c799bf70102ae9f3b67b5149df2c187..1d524604f61d70cf3af159b5d1bb9ac8dc3d9924 100644 (file)
@@ -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:
index 0fffe4a7773f49c85150b64171ad407b005eaa31..7b3a36120af441f32d99bb249729d860f70d95a3 100644 (file)
@@ -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);
 }
index 88c46b2e311c7c009ee642d01bdf4f93d4ac15ed..268da752d3672a766cd040ff940f0edc96e68bb0 100644 (file)
@@ -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 */
 
index 0078beedeeafa0b15b5344cb2d052b907deabbfe..ff2f4b77d55ea168c6537c1dc5e64e5408fd9048 100644 (file)
@@ -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 */
 
index 17256c248a866583892d06ff3c74140eb0c44194..622da5f4d2f4d4dbcde3554a09c5ca4ec91d0f42 100644 (file)
@@ -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 */
 
index 8e354d4e676928ab810ecfcfe6fc83b7e66ebf64..d00f3097ed0194c50ea1b89b5a2263b83e442d3d 100644 (file)
 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 */
 
index bb81272d5e987bfa496d367a4da8112189279de1..789f80676ff9434d56cb6ccf479d567970a08283 100644 (file)
@@ -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 */
 
index 7d133f846261a06ee21925ca33137f61e981b96b..1428a1ba536dc851657dd86a5e5fa9c0b8e44b12 100644 (file)
@@ -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 */
 
index 4c4c4fdf902e4227283857276525b0fab52417d5..d5f58aa681d9fed582e4b6e6e0b61ea998801747 100644 (file)
@@ -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 */ 
 
index 57d13f8cde43528b4cd022fa09b575a180e68e31..fed7c2b017f484996328d44d252bb75fd4c67249 100644 (file)
@@ -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 */
 
index 38e43d0d6a13bf9bcc057fd84032f66207e2e18c..cd2663ac80830e50f17c3655de7f50f9080defef 100644 (file)
@@ -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 */
 
index c083ec391168b92aab7c30d2c32254091fe16d53..5df4e59378cd498256a03ba97d3f96c8d30799de 100644 (file)
@@ -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 */
 
index a2305f97f9fdbf8ce84545408c38e09ee257b785..2ff211a3ee550460f163f563d99174f948b0eb43 100644 (file)
@@ -417,12 +417,20 @@ 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)
 {
@@ -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)
 {
index 6e42655693f1b590882e0ccbc24bc736ae356950..78c322555df42f68c7cbe43b35a6b6d8a52beb79 100644 (file)
@@ -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);
index c1f822c7af3b691e6f72ed7a9e2bde1ceb2b690c..52cb642fa91e2283b95c68256d37bd344e372b11 100644 (file)
@@ -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;
 
index 26eaffe27d4790bd1c75f397fc540f4f47384c1e..dcccb26c6ff3b1f12de0219999d919ed0c5a0381 100644 (file)
@@ -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:
diff --git a/file.c b/file.c
index 1c23d49fbf28b5d2670fbd1438d342a50070524e..2cc50ca26d0f182be84f8cc6bd02bd4fb2cbcaed 100644 (file)
--- a/file.c
+++ b/file.c
@@ -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);
       }
index df6fbc9058fc70e77c96350f57712df524e44060..ab4dd3e8a6189d4f65a15fe94106095614e80ae7 100644 (file)
@@ -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;
                                }
index f5af94cc64b30289712a0a1a9e57a8c633bc623e..c2c13b17a4772cf9c8b5819cb68ccbe1f1f252ed 100644 (file)
@@ -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);
index 5ba0684036e2d581e028a3946cfb3965cae5f390..81ebdb367fb1ec134b5c8e334767c2fddd5ff2e5 100644 (file)
@@ -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;
                        }
diff --git a/print.c b/print.c
index 7297c10daf6bd16a9733fcec06cdb58254171b8e..6f733fbc713e63be304f6f597e26a2e5f6e1b555 100644 (file)
--- a/print.c
+++ b/print.c
@@ -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 */
index 1ed2019628f877fe75b0334df641ded59af097b4..758455f006d83180837ee11b23c6511270a0a0b4 100644 (file)
@@ -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:
index af4e2690739744b13bcd6cee8026a5d7299d3c63..234e5c2f2b3f5f916fa43169afa04932d44af30d 100644 (file)
@@ -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)