2021-08-22 14:58:39 -07:00
|
|
|
package wireguard
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"fmt"
|
2023-04-27 13:41:05 +00:00
|
|
|
"net/netip"
|
2021-08-22 14:58:39 -07:00
|
|
|
|
2021-08-23 21:12:28 +00:00
|
|
|
"github.com/qdm12/gluetun/internal/netlink"
|
2021-08-22 14:58:39 -07:00
|
|
|
)
|
|
|
|
|
|
|
|
|
|
func (w *Wireguard) addAddresses(link netlink.Link,
|
2023-04-27 13:41:05 +00:00
|
|
|
addresses []netip.Prefix) (err error) {
|
2021-08-22 14:58:39 -07:00
|
|
|
for _, ipNet := range addresses {
|
2023-04-27 13:41:05 +00:00
|
|
|
if !*w.settings.IPv6 && ipNet.Addr().Is6() {
|
2022-10-17 06:31:32 +00:00
|
|
|
continue
|
|
|
|
|
}
|
|
|
|
|
|
2023-05-29 06:44:58 +00:00
|
|
|
address := netlink.Addr{
|
|
|
|
|
Network: ipNet,
|
2021-08-22 14:58:39 -07:00
|
|
|
}
|
|
|
|
|
|
2023-05-28 10:22:39 +00:00
|
|
|
err = w.netlink.AddrReplace(link, address)
|
2021-08-22 14:58:39 -07:00
|
|
|
if err != nil {
|
|
|
|
|
return fmt.Errorf("%w: when adding address %s to link %s",
|
2023-05-29 06:44:58 +00:00
|
|
|
err, address, link.Name)
|
2021-08-22 14:58:39 -07:00
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
return nil
|
|
|
|
|
}
|