• Olivier Gayot's avatar
    Fix rev-server with /32 prefix. · 916959c1
    Olivier Gayot authored
    [ excerpt from the man page ]
    The rev-server directive provides a syntactic sugar to make specifying
    address-to-name queries easier. For example
    --rev-server=1.2.3.0/24,192.168.0.1 is exactly equivalent to
    --server=/3.2.1.in-addr.arpa/192.168.0.1
    
    It is not mentioned in the man page but the only prefixes that the
    directive properly handles when dealing with IPv4 are /8, /16 and /24.
    Specifying anything else as the same effect as specifying /16.
    
    It is not a big deal for subnets on non-octet boundaries since they
    cannot be represented using a single in-addr.arpa address. However, it
    is unconvenient for /32 prefix while the analogous server directive
    behaves as expected. E.g. the following server directive work
    as expected:
    
        server=/42.10.168.192.in-addr.arpa/1.2.3.4
    
    but the following does not:
    
        rev-server=192.168.10.42/32,1.2.3.4
    
    and, in practice, the later behaves the same as:
    
        server=/168.192.in-addr.arpa/1.2.3.4
    
    This strange behaviour is fixed by accepting /32 CIDR prefixes as a
    valid value. Any other value will still be considered the same as /16.
    916959c1
option.c 127 KB