Date: Fri, 11 Oct 2002 12:20:03 -0700 (PDT) From: "Michael R. Wayne" <wayne@staff.msen.com> To: freebsd-bugs@FreeBSD.org Subject: Re: bin/43938: ntpd binds to local aliases Message-ID: <200210111920.g9BJK3CY001150@freefall.freebsd.org>
next in thread | raw e-mail | index | archive | help
The following reply was made to PR bin/43938; it has been noted by GNATS.
From: "Michael R. Wayne" <wayne@staff.msen.com>
To: freebsd-gnats-submit@FreeBSD.org
Cc:
Subject: Re: bin/43938: ntpd binds to local aliases
Date: Fri, 11 Oct 2002 15:19:44 -0400
Here is the patch. It includes a comment regarding the error
serveral lines earlier. This code is only invoked at startup so
the change is fairly low risk. It properly honors the values of
-d (debug) and -L (undocumented virtual IP address support).
Works properly on our web servers, continues to listen on 127.0.0.1
but not on any aliased IP addresses (unless you specify -L).
/\/\ \/\/
*** /home/wayne/ntp_io.c.ORIG Fri Oct 11 09:47:32 2002
--- ntp_io.c Fri Oct 11 11:52:01 2002
***************
*** 472,477 ****
--- 472,502 ----
# ifndef SYS_WINNT
inter_list[i].flags |= INT_LOOPBACK;
# endif /* not SYS_WINNT */
+ /* Start Msen fix for ntpd binding to all aliased IP addresses on the loopback interface (wayne@msen.com) */
+ /* Here, we know we are on the loopback interface. Unless
+ * we are told to listen to virtual IP addresses (-L option),
+ * we want to exclude any address that is not 127.0.0.1
+ */
+
+ /* Note: The code 13 lines above this one tests the value of
+ * inter_list[i].sin.sin_addr.s_addr, but has never set a value for it.
+ * While this does not affect us under FreeBSD, it is a bug and
+ * we need to notify the ntpd maintainers.
+ */
+ inter_list[i].sin = *(struct sockaddr_in *)&ifr->ifr_addr;
+ if (inter_list[i].sin.sin_addr.s_addr != inet_addr("127.0.0.1")) {
+ if (listen_to_virtual_ips) {
+ if (debug)
+ printf("Using %s - Virtual IP aliased on loopback\n", inet_ntoa((inter_list[i].sin.sin_addr)));
+ } else {
+ if (debug)
+ printf("Ignoring %s - Virtual IP aliased on loopback\n", inet_ntoa((inter_list[i].sin.sin_addr)));
+ }
+ } else {
+ if (debug)
+ printf("Using %s - Primary address on loopback\n", inet_ntoa((inter_list[i].sin.sin_addr)));
+ }
+ /* End Msen fix for ntpd binding to all aliased IP addresses on the loopback interface (wayne@msen.com) */
if (loopback_interface == 0)
{
loopback_interface = &inter_list[i];
To Unsubscribe: send mail to majordomo@FreeBSD.org
with "unsubscribe freebsd-bugs" in the body of the message
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?200210111920.g9BJK3CY001150>
