• David L Stevens's avatar
    [IPV4]: Fix multiple bugs in IGMPv3 · ad12583f
    David L Stevens authored
    1) fix "mld_marksources()" to
            a) send nothing when all queried sources are excluded
            b) send full exclude report when source queried sources are
                    not excluded
            c) don't schedule a timer when there's nothing to report
    
    2) fix "add_grec()" to send empty-source records when it should
            The original check doesn't account for a non-empty source
            list with all sources inactive; the new code keeps that
            short-circuit case, and also generates the group header
            with an empty list if needed.
    
    3) fix mca_crcount decrement to be after add_grec(), which needs
            its original value
    
    4) add/remove delete records and prevent current advertisements
            when an exclude-mode filter moves from "active" to "inactive"
            or vice versa based on new filter additions.
    
            Items 1-3 are just IPv4 versions of the IPv6 bugs found
    by Yan Zheng and fixed earlier. Item #4 is a related bug that
    affects exclude-mode change records only (but not queries) and
    also occurs in IPv6 (IPv6 version coming soon).
    Signed-off-by: default avatarDavid L Stevens <dlstevens@us.ibm.com>
    Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
    ad12583f
igmp.c 61.1 KB