[Openvpn-devel,v2] dco: drop client prefix after DCO PEER_FLOAT notification

Message ID 20250727102420.25284-1-gert@greenie.muc.de
State New
Headers show
Series [Openvpn-devel,v2] dco: drop client prefix after DCO PEER_FLOAT notification | expand

Commit Message

Gert Doering July 27, 2025, 10:24 a.m. UTC
From: Antonio Quartulli <antonio@mandelbit.com>

multi_process_float() will possibly float a client and
also generate and set its new prefix.

However, after processing the PEER_FLOAT_NTF message, we
were not clearing the prefix, thus effectivly making
the generated prefix permanent until the next set_prefix()
call.

Clear the prefix right after calling multi_process_float()
to avoid printing messages with the wrong prefix.

Github: closes OpenVPN/openvpn#799
Change-Id: I1ad5df0f6785ffe9becd9f83329a9335d1a36f24
Signed-off-by: Antonio Quartulli <antonio@mandelbit.com>
Acked-by: Gert Doering <gert@greenie.muc.de>
---

This change was reviewed on Gerrit and approved by at least one
developer. I request to merge it to master.

Gerrit URL: https://gerrit.openvpn.net/c/openvpn/+/1116
This mail reflects revision 2 of this Change.

Acked-by according to Gerrit (reflected above):
Gert Doering <gert@greenie.muc.de>

Patch

diff --git a/src/openvpn/multi.c b/src/openvpn/multi.c
index c90ed5b..44210cb 100644
--- a/src/openvpn/multi.c
+++ b/src/openvpn/multi.c
@@ -3417,6 +3417,10 @@ 
                                         &m->top.c2.from.dest,
                                         (struct sockaddr *)&dco->dco_float_peer_ss);
             multi_process_float(m, mi, mi->context.c2.link_sockets[0]);
+            /* multi_process_float() generated and set a new peer prefix, but we
+             * don't to keep it at this point.
+             */
+            clear_prefix();
             CLEAR(dco->dco_float_peer_ss);
         }
 #endif /* if defined(TARGET_LINUX) || defined(TARGET_WIN32) */