diff options
| author | vivek <vivek@cumulusnetworks.com> | 2016-06-06 08:43:54 -0700 |
|---|---|---|
| committer | vivek <vivek@cumulusnetworks.com> | 2016-06-06 08:43:54 -0700 |
| commit | 5b05494f8c42d06d6ddaf200f34beabbd91ba524 (patch) | |
| tree | 0ebf6691bd24fcdc443219a0ded3bf8b90e4fb56 /pimd/pim_igmpv3.c | |
| parent | baa376fc1ccc3879fb602d4f5c248f4ebb315d11 (diff) | |
| parent | 915c13b39502c166cd129959d234e172c2a137db (diff) | |
Merge branch 'cmaster-next' of ssh://stash.cumulusnetworks.com:7999/quag/quagga into cmaster-next
Diffstat (limited to 'pimd/pim_igmpv3.c')
| -rw-r--r-- | pimd/pim_igmpv3.c | 51 |
1 files changed, 21 insertions, 30 deletions
diff --git a/pimd/pim_igmpv3.c b/pimd/pim_igmpv3.c index 3657f2f946..8a32a32729 100644 --- a/pimd/pim_igmpv3.c +++ b/pimd/pim_igmpv3.c @@ -477,9 +477,9 @@ struct igmp_source *igmp_find_source_by_addr(struct igmp_group *group, return 0; } -static struct igmp_source *source_new(struct igmp_group *group, - struct in_addr src_addr, - const char *ifname) +struct igmp_source * +source_new (struct igmp_group *group, + struct in_addr src_addr) { struct igmp_source *src; @@ -491,7 +491,7 @@ static struct igmp_source *source_new(struct igmp_group *group, zlog_debug("Creating new IGMP source %s for group %s on socket %d interface %s", source_str, group_str, group->group_igmp_sock->fd, - ifname); + group->group_igmp_sock->interface->name); } src = XMALLOC(MTYPE_PIM_IGMP_GROUP_SOURCE, sizeof(*src)); @@ -501,13 +501,13 @@ static struct igmp_source *source_new(struct igmp_group *group, return 0; /* error, not found, could not create */ } - src->t_source_timer = 0; + src->t_source_timer = NULL; src->source_group = group; /* back pointer */ src->source_addr = src_addr; src->source_creation = pim_time_monotonic_sec(); src->source_flags = 0; src->source_query_retransmit_count = 0; - src->source_channel_oil = 0; + src->source_channel_oil = NULL; listnode_add(group->group_source_list, src); @@ -521,8 +521,7 @@ static struct igmp_source *source_new(struct igmp_group *group, static struct igmp_source *add_source_by_addr(struct igmp_sock *igmp, struct igmp_group *group, - struct in_addr src_addr, - const char *ifname) + struct in_addr src_addr) { struct igmp_source *src; @@ -531,7 +530,7 @@ static struct igmp_source *add_source_by_addr(struct igmp_sock *igmp, return src; } - src = source_new(group, src_addr, ifname); + src = source_new(group, src_addr); if (!src) { return 0; } @@ -543,12 +542,11 @@ static void allow(struct igmp_sock *igmp, struct in_addr from, struct in_addr group_addr, int num_sources, struct in_addr *sources) { - struct interface *ifp = igmp->interface; struct igmp_group *group; int i; /* non-existant group is created as INCLUDE {empty} */ - group = igmp_add_group_by_addr(igmp, group_addr, ifp->name); + group = igmp_add_group_by_addr(igmp, group_addr); if (!group) { return; } @@ -560,7 +558,7 @@ static void allow(struct igmp_sock *igmp, struct in_addr from, src_addr = sources + i; - source = add_source_by_addr(igmp, group, *src_addr, ifp->name); + source = add_source_by_addr(igmp, group, *src_addr); if (!source) { continue; } @@ -616,8 +614,7 @@ static void isex_excl(struct igmp_group *group, } else { /* E.4: if not found, create source with timer=GMI: (A-X-Y) */ - source = source_new(group, *src_addr, - group->group_igmp_sock->interface->name); + source = source_new(group, *src_addr); if (!source) { /* ugh, internal malloc failure, skip source */ continue; @@ -659,8 +656,7 @@ static void isex_incl(struct igmp_group *group, } else { /* I.4: if not found, create source with timer=0 (B-A) */ - source = source_new(group, *src_addr, - group->group_igmp_sock->interface->name); + source = source_new(group, *src_addr); if (!source) { /* ugh, internal malloc failure, skip source */ continue; @@ -691,7 +687,7 @@ void igmpv3_report_isex(struct igmp_sock *igmp, struct in_addr from, ifp, from, group_addr, num_sources, sources); /* non-existant group is created as INCLUDE {empty} */ - group = igmp_add_group_by_addr(igmp, group_addr, ifp->name); + group = igmp_add_group_by_addr(igmp, group_addr); if (!group) { return; } @@ -737,8 +733,7 @@ static void toin_incl(struct igmp_group *group, } else { /* If not found, create new source */ - source = source_new(group, *src_addr, - group->group_igmp_sock->interface->name); + source = source_new(group, *src_addr); if (!source) { /* ugh, internal malloc failure, skip source */ continue; @@ -783,8 +778,7 @@ static void toin_excl(struct igmp_group *group, } else { /* If not found, create new source */ - source = source_new(group, *src_addr, - group->group_igmp_sock->interface->name); + source = source_new(group, *src_addr); if (!source) { /* ugh, internal malloc failure, skip source */ continue; @@ -815,7 +809,7 @@ void igmpv3_report_toin(struct igmp_sock *igmp, struct in_addr from, ifp, from, group_addr, num_sources, sources); /* non-existant group is created as INCLUDE {empty} */ - group = igmp_add_group_by_addr(igmp, group_addr, ifp->name); + group = igmp_add_group_by_addr(igmp, group_addr); if (!group) { return; } @@ -862,8 +856,7 @@ static void toex_incl(struct igmp_group *group, } else { /* If source not found, create source with timer=0: (B-A)=0 */ - source = source_new(group, *src_addr, - group->group_igmp_sock->interface->name); + source = source_new(group, *src_addr); if (!source) { /* ugh, internal malloc failure, skip source */ continue; @@ -916,8 +909,7 @@ static void toex_excl(struct igmp_group *group, else { /* if not found, create source with Group Timer: (A-X-Y)=Group Timer */ long group_timer_msec; - source = source_new(group, *src_addr, - group->group_igmp_sock->interface->name); + source = source_new(group, *src_addr); if (!source) { /* ugh, internal malloc failure, skip source */ continue; @@ -967,7 +959,7 @@ void igmpv3_report_toex(struct igmp_sock *igmp, struct in_addr from, ifp, from, group_addr, num_sources, sources); /* non-existant group is created as INCLUDE {empty} */ - group = igmp_add_group_by_addr(igmp, group_addr, ifp->name); + group = igmp_add_group_by_addr(igmp, group_addr); if (!group) { return; } @@ -1421,8 +1413,7 @@ static void block_excl(struct igmp_group *group, if (!source) { /* 3: if not found, create source with Group Timer: (A-X-Y)=Group Timer */ long group_timer_msec; - source = source_new(group, *src_addr, - group->group_igmp_sock->interface->name); + source = source_new(group, *src_addr); if (!source) { /* ugh, internal malloc failure, skip source */ continue; @@ -1489,7 +1480,7 @@ void igmpv3_report_block(struct igmp_sock *igmp, struct in_addr from, ifp, from, group_addr, num_sources, sources); /* non-existant group is created as INCLUDE {empty} */ - group = igmp_add_group_by_addr(igmp, group_addr, ifp->name); + group = igmp_add_group_by_addr(igmp, group_addr); if (!group) { return; } |
