2021-09-21 15:12:48 +00:00
|
|
|
package wireguard
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
|
|
|
|
|
|
|
|
|
"github.com/qdm12/gluetun/internal/netlink"
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func (w *Wireguard) isIPv6Supported() (supported bool, err error) {
|
|
|
|
|
links, err := w.netlink.LinkList()
|
|
|
|
|
if err != nil {
|
2022-02-20 02:58:16 +00:00
|
|
|
return false, fmt.Errorf("cannot list links: %w", err)
|
2021-09-21 15:12:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
for _, link := range links {
|
|
|
|
|
routes, err := w.netlink.RouteList(link, netlink.FAMILY_V6)
|
|
|
|
|
if err != nil {
|
2022-02-20 02:58:16 +00:00
|
|
|
return false, fmt.Errorf("cannot list routes: %w", err)
|
2021-09-21 15:12:48 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if len(routes) > 0 {
|
|
|
|
|
return true, nil
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return false, nil
|
|
|
|
|
}
|