]> git.ipfire.org Git - thirdparty/chrony.git/commitdiff
cmdmon: use system values for loopback addresses
authorMiroslav Lichvar <mlichvar@redhat.com>
Fri, 23 Jan 2015 13:31:41 +0000 (14:31 +0100)
committerMiroslav Lichvar <mlichvar@redhat.com>
Mon, 26 Jan 2015 09:40:15 +0000 (10:40 +0100)
cmdmon.c

index 0db4f1fd2d992eb4eb5100bbf913e08d1f9f5e08..dabba79bb8652e639aa8dde0ff02bab9b5d84e3c 100644 (file)
--- a/cmdmon.c
+++ b/cmdmon.c
@@ -1654,17 +1654,15 @@ read_from_cmd_socket(void *anything)
 
   UTI_SockaddrToIPAndPort(&where_from.u, &remote_ip, &remote_port);
 
+  /* Check if it's a loopback address (127.0.0.1 or ::1) */
   switch (remote_ip.family) {
     case IPADDR_INET4:
-      localhost = (remote_ip.addr.in4 == 0x7f000001UL);
+      localhost = remote_ip.addr.in4 == INADDR_LOOPBACK;
       break;
 #ifdef FEAT_IPV6
     case IPADDR_INET6:
-      /* Check for ::1 */
-      for (localhost = 0; localhost < 16; localhost++)
-        if (remote_ip.addr.in6[localhost] != 0)
-          break;
-      localhost = (localhost == 15 && remote_ip.addr.in6[localhost] == 1);
+      localhost = !memcmp(remote_ip.addr.in6, &in6addr_loopback,
+                          sizeof (in6addr_loopback));
       break;
 #endif
     default: