diff options
author | Everton Marques <everton.marques@gmail.com> | 2009-09-30 17:10:11 -0300 |
---|---|---|
committer | David Lamparter <equinox@opensourcerouting.org> | 2015-02-04 06:07:51 +0100 |
commit | 40765fe45f39767ad545ca693fb5985fa90ce4ca (patch) | |
tree | 8a21efb5483af7531c396e1cd26c8983d4170e34 /pimd/pim_sock.c | |
parent | 465185300b26042e1813d53f179616a17154d37a (diff) | |
download | quagga-40765fe45f39767ad545ca693fb5985fa90ce4ca.tar.bz2 quagga-40765fe45f39767ad545ca693fb5985fa90ce4ca.tar.xz |
[pim] Command line tool to test IGMPv3 join.
Diffstat (limited to 'pimd/pim_sock.c')
-rw-r--r-- | pimd/pim_sock.c | 30 |
1 files changed, 2 insertions, 28 deletions
diff --git a/pimd/pim_sock.c b/pimd/pim_sock.c index 00fc8eda..c908e8b8 100644 --- a/pimd/pim_sock.c +++ b/pimd/pim_sock.c @@ -38,20 +38,11 @@ #include "pimd.h" #include "pim_sock.h" #include "pim_str.h" +#include "pim_igmp_join.h" /* GLOBAL VARS */ extern struct zebra_privs_t pimd_privs; -#ifndef MCAST_JOIN_SOURCE_GROUP -#define MCAST_JOIN_SOURCE_GROUP 46 -struct group_source_req -{ - uint32_t gsr_interface; - struct sockaddr_storage gsr_group; - struct sockaddr_storage gsr_source; -}; -#endif - int pim_socket_raw(int protocol) { int fd; @@ -242,24 +233,7 @@ int pim_socket_join_source(int fd, int ifindex, struct in_addr source_addr, const char *ifname) { - struct group_source_req req; - struct sockaddr_in *group_sa = (struct sockaddr_in *) &req.gsr_group; - struct sockaddr_in *source_sa = (struct sockaddr_in *) &req.gsr_source; - - memset(group_sa, 0, sizeof(*group_sa)); - group_sa->sin_family = AF_INET; - group_sa->sin_addr = group_addr; - group_sa->sin_port = htons(0); - - memset(source_sa, 0, sizeof(*source_sa)); - source_sa->sin_family = AF_INET; - source_sa->sin_addr = source_addr; - source_sa->sin_port = htons(0); - - req.gsr_interface = ifindex; - - if (setsockopt(fd, SOL_IP, MCAST_JOIN_SOURCE_GROUP, - &req, sizeof(req))) { + if (pim_igmp_join_source(fd, ifindex, group_addr, source_addr)) { int e = errno; char group_str[100]; char source_str[100]; |