From 8edb2f133c2df808e5fa65052bc6734bdca655c1 Mon Sep 17 00:00:00 2001 From: Ivan Nardi <12729895+IvanNardi@users.noreply.github.com> Date: Sat, 13 Apr 2024 14:12:20 +0200 Subject: STUN: add support for ipv6 in some metadata (#2389) --- src/lib/protocols/stun.c | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) (limited to 'src/lib/protocols/stun.c') diff --git a/src/lib/protocols/stun.c b/src/lib/protocols/stun.c index a58e6202c..7ab6bc6f6 100644 --- a/src/lib/protocols/stun.c +++ b/src/lib/protocols/stun.c @@ -217,7 +217,17 @@ static void parse_ip_port_attribute(const u_int8_t *payload, u_int16_t payload_l ap->is_ipv6 = 0; } else if(protocol_family == 0x02 /* IPv6 */ && real_len == 20) { - /* TODO */ + u_int16_t port = ntohs(*((u_int16_t*)&payload[off+6])); + u_int32_t ip[4]; + + ip[0] = *((u_int32_t *)&payload[off + 8]); + ip[1] = *((u_int32_t *)&payload[off + 12]); + ip[2] = *((u_int32_t *)&payload[off + 16]); + ip[3] = *((u_int32_t *)&payload[off + 20]); + + ap->port = port; + memcpy(&ap->address, &ip, 16); + ap->is_ipv6 = 1; } } } -- cgit v1.2.3