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 mngTmpAddr []netip.Addr
|
||||||
var noPrefixRouteAddr []netip.Addr
|
var noPrefixRouteAddr []netip.Addr
|
||||||
|
var dhcpv6Addr []netip.Addr
|
||||||
var tmpAddr []netip.Addr
|
var tmpAddr []netip.Addr
|
||||||
|
|
||||||
for _, a := range addrs {
|
for _, a := range addrs {
|
||||||
|
@ -55,11 +56,6 @@ func GetOutboundIPv6() ([]netip.Addr, error) {
|
||||||
continue
|
continue
|
||||||
}
|
}
|
||||||
|
|
||||||
//Filter generated privacy addresses directly
|
|
||||||
if onesCount, _ := a.Mask.Size(); onesCount == 128 {
|
|
||||||
continue
|
|
||||||
}
|
|
||||||
|
|
||||||
//Filter
|
//Filter
|
||||||
if (a.Flags & FlagDeprecated) > 0 {
|
if (a.Flags & FlagDeprecated) > 0 {
|
||||||
continue
|
continue
|
||||||
|
@ -67,6 +63,13 @@ func GetOutboundIPv6() ([]netip.Addr, error) {
|
||||||
if (a.Flags & FlagTemporary) > 0 {
|
if (a.Flags & FlagTemporary) > 0 {
|
||||||
continue
|
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 {
|
if (a.Flags & FlagManageTempAddress) > 0 {
|
||||||
mngTmpAddr = append(mngTmpAddr, netip.MustParseAddr(a.IP.String()))
|
mngTmpAddr = append(mngTmpAddr, netip.MustParseAddr(a.IP.String()))
|
||||||
}
|
}
|
||||||
|
@ -81,6 +84,8 @@ func GetOutboundIPv6() ([]netip.Addr, error) {
|
||||||
addresses = append(addresses, mngTmpAddr...)
|
addresses = append(addresses, mngTmpAddr...)
|
||||||
} else if len(noPrefixRouteAddr) > 0 {
|
} else if len(noPrefixRouteAddr) > 0 {
|
||||||
addresses = append(addresses, noPrefixRouteAddr...)
|
addresses = append(addresses, noPrefixRouteAddr...)
|
||||||
|
} else if len(dhcpv6Addr) > 0 {
|
||||||
|
addresses = append(addresses, dhcpv6Addr...)
|
||||||
} else {
|
} else {
|
||||||
addresses = append(addresses, tmpAddr...)
|
addresses = append(addresses, tmpAddr...)
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in a new issue