Add DHCPv6 addresses into address picking
This commit is contained in:
parent
22f06c48da
commit
e14de1d5d9
|
@ -46,6 +46,7 @@ func GetOutboundIPv6() ([]netip.Addr, error) {
|
|||
|
||||
var mngTmpAddr []netip.Addr
|
||||
var noPrefixRouteAddr []netip.Addr
|
||||
var dhcpv6Addr []netip.Addr
|
||||
var tmpAddr []netip.Addr
|
||||
|
||||
for _, a := range addrs {
|
||||
|
@ -55,11 +56,6 @@ func GetOutboundIPv6() ([]netip.Addr, error) {
|
|||
continue
|
||||
}
|
||||
|
||||
//Filter generated privacy addresses directly
|
||||
if onesCount, _ := a.Mask.Size(); onesCount == 128 {
|
||||
continue
|
||||
}
|
||||
|
||||
//Filter
|
||||
if (a.Flags & FlagDeprecated) > 0 {
|
||||
continue
|
||||
|
@ -67,6 +63,13 @@ func GetOutboundIPv6() ([]netip.Addr, error) {
|
|||
if (a.Flags & FlagTemporary) > 0 {
|
||||
continue
|
||||
}
|
||||
|
||||
//This is probably an address given by DHCPv6
|
||||
if onesCount, _ := a.Mask.Size(); onesCount == 128 {
|
||||
dhcpv6Addr = append(dhcpv6Addr, netip.MustParseAddr(a.IP.String()))
|
||||
continue
|
||||
}
|
||||
|
||||
if (a.Flags & FlagManageTempAddress) > 0 {
|
||||
mngTmpAddr = append(mngTmpAddr, netip.MustParseAddr(a.IP.String()))
|
||||
}
|
||||
|
@ -81,6 +84,8 @@ func GetOutboundIPv6() ([]netip.Addr, error) {
|
|||
addresses = append(addresses, mngTmpAddr...)
|
||||
} else if len(noPrefixRouteAddr) > 0 {
|
||||
addresses = append(addresses, noPrefixRouteAddr...)
|
||||
} else if len(dhcpv6Addr) > 0 {
|
||||
addresses = append(addresses, dhcpv6Addr...)
|
||||
} else {
|
||||
addresses = append(addresses, tmpAddr...)
|
||||
}
|
||||
|
|
Loading…
Reference in a new issue