diff --git a/package/network/services/igmpproxy/patches/020-Silence-downstream-interface-igmp-messages.patch b/package/network/services/igmpproxy/patches/020-Silence-downstream-interface-igmp-messages.patch new file mode 100644 index 0000000000..ccd000c638 --- /dev/null +++ b/package/network/services/igmpproxy/patches/020-Silence-downstream-interface-igmp-messages.patch @@ -0,0 +1,19 @@ +--- a/src/igmp.c ++++ b/src/igmp.c +@@ -139,8 +139,14 @@ + return; + } + else if(!isAdressValidForIf(checkVIF, src)) { +- my_log(LOG_WARNING, 0, "The source address %s for group %s, is not in any valid net for upstream VIF.", +- inetFmt(src, s1), inetFmt(dst, s2)); ++ struct IfDesc *downVIF = getIfByAddress(src); ++ if (downVIF && downVIF->state & IF_STATE_DOWNSTREAM) { ++ my_log(LOG_NOTICE, 0, "The source address %s for group %s is from downstream VIF. Ignoring.", ++ inetFmt(src, s1), inetFmt(dst, s2)); ++ } else { ++ my_log(LOG_WARNING, 0, "The source address %s for group %s, is not in any valid net for upstream VIF.", ++ inetFmt(src, s1), inetFmt(dst, s2)); ++ } + return; + } +