The code that is being removed uses linux kernel private data structures as well as a newer methodology has already been implemented.
This commit also fixes build breakage caused by -werror and the usage of a stricter compiler on a centos 6 platform Signed-off-by: Donald Sharp <[email protected]> --- configure.ac | 9 --------- lib/sockopt.c | 23 +---------------------- 2 files changed, 1 insertion(+), 31 deletions(-) diff --git a/configure.ac b/configure.ac index d822c3c..2c70d54 100755 --- a/configure.ac +++ b/configure.ac @@ -989,15 +989,6 @@ AC_TRY_COMPILE([#ifdef HAVE_SYS_PARAM_H AC_DEFINE(HAVE_BSD_STRUCT_IP_MREQ_HACK,,[Can pass ifindex in struct ip_mreq])], AC_MSG_RESULT(no)) -AC_MSG_CHECKING([for RFC3678 protocol-independed API]) -AC_TRY_COMPILE([ -#include <sys/types.h> -#include <netinet/in.h> -], [struct group_req gr; int sock; setsockopt(sock, IPPROTO_IP, MCAST_JOIN_GROUP, (void*)&gr, sizeof(gr)); -], [AC_MSG_RESULT(yes) -AC_DEFINE(HAVE_RFC3678,1,[Have RFC3678 protocol-independed API])], -AC_MSG_RESULT(no)) - dnl --------------------------------------------------------------- dnl figure out how to check link-state dnl --------------------------------------------------------------- diff --git a/lib/sockopt.c b/lib/sockopt.c index 257271b..076454b 100644 --- a/lib/sockopt.c +++ b/lib/sockopt.c @@ -222,28 +222,7 @@ setsockopt_ipv4_multicast(int sock, unsigned int mcast_addr, unsigned int ifindex) { -#ifdef HAVE_RFC3678 - struct group_req gr; - struct sockaddr_in *si; - int ret; - memset (&gr, 0, sizeof(gr)); - si = (struct sockaddr_in *)&gr.gr_group; - gr.gr_interface = ifindex; - si->sin_family = AF_INET; -#ifdef HAVE_STRUCT_SOCKADDR_IN_SIN_LEN - si->sin_len = sizeof(struct sockaddr_in); -#endif /* HAVE_STRUCT_SOCKADDR_IN_SIN_LEN */ - si->sin_addr.s_addr = mcast_addr; - ret = setsockopt(sock, IPPROTO_IP, (optname == IP_ADD_MEMBERSHIP) ? - MCAST_JOIN_GROUP : MCAST_LEAVE_GROUP, (void *)&gr, sizeof(gr)); - if ((ret < 0) && (optname == IP_ADD_MEMBERSHIP) && (errno == EADDRINUSE)) - { - setsockopt(sock, IPPROTO_IP, MCAST_LEAVE_GROUP, (void *)&gr, sizeof(gr)); - ret = setsockopt(sock, IPPROTO_IP, MCAST_JOIN_GROUP, (void *)&gr, sizeof(gr)); - } - return ret; - -#elif defined(HAVE_STRUCT_IP_MREQN_IMR_IFINDEX) && !defined(__FreeBSD__) +#if defined(HAVE_STRUCT_IP_MREQN_IMR_IFINDEX) && !defined(__FreeBSD__) struct ip_mreqn mreqn; int ret; -- 1.7.10.4 _______________________________________________ Quagga-dev mailing list [email protected] https://lists.quagga.net/mailman/listinfo/quagga-dev
