mirror of
https://github.com/miekg/dns.git
synced 2025-08-18 23:41:00 +02:00
Merge pull request #39 from abh/edns-use-sourcenetmask
Use SourceNetmask to truncate IP addresses in EDNS-CLIENT-SUBNET packets
This commit is contained in:
commit
0c698b9463
11
edns.go
11
edns.go
@ -227,6 +227,11 @@ func (e *EDNS0_SUBNET) pack() ([]byte, error) {
|
|||||||
}
|
}
|
||||||
ip[i] = a[i]
|
ip[i] = a[i]
|
||||||
}
|
}
|
||||||
|
needLength := e.SourceNetmask / 8
|
||||||
|
if e.SourceNetmask%8 > 0 {
|
||||||
|
needLength++
|
||||||
|
}
|
||||||
|
ip = ip[:needLength]
|
||||||
b = append(b, ip...)
|
b = append(b, ip...)
|
||||||
case 2:
|
case 2:
|
||||||
if e.SourceNetmask > net.IPv6len*8 {
|
if e.SourceNetmask > net.IPv6len*8 {
|
||||||
@ -240,7 +245,11 @@ func (e *EDNS0_SUBNET) pack() ([]byte, error) {
|
|||||||
}
|
}
|
||||||
ip[i] = a[i]
|
ip[i] = a[i]
|
||||||
}
|
}
|
||||||
// chop off ip a SourceNetmask/8: ip = ip[:e.SourceNetmask/8] ?
|
needLength := e.SourceNetmask / 8
|
||||||
|
if e.SourceNetmask%8 > 0 {
|
||||||
|
needLength++
|
||||||
|
}
|
||||||
|
ip = ip[:needLength]
|
||||||
b = append(b, ip...)
|
b = append(b, ip...)
|
||||||
default:
|
default:
|
||||||
return nil, errors.New("dns: bad address family")
|
return nil, errors.New("dns: bad address family")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user