//go:build darwin
package awgserver
import (
"fmt"
"log/slog"
"net"
"os/exec"
)
func setTUNAddress(tunName, address string, logger *slog.Logger) error {
ip, _, err := net.ParseCIDR(address)
if err != nil {
return fmt.Errorf("parse CIDR: %w", err)
}
cmd := exec.Command("ifconfig", tunName, "inet", ip.String(), ip.String(), "up")
if out, err := cmd.CombinedOutput(); err != nil {
return fmt.Errorf("ifconfig: %s: %w", string(out), err)
}
logger.Info("TUN configured.", "name", tunName, "address", address)
return nil
}