From a7a2e69d36176699e6381b48860582e06e40fccd Mon Sep 17 00:00:00 2001 From: "Jason A. Donenfeld" Date: Tue, 4 Jun 2019 10:23:27 +0200 Subject: tunnel: don't fail on v6 family lookup unless using v6 Signed-off-by: Jason A. Donenfeld --- tunnel/ifaceconfig.go | 30 ++++++++++++++++-------------- 1 file changed, 16 insertions(+), 14 deletions(-) (limited to 'tunnel') diff --git a/tunnel/ifaceconfig.go b/tunnel/ifaceconfig.go index a64a469b..2cc90e79 100644 --- a/tunnel/ifaceconfig.go +++ b/tunnel/ifaceconfig.go @@ -163,21 +163,23 @@ func configureInterface(conf *conf.Config, tun *tun.NativeTun) error { } ipif, err = luid.IPInterface(windows.AF_INET6) - if err != nil { - return err - } - if foundDefault6 { - ipif.UseAutomaticMetric = false - ipif.Metric = 0 - } - if conf.Interface.MTU > 0 { - ipif.NLMTU = uint32(conf.Interface.MTU) - } - ipif.DadTransmits = 0 - ipif.RouterDiscoveryBehavior = winipcfg.RouterDiscoveryDisabled - err = ipif.Set() - if err != nil { + if err != nil && firstGateway6 != nil { + log.Printf("Is IPv6 disabled by Windows?") return err + } else if err == nil { // People seem to like to disable IPv6, so we make this non-fatal. + if foundDefault6 { + ipif.UseAutomaticMetric = false + ipif.Metric = 0 + } + if conf.Interface.MTU > 0 { + ipif.NLMTU = uint32(conf.Interface.MTU) + } + ipif.DadTransmits = 0 + ipif.RouterDiscoveryBehavior = winipcfg.RouterDiscoveryDisabled + err = ipif.Set() + if err != nil { + return err + } } err = luid.SetDNS(conf.Interface.DNS) -- cgit v1.2.3-59-g8ed1b