From 3dfac338582c3c557405b4aed1726a46db76f13e Mon Sep 17 00:00:00 2001 From: Miroslav Lichvar Date: Thu, 16 Dec 2021 13:08:19 +0100 Subject: [PATCH] ntp: set local address on PTP socket on FreeBSD Fix the FreeBSD-specific code checking for a bound IPv4 socket to include the new PTP port. This should fix a multihomed server to respond to NTP-over-PTP requests from the address which received the request. Fixes: be3158c4e5b2 ("ntp: add support for NTP over PTP") --- ntp_io.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ntp_io.c b/ntp_io.c index b9d5f13a..e4eb3798 100644 --- a/ntp_io.c +++ b/ntp_io.c @@ -594,7 +594,7 @@ NIO_SendPacket(NTP_Packet *packet, NTP_Remote_Address *remote_addr, #if !defined(HAVE_IN_PKTINFO) && defined(IP_SENDSRCADDR) /* On FreeBSD a local IPv4 address cannot be specified on bound socket */ if (message.local_addr.ip.family == IPADDR_INET4 && - (local_addr->sock_fd != server_sock_fd4 || bound_server_sock_fd4)) + (bound_server_sock_fd4 || !NIO_IsServerSocket(local_addr->sock_fd))) message.local_addr.ip.family = IPADDR_UNSPEC; #endif -- 2.47.2