radvd: switch to netip package for mdlayher/ndp
This commit is contained in:
parent
2014da4ca3
commit
ef7089dc61
2
go.mod
2
go.mod
@ -18,7 +18,7 @@ require (
|
||||
github.com/krolaw/dhcp4 v0.0.0-20190909130307-a50d88189771
|
||||
github.com/libdns/cloudflare v0.1.0
|
||||
github.com/libdns/libdns v0.2.0
|
||||
github.com/mdlayher/ndp v0.0.0-20200602162440-17ab9e3e5567
|
||||
github.com/mdlayher/ndp v0.10.0
|
||||
github.com/mdlayher/netlink v1.6.0 // indirect
|
||||
github.com/mdlayher/packet v1.0.0
|
||||
github.com/miekg/dns v1.1.42
|
||||
|
12
go.sum
12
go.sum
@ -224,8 +224,16 @@ github.com/mdlayher/ethernet v0.0.0-20190606142754-0394541c37b7/go.mod h1:U6ZQob
|
||||
github.com/mdlayher/ethtool v0.0.0-20210210192532-2b88debcdd43/go.mod h1:+t7E0lkKfbBsebllff1xdTmyJt8lH37niI6kwFk9OTo=
|
||||
github.com/mdlayher/genetlink v1.0.0 h1:OoHN1OdyEIkScEmRgxLEe2M9U8ClMytqA5niynLtfj0=
|
||||
github.com/mdlayher/genetlink v1.0.0/go.mod h1:0rJ0h4itni50A86M2kHcgS85ttZazNt7a8H2a2cw0Gc=
|
||||
github.com/mdlayher/ndp v0.0.0-20200602162440-17ab9e3e5567 h1:x+xs91ZJ+lr0C6sedWeREvck4uGCt+AA1kKXwsHB6jI=
|
||||
github.com/mdlayher/ndp v0.0.0-20200602162440-17ab9e3e5567/go.mod h1:32w/5dDZWVSEOxyniAgKK4d7dHTuO6TCxWmUznQe3f8=
|
||||
github.com/mdlayher/ndp v0.0.0-20210831201139-f982b8766fb5 h1:w1Lne6x7QKrrkAviNvSd0M3NYblM1n76Pv2FsGkNzzI=
|
||||
github.com/mdlayher/ndp v0.0.0-20210831201139-f982b8766fb5/go.mod h1:32w/5dDZWVSEOxyniAgKK4d7dHTuO6TCxWmUznQe3f8=
|
||||
github.com/mdlayher/ndp v0.0.0-20220213140253-2a2b53cd2045 h1:cLcATbaiT+9tZwgtOqN1Duhp5bBkHLBxKlrXCf6srtI=
|
||||
github.com/mdlayher/ndp v0.0.0-20220213140253-2a2b53cd2045/go.mod h1:32w/5dDZWVSEOxyniAgKK4d7dHTuO6TCxWmUznQe3f8=
|
||||
github.com/mdlayher/ndp v0.0.0-20220304194648-de594d7bc183 h1:s+zRraldOwsr9RR1N6Q37xjIkEBO64Wk+mniHNimXxE=
|
||||
github.com/mdlayher/ndp v0.0.0-20220304194648-de594d7bc183/go.mod h1:32w/5dDZWVSEOxyniAgKK4d7dHTuO6TCxWmUznQe3f8=
|
||||
github.com/mdlayher/ndp v0.9.0 h1:2ARcMhqzN+CloJYcW/yeKRm4JCwf7lc1cgYpUSFJYFQ=
|
||||
github.com/mdlayher/ndp v0.9.0/go.mod h1:Uv6IWvgvqirNUu2N3ZXJEB86xu6foyUsG0NrClSSfek=
|
||||
github.com/mdlayher/ndp v0.10.0 h1:Zdwol2bq1EHY8xSnejIYkq6LEj7dLjLymJX0o/2tjGw=
|
||||
github.com/mdlayher/ndp v0.10.0/go.mod h1:Uv6IWvgvqirNUu2N3ZXJEB86xu6foyUsG0NrClSSfek=
|
||||
github.com/mdlayher/netlink v0.0.0-20190409211403-11939a169225/go.mod h1:eQB3mZE4aiYnlUsyGGCOpPETfdQq4Jhsgf1fk3cwQaA=
|
||||
github.com/mdlayher/netlink v0.0.0-20191009155606-de872b0d824b/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
|
||||
github.com/mdlayher/netlink v1.0.0/go.mod h1:KxeJAFOFLG6AjpyDkQ/iIhxygIUKD+vcwqcnu43w/+M=
|
||||
|
@ -18,6 +18,7 @@ package radvd
|
||||
import (
|
||||
"log"
|
||||
"net"
|
||||
"net/netip"
|
||||
"sync"
|
||||
"time"
|
||||
|
||||
@ -144,21 +145,21 @@ func (s *Server) sendAdvertisement(addr net.Addr) error {
|
||||
if err != nil {
|
||||
return err
|
||||
}
|
||||
var linkLocal net.IP
|
||||
var linkLocal netip.Addr
|
||||
for _, addr := range addrs {
|
||||
ipnet, ok := addr.(*net.IPNet)
|
||||
if !ok {
|
||||
continue
|
||||
}
|
||||
if ipv6LinkLocal.Contains(ipnet.IP) {
|
||||
linkLocal = ipnet.IP
|
||||
linkLocal, _ = netip.AddrFromSlice(ipnet.IP)
|
||||
break
|
||||
}
|
||||
}
|
||||
if !linkLocal.Equal(net.IPv6zero) {
|
||||
if linkLocal.IsValid() && !linkLocal.IsUnspecified() {
|
||||
options = append(options, &ndp.RecursiveDNSServer{
|
||||
Lifetime: 30 * time.Minute,
|
||||
Servers: []net.IP{linkLocal},
|
||||
Servers: []netip.Addr{linkLocal},
|
||||
})
|
||||
}
|
||||
}
|
||||
@ -170,13 +171,14 @@ func (s *Server) sendAdvertisement(addr net.Addr) error {
|
||||
ones = 64
|
||||
}
|
||||
|
||||
addr, _ := netip.AddrFromSlice(prefix.IP)
|
||||
options = append(options, &ndp.PrefixInformation{
|
||||
PrefixLength: uint8(ones),
|
||||
OnLink: true,
|
||||
AutonomousAddressConfiguration: true,
|
||||
ValidLifetime: 2 * time.Hour,
|
||||
PreferredLifetime: 30 * time.Minute,
|
||||
Prefix: prefix.IP,
|
||||
Prefix: addr,
|
||||
})
|
||||
}
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user