mirror of
https://github.com/miekg/dns.git
synced 2025-08-18 07:26:58 +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]
|
||||
}
|
||||
needLength := e.SourceNetmask / 8
|
||||
if e.SourceNetmask%8 > 0 {
|
||||
needLength++
|
||||
}
|
||||
ip = ip[:needLength]
|
||||
b = append(b, ip...)
|
||||
case 2:
|
||||
if e.SourceNetmask > net.IPv6len*8 {
|
||||
@ -240,7 +245,11 @@ func (e *EDNS0_SUBNET) pack() ([]byte, error) {
|
||||
}
|
||||
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...)
|
||||
default:
|
||||
return nil, errors.New("dns: bad address family")
|
||||
|
Loading…
Reference in New Issue
Block a user