Introduce the MAPF_SHOW_FAMILY flag to prepend the address family to the
address when printing an mroute_addr object, similar to
print_sockaddr_ex(). This ensures that when logging a float operation,
both the old and new addresses are printed in the same format:
$proto:[$family]$address:$port.
Note: when using this flag with an IPv4-mapped IPv6 address, the output
will appear as: [AF_INET6]a.b.c.d
Change-Id: I43cd3d564d8c6ad4e41de5a38130d90cb6778395
Signed-off-by: Ralf Lici <ralf@mandelbit.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
Message-Id: <
20250725194147.17517-1-gert@greenie.muc.de>
URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg32345.html
Signed-off-by: Gert Doering <gert@greenie.muc.de>
{
buf_printf(&out, "%s:", proto2ascii(maddr.proto, AF_INET, false));
}
+ if (flags & MAPF_SHOW_FAMILY)
+ {
+ buf_printf(&out, "[AF_INET]");
+ }
buf_printf(&out, "%s", print_in_addr_t(ntohl(maddr.v4.addr),
(flags & MAPF_IA_EMPTY_IF_UNDEF) ? IA_EMPTY_IF_UNDEF : 0, gc));
if (maddr.type & MR_WITH_NETBITS)
{
buf_printf(&out, "%s:", proto2ascii(maddr.proto, AF_INET6, false));
}
+ if (flags & MAPF_SHOW_FAMILY)
+ {
+ buf_printf(&out, "[AF_INET6]");
+ }
if (IN6_IS_ADDR_V4MAPPED( &maddr.v6.addr ) )
{
buf_printf(&out, "%s", print_in_addr_t(maddr.v4mappedv6.addr,
#define MAPF_SUBNET (1<<0)
#define MAPF_IA_EMPTY_IF_UNDEF (1<<1)
#define MAPF_SHOW_ARP (1<<2)
+#define MAPF_SHOW_FAMILY (1<<3)
const char *mroute_addr_print_ex(const struct mroute_addr *ma,
const unsigned int flags,
struct gc_arena *gc);
msg(D_MULTI_MEDIUM, "peer %" PRIu32 " (%s) floated from %s to %s",
mi->context.c2.tls_multi->peer_id,
tls_common_name(mi->context.c2.tls_multi, false),
- mroute_addr_print(&mi->real, &gc),
- print_link_socket_actual(&m->top.c2.from, &gc));
+ mroute_addr_print_ex(&mi->real, MAPF_SHOW_FAMILY, &gc),
+ mroute_addr_print_ex(&real, MAPF_SHOW_FAMILY, &gc));
/* remove old address from hash table before changing address */
ASSERT(hash_remove(m->hash, &mi->real));