From dd98c38b31c02cbca7f88ed0a709e68f24361195 Mon Sep 17 00:00:00 2001 From: Selva Nair Date: Thu, 30 Jun 2022 15:05:49 -0400 Subject: [PATCH] Log address of management client on accept Currently when we are listening on the management interface, the local address/port is logged as that of the connecting client. Fix it. Signed-off-by: Selva Nair Acked-by: Gert Doering Message-Id: <20220630190549.16675-3-selva.nair@gmail.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg24619.html Signed-off-by: Gert Doering --- src/openvpn/manage.c | 24 +++++++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/src/openvpn/manage.c b/src/openvpn/manage.c index 42e639fdb..5d58c6621 100644 --- a/src/openvpn/manage.c +++ b/src/openvpn/manage.c @@ -1649,9 +1649,27 @@ man_new_connection_post(struct management *man, const char *description) } else #endif - msg(D_MANAGEMENT, "MANAGEMENT: %s %s", - description, - print_sockaddr(man->settings.local->ai_addr, &gc)); + if (man->settings.flags & MF_CONNECT_AS_CLIENT) + { + msg(D_MANAGEMENT, "MANAGEMENT: %s %s", + description, + print_sockaddr(man->settings.local->ai_addr, &gc)); + } + else + { + struct sockaddr_storage addr; + socklen_t addrlen = sizeof(addr); + if (!getpeername(man->connection.sd_cli, (struct sockaddr *) &addr, + &addrlen)) + { + msg(D_MANAGEMENT, "MANAGEMENT: %s %s", description, + print_sockaddr((struct sockaddr *) &addr, &gc)); + } + else + { + msg(D_MANAGEMENT, "MANAGEMENT: %s %s", description, "unknown"); + } + } buffer_list_reset(man->connection.out); -- 2.47.2