diff options
author | Everton Marques <everton.marques@gmail.com> | 2009-09-30 17:10:11 -0300 |
---|---|---|
committer | Everton Marques <everton.marques@gmail.com> | 2009-10-02 10:44:33 -0300 |
commit | 9bb4f5dff9a1cac3182b9d93ee2ada489c785fc3 (patch) | |
tree | 4404d9b12163c95a5d2255bd5c7ec58ff435cfce /pimd/pim_sock.c | |
parent | c125451617595a4b72d527f2c77f01037107cf0b (diff) | |
download | quagga-9bb4f5dff9a1cac3182b9d93ee2ada489c785fc3.tar.bz2 quagga-9bb4f5dff9a1cac3182b9d93ee2ada489c785fc3.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]; |