forked from osmocom/wireshark
Introduce a few FT_XXX lengths defines and use those instead of hard coding constants
svn path=/trunk/; revision=29846
This commit is contained in:
parent
019625d876
commit
56b8d36e03
|
@ -39,9 +39,6 @@
|
|||
#define CMP_MATCHES NULL
|
||||
#endif
|
||||
|
||||
#define ETHER_LEN 6
|
||||
#define IPv6_LEN 16
|
||||
|
||||
static void
|
||||
bytes_fvalue_new(fvalue_t *fv)
|
||||
{
|
||||
|
@ -155,14 +152,14 @@ static void
|
|||
ether_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
|
||||
{
|
||||
g_assert(!already_copied);
|
||||
common_fvalue_set(fv, value, ETHER_LEN);
|
||||
common_fvalue_set(fv, value, FT_ETHER_LEN);
|
||||
}
|
||||
|
||||
static void
|
||||
ipv6_fvalue_set(fvalue_t *fv, gpointer value, gboolean already_copied)
|
||||
{
|
||||
g_assert(!already_copied);
|
||||
common_fvalue_set(fv, value, IPv6_LEN);
|
||||
common_fvalue_set(fv, value, FT_IPv6_LEN);
|
||||
}
|
||||
|
||||
static void
|
||||
|
@ -235,12 +232,12 @@ ether_from_unparsed(fvalue_t *fv, char *s, gboolean allow_partial_value, LogFunc
|
|||
* we'll log a message.
|
||||
*/
|
||||
if (bytes_from_unparsed(fv, s, TRUE, NULL)) {
|
||||
if (fv->value.bytes->len > ETHER_LEN) {
|
||||
if (fv->value.bytes->len > FT_ETHER_LEN) {
|
||||
logfunc("\"%s\" contains too many bytes to be a valid Ethernet address.",
|
||||
s);
|
||||
return FALSE;
|
||||
}
|
||||
else if (fv->value.bytes->len < ETHER_LEN && !allow_partial_value) {
|
||||
else if (fv->value.bytes->len < FT_ETHER_LEN && !allow_partial_value) {
|
||||
logfunc("\"%s\" contains too few bytes to be a valid Ethernet address.",
|
||||
s);
|
||||
return FALSE;
|
||||
|
@ -593,7 +590,7 @@ ftype_register_bytes(void)
|
|||
FT_ETHER, /* ftype */
|
||||
"FT_ETHER", /* name */
|
||||
"Ethernet or other MAC address",/* pretty_name */
|
||||
ETHER_LEN, /* wire_size */
|
||||
FT_ETHER_LEN, /* wire_size */
|
||||
bytes_fvalue_new, /* new_value */
|
||||
bytes_fvalue_free, /* free_value */
|
||||
ether_from_unparsed, /* val_from_unparsed */
|
||||
|
@ -631,7 +628,7 @@ ftype_register_bytes(void)
|
|||
FT_IPv6, /* ftype */
|
||||
"FT_IPv6", /* name */
|
||||
"IPv6 address", /* pretty_name */
|
||||
IPv6_LEN, /* wire_size */
|
||||
FT_IPv6_LEN, /* wire_size */
|
||||
bytes_fvalue_new, /* new_value */
|
||||
bytes_fvalue_free, /* free_value */
|
||||
ipv6_from_unparsed, /* val_from_unparsed */
|
||||
|
|
|
@ -71,6 +71,13 @@ enum ftenum {
|
|||
#define IS_FT_TIME(ft) ((ft)==FT_ABSOLUTE_TIME||(ft)==FT_RELATIVE_TIME)
|
||||
#define IS_FT_STRING(ft) ((ft)==FT_STRING||(ft)==FT_STRINGZ)
|
||||
|
||||
/* field types lengths */
|
||||
#define FT_ETHER_LEN 6
|
||||
#define FT_GUID_LEN 16
|
||||
#define FT_IPv4_LEN 4
|
||||
#define FT_IPv6_LEN 16
|
||||
#define FT_IPXNET_LEN 4
|
||||
|
||||
typedef enum ftenum ftenum_t;
|
||||
typedef struct _ftype_t ftype_t;
|
||||
|
||||
|
|
12
epan/proto.c
12
epan/proto.c
|
@ -1261,29 +1261,29 @@ proto_tree_new_item(field_info *new_fi, proto_tree *tree,
|
|||
break;
|
||||
|
||||
case FT_IPv4:
|
||||
DISSECTOR_ASSERT(length == 4);
|
||||
DISSECTOR_ASSERT(length == FT_IPv4_LEN);
|
||||
value = tvb_get_ipv4(tvb, start);
|
||||
proto_tree_set_ipv4(new_fi, little_endian ? GUINT32_SWAP_LE_BE(value) : value);
|
||||
break;
|
||||
|
||||
case FT_IPXNET:
|
||||
DISSECTOR_ASSERT(length == 4);
|
||||
DISSECTOR_ASSERT(length == FT_IPXNET_LEN);
|
||||
proto_tree_set_ipxnet(new_fi,
|
||||
get_uint_value(tvb, start, 4, FALSE));
|
||||
break;
|
||||
|
||||
case FT_IPv6:
|
||||
DISSECTOR_ASSERT(length >=0 && length <= 16);
|
||||
DISSECTOR_ASSERT(length >=0 && length <= FT_IPv6_LEN);
|
||||
proto_tree_set_ipv6_tvb(new_fi, tvb, start, length);
|
||||
break;
|
||||
|
||||
case FT_ETHER:
|
||||
DISSECTOR_ASSERT(length == 6);
|
||||
DISSECTOR_ASSERT(length == FT_ETHER_LEN);
|
||||
proto_tree_set_ether_tvb(new_fi, tvb, start);
|
||||
break;
|
||||
|
||||
case FT_GUID:
|
||||
DISSECTOR_ASSERT(length == 16);
|
||||
DISSECTOR_ASSERT(length == FT_GUID_LEN);
|
||||
proto_tree_set_guid_tvb(new_fi, tvb, start, little_endian);
|
||||
break;
|
||||
|
||||
|
@ -2386,7 +2386,7 @@ proto_tree_set_ether(field_info *fi, const guint8* value)
|
|||
static void
|
||||
proto_tree_set_ether_tvb(field_info *fi, tvbuff_t *tvb, gint start)
|
||||
{
|
||||
proto_tree_set_ether(fi, tvb_get_ptr(tvb, start, 6));
|
||||
proto_tree_set_ether(fi, tvb_get_ptr(tvb, start, FT_ETHER_LEN));
|
||||
}
|
||||
|
||||
/* Add a FT_BOOLEAN to a proto_tree */
|
||||
|
|
Loading…
Reference in New Issue