From: Miroslav Lichvar Date: Thu, 16 Dec 2021 12:08:19 +0000 (+0100) Subject: ntp: set local address on PTP socket on FreeBSD X-Git-Tag: 4.2~2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=3dfac338582c3c557405b4aed1726a46db76f13e;p=thirdparty%2Fchrony.git 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") --- 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