• Miek Gieben's avatar
    plugin/cache: Fix filtering (#4148) · 35b40a84
    Miek Gieben authored
    The filtering of DNSSEC records in the cache plugin was not done
    correctly. Also the change to introduced this bug didn't take into
    account that the cache - by virtue of differentiating between DNSSEC and
    no-DNSSEC - relied on not copying the data from the cache.
    
    This change copies and then filters the data and factors the filtering
    into a function that is used in two places (albeit with on ugly boolean
    parameters to prevent copying things twice).
    
    Add tests, do_test.go is moved to test/cache_test.go because the OPT
    handing is done outside of the cache plugin. The core server re-attaches
    the correct OPT when replying, so that makes for a better e2e test.
    
    Added small unit test for filterRRslice and an explicit test that asks
    for DNSSEC first and then plain, and vice versa to test cache behavior.
    
    Fixes: #4146
    Signed-off-by: default avatarMiek Gieben <miek@miek.nl>
    35b40a84
cache_test.go 13.9 KB