aboutsummaryrefslogtreecommitdiffstats
path: root/epan/ftypes/ftype-ipv4.c
diff options
context:
space:
mode:
authorJoão Valverde <j@v6e.pt>2023-10-26 12:16:54 +0100
committerJoão Valverde <j@v6e.pt>2023-10-27 14:39:14 +0000
commit0d46d9a60a89b8d2fd37c91515f3c8153b5e6b99 (patch)
treec06bf951d67846be02d8e8efa64c374ce268e082 /epan/ftypes/ftype-ipv4.c
parente9c37474885df64575064aa59be93667c1112f6c (diff)
ftypes: Add IPv4 setter/getter
Do not allow "fvalue_set_uinteger" and "fvalue_get_uinteger" with FT_IPv4. Use "fvalue_set_ipv4" and "fvalue_get_ipv4" intead. Fix incorrect usage of fvalue_*_uinteger with FT_IPv4, hopefully I caught all of them.
Diffstat (limited to 'epan/ftypes/ftype-ipv4.c')
-rw-r--r--epan/ftypes/ftype-ipv4.c15
1 files changed, 7 insertions, 8 deletions
diff --git a/epan/ftypes/ftype-ipv4.c b/epan/ftypes/ftype-ipv4.c
index ef4b684f25..9965cf861d 100644
--- a/epan/ftypes/ftype-ipv4.c
+++ b/epan/ftypes/ftype-ipv4.c
@@ -18,16 +18,15 @@
#include <wsutil/strtoi.h>
static void
-set_uinteger(fvalue_t *fv, uint32_t value)
+value_set_ipv4(fvalue_t *fv, const ipv4_addr_and_mask *ipv4)
{
- fv->value.ipv4.addr = g_ntohl(value);
- fv->value.ipv4.nmask = ip_get_subnet_mask(32);
+ fv->value.ipv4 = *ipv4;
}
-static uint32_t
-value_get(fvalue_t *fv)
+static const ipv4_addr_and_mask *
+value_get_ipv4(fvalue_t *fv)
{
- return g_htonl(fv->value.ipv4.addr);
+ return &fv->value.ipv4;
}
static bool
@@ -193,8 +192,8 @@ ftype_register_ipv4(void)
NULL, /* val_to_sinteger64 */
NULL, /* val_to_double */
- { .set_value_uinteger = set_uinteger }, /* union set_value */
- { .get_value_uinteger = value_get }, /* union get_value */
+ { .set_value_ipv4 = value_set_ipv4 }, /* union set_value */
+ { .get_value_ipv4 = value_get_ipv4 }, /* union get_value */
cmp_order,
NULL, /* cmp_contains */