]> git.ipfire.org Git - thirdparty/ntp.git/commitdiff
Make IPv4 multicastclient work again after the IPv6 merge.
authorJohn Hay <hay@ntp.org>
Fri, 19 Oct 2001 15:22:38 +0000 (17:22 +0200)
committerJohn Hay <hay@ntp.org>
Fri, 19 Oct 2001 15:22:38 +0000 (17:22 +0200)
bk: 3bd0453eVcsCFkSdLPgUJOeGJUY7kg

include/ntp.h
ntpd/ntp_io.c

index 48cff3dac44bf39f686ab3c2eddd1eb1563d8935..69d5f0e435d7ce8c0c1f75c9493b6f932ac8738b 100644 (file)
@@ -453,19 +453,19 @@ struct peer {
  /*
  * Macro for sockaddr_storage structures operations
  */
-#define SOCKCMP(sock1, sock2)    ((struct sockaddr_storage*)sock1)->ss_family == ((struct sockaddr_storage*)sock2)->ss_family ? \
+#define SOCKCMP(sock1, sock2)    (((struct sockaddr_storage*)sock1)->ss_family == ((struct sockaddr_storage*)sock2)->ss_family ? \
                                      ((struct sockaddr_storage*)sock1)->ss_family == AF_INET ? \
                                                memcmp(&((struct sockaddr_in*)sock1)->sin_addr, &((struct sockaddr_in*)sock2)->sin_addr, sizeof(struct in_addr))==0  :  \
                                                memcmp(&((struct sockaddr_in6*)sock1)->sin6_addr, &((struct sockaddr_in6*)sock2)->sin6_addr, sizeof(struct in6_addr))==0 : \
-                                     0
+                                     0)
 
-#define SOCKNUL(sock1)     ((struct sockaddr_storage*)sock1)->ss_family == AF_INET ? \
+#define SOCKNUL(sock1)     (((struct sockaddr_storage*)sock1)->ss_family == AF_INET ? \
                                       (((struct sockaddr_in*)sock1)->sin_addr.s_addr == 0) : \
-                                      (IN6_IS_ADDR_UNSPECIFIED(&((struct sockaddr_in6*)sock1)->sin6_addr))
+                                      (IN6_IS_ADDR_UNSPECIFIED(&((struct sockaddr_in6*)sock1)->sin6_addr)))
 
-#define SOCKLEN(sock)    ((struct sockaddr_storage*)sock)->ss_family == AF_INET ? \
+#define SOCKLEN(sock)    (((struct sockaddr_storage*)sock)->ss_family == AF_INET ? \
                                        (sizeof(struct sockaddr_in)) : \
-                                       (sizeof(struct sockaddr_in6))
+                                       (sizeof(struct sockaddr_in6)))
 
 #define ANYSOCK(sock)           memset(((struct sockaddr_in*)sock), 0, sizeof(struct sockaddr_storage)-sizeof(struct sockaddr_in))
 
index b3fb15871f0bb179aac1fd5a064fdd8c8750449e..c407f74e8d0ad3394ccd06eac106dbf03d4d2a99 100644 (file)
@@ -878,7 +878,7 @@ io_multicast_add(
                * Try opening a socket for the specified class D address. This
                * works under SunOS 4.x, but not OSF1 .. :-(
                */
-               s = open_socket((struct sockaddr_storage*)&sinp, 0, 1);
+               s = open_socket((struct sockaddr_storage*)sinp, 0, 1);
                if (s < 0) {
                        memset((char *)&inter_list[i], 0, sizeof inter_list[0]);
                        i = 0;
@@ -982,20 +982,6 @@ io_multicast_add(
 #endif /* HAVE_IPV6 */
        }
 
-       /*
-        * enable reception of multicast packets
-        */
-       mreq.imr_multiaddr = iaddr;
-       mreq.imr_interface.s_addr = htonl(INADDR_ANY);
-       if (setsockopt(inter_list[i].fd, IPPROTO_IP, IP_ADD_MEMBERSHIP,
-           (char *)&mreq, sizeof(mreq)) == -1)
-               msyslog(LOG_ERR,
-                   "setsockopt IP_ADD_MEMBERSHIP fails: %m for %x / %x (%s)",
-                   mreq.imr_multiaddr.s_addr,
-                   mreq.imr_interface.s_addr, inet_ntoa(iaddr));
-       inter_list[i].flags |= INT_MULTICAST;
-       if (i >= ninterfaces)
-           ninterfaces = i+1;
 #ifdef DEBUG
        if (debug)
                printf("io_multicast_add %s\n", inet_ntoa(iaddr));