Thanks, and sorry for stalling since January.  This is still not 
"really really" pretty, but I am still convinced that dealing with DCO
related issues inside dco*.c is a better approach :-)

I have not actually excercised the code (I do not have experienced the
underlying issue yet, which smells like a race condition between kernel
and userland), just stared at it for a bit, and relied on the BB army
to verify that it compiles and passes t_client on all DCO-enabled
platforms (it does).

Not sure why we would ever hit dco_get_peer_stats() with peer_id == -1
(in that case userland should know "the peer is gone") but the check
won't harm - though slightly unrelated.  Good catch on the uint32_t.

Your patch has been applied to the master branch.

commit 6f9ba8bfd259742ee19b173898a9bfd20e22fcf3
Author: Ralf Lici
Date:   Wed Mar 5 18:17:30 2025 +0100

     Handle missing DCO peer by restarting the session

     Signed-off-by: Ralf Lici <[email protected]>
     Acked-by: Frank Lichtenheld <[email protected]>
     Message-Id: <[email protected]>
     URL: 
https://www.mail-archive.com/[email protected]/msg31022.html
     Signed-off-by: Gert Doering <[email protected]>


--
kind regards,

Gert Doering



_______________________________________________
Openvpn-devel mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/openvpn-devel

Reply via email to