From d386a6cfb1e8b69f56fabad76d1e873f56160db8 Mon Sep 17 00:00:00 2001 From: Silvio Gissi Date: Sun, 18 Jun 2017 20:53:32 -0400 Subject: Added IPv4 byte slicing Change-Id: I3bdca418801305d71b33fa07396497d82ad06e33 Reviewed-on: https://code.wireshark.org/review/22212 Petri-Dish: Michael Mann Tested-by: Petri Dish Buildbot Reviewed-by: Michael Mann --- epan/ftypes/ftype-ipv4.c | 19 +++++++++++++++++-- 1 file changed, 17 insertions(+), 2 deletions(-) (limited to 'epan') diff --git a/epan/ftypes/ftype-ipv4.c b/epan/ftypes/ftype-ipv4.c index 8cedaa3257..3b6d5d93b8 100644 --- a/epan/ftypes/ftype-ipv4.c +++ b/epan/ftypes/ftype-ipv4.c @@ -169,6 +169,21 @@ cmp_bitwise_and(const fvalue_t *fv_a, const fvalue_t *fv_b) return ((addr_a & addr_b) != 0); } +static guint +len(fvalue_t *fv _U_) +{ + return 4; +} + +static void +slice(fvalue_t *fv, GByteArray *bytes, guint offset, guint length) +{ + guint8* data; + guint32 addr = ipv4_get_net_order_addr(&(fv->value.ipv4)); + data = ((guint8*)&addr)+offset; + g_byte_array_append(bytes, data, length); +} + void ftype_register_ipv4(void) { @@ -198,8 +213,8 @@ ftype_register_ipv4(void) NULL, /* cmp_contains */ NULL, /* cmp_matches */ - NULL, - NULL, + len, + slice, }; ftype_register(FT_IPv4, &ipv4_type); -- cgit v1.2.1