Code Review
/
vpp.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
review
|
tree
raw
|
inline
| side by side
IGMP: handle (*,G) report with no source addresses
[vpp.git]
/
src
/
plugins
/
igmp
/
igmp_report.c
diff --git
a/src/plugins/igmp/igmp_report.c
b/src/plugins/igmp/igmp_report.c
index
ae8a933
..
e0c127d
100644
(file)
--- a/
src/plugins/igmp/igmp_report.c
+++ b/
src/plugins/igmp/igmp_report.c
@@
-32,15
+32,21
@@
igmp_group_mk_source_list (const igmp_membership_group_v3_t * r)
n = clib_net_to_host_u16 (r->n_src_addresses);
if (0 == n)
n = clib_net_to_host_u16 (r->n_src_addresses);
if (0 == n)
- return (NULL);
-
- vec_validate (srcs, n - 1);
- s = r->src_addresses;
-
- for (ii = 0; ii < n; ii++)
{
{
- srcs[ii].ip4 = *s;
- s++;
+ /* a (*,G) join has no source address specified */
+ vec_validate (srcs, 0);
+ srcs[0].ip4.as_u32 = 0;
+ }
+ else
+ {
+ vec_validate (srcs, n - 1);
+ s = r->src_addresses;
+
+ for (ii = 0; ii < n; ii++)
+ {
+ srcs[ii].ip4 = *s;
+ s++;
+ }
}
return (srcs);
}
return (srcs);