]> git.ipfire.org Git - thirdparty/openvpn.git/commitdiff
dco: fix source IP selection when multihome
authorQingfang Deng <dqfext@gmail.com>
Thu, 27 Feb 2025 03:25:22 +0000 (11:25 +0800)
committerGert Doering <gert@greenie.muc.de>
Thu, 13 Mar 2025 17:05:05 +0000 (18:05 +0100)
When multihome option is enabled, OpenVPN passes ipi_addr to DCO, which
is always 0.0.0.0. It should use ipi_spec_dst instead.

Signed-off-by: Qingfang Deng <dqfext@gmail.com>
Acked-by: Antonio Quartulli <a@unstable.cc>
Message-Id: <20250227032522.3734947-1-dqfext@gmail.com>
URL: https://sourceforge.net/p/openvpn/mailman/message/59154010/
Signed-off-by: Gert Doering <gert@greenie.muc.de>
src/openvpn/dco.c

index 973c848ca05abd7574c089ad373a581fb493dfea..d00958da2bdb0db808f131b36991d9c82d86cac4 100644 (file)
@@ -563,7 +563,7 @@ dco_multi_get_localaddr(struct multi_context *m, struct multi_instance *mi,
         {
             struct sockaddr_in *sock_in4 = (struct sockaddr_in *)local;
 #if defined(HAVE_IN_PKTINFO) && defined(HAVE_IPI_SPEC_DST)
-            sock_in4->sin_addr = actual->pi.in4.ipi_addr;
+            sock_in4->sin_addr = actual->pi.in4.ipi_spec_dst;
 #elif defined(IP_RECVDSTADDR)
             sock_in4->sin_addr = actual->pi.in4;
 #else