[BUG] stick-tables did not work when converting IPv6 to IPv4
A stick-table of type IPv6 would store a wrong IPv4 address as the
result of an IPv6 to IPv4 conversion. This bug was introduced in
1.5-dev5.
diff --git a/src/stick_table.c b/src/stick_table.c
index 5e9aa35..20bae5f 100644
--- a/src/stick_table.c
+++ b/src/stick_table.c
@@ -460,8 +460,8 @@
static void *k_ip2ipv6(union pattern_data *pdata, union stktable_key_data *kdata, size_t *len)
{
- v4tov6(&pdata->ipv6, &pdata->ip);
- return (void *)&pdata->ipv6.s6_addr;
+ v4tov6(&kdata->ipv6, &pdata->ip);
+ return (void *)&kdata->ipv6.s6_addr;
}
static void *k_ipv62ipv6(union pattern_data *pdata, union stktable_key_data *kdata, size_t *len)
@@ -472,8 +472,8 @@
/*
static void *k_ipv62ip(union pattern_data *pdata, union stktable_key_data *kdata, size_t *len)
{
- v6tov4(&pdata->ip, &pdata->ipv6);
- return (void *)&pdata->ip.s_addr;
+ v6tov4(&kdata->ip, &pdata->ipv6);
+ return (void *)&kdata->ip.s_addr;
}
*/