From: Qingfang Deng Date: Thu, 27 Feb 2025 03:25:22 +0000 (+0800) Subject: dco: fix source IP selection when multihome X-Git-Tag: v2.7_alpha1~61 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=e4beaf7a610793f57984ec8006d26f9a695b0c74;p=thirdparty%2Fopenvpn.git dco: fix source IP selection when multihome 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 Acked-by: Antonio Quartulli Message-Id: <20250227032522.3734947-1-dqfext@gmail.com> URL: https://sourceforge.net/p/openvpn/mailman/message/59154010/ Signed-off-by: Gert Doering --- diff --git a/src/openvpn/dco.c b/src/openvpn/dco.c index 973c848ca..d00958da2 100644 --- a/src/openvpn/dco.c +++ b/src/openvpn/dco.c @@ -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