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>
(cherry picked from commit e4beaf7a610793f57984ec8006d26f9a695b0c74)
| ... | ... |
@@ -528,7 +528,7 @@ dco_multi_get_localaddr(struct multi_context *m, struct multi_instance *mi, |
| 528 | 528 |
{
|
| 529 | 529 |
struct sockaddr_in *sock_in4 = (struct sockaddr_in *)local; |
| 530 | 530 |
#if defined(HAVE_IN_PKTINFO) && defined(HAVE_IPI_SPEC_DST) |
| 531 |
- sock_in4->sin_addr = actual->pi.in4.ipi_addr; |
|
| 531 |
+ sock_in4->sin_addr = actual->pi.in4.ipi_spec_dst; |
|
| 532 | 532 |
#elif defined(IP_RECVDSTADDR) |
| 533 | 533 |
sock_in4->sin_addr = actual->pi.in4; |
| 534 | 534 |
#else |