@@ -73,7 +73,8 @@ func getFirstDNS(luid winipcfg.LUID) string {
7373}
7474
7575func getNameServersForInterface (luid winipcfg.LUID ) ([]string , error ) {
76- nameservers := make ([]string , 0 , 4 )
76+ nameserversV4 := make ([]string , 0 , 4 )
77+ nameserversV6 := make ([]string , 0 , 4 )
7778 nsAddrs , err := luid .DNS ()
7879 if err != nil {
7980 return nil , err
@@ -84,16 +85,25 @@ func getNameServersForInterface(luid winipcfg.LUID) ([]string, error) {
8485 isSystemDNSAltered = true
8586 }
8687 if server .IsValid () && server .String () != setMarkAddr && server .String () != dhcpMarkAddr {
87- nameservers = append (nameservers , server .String ())
88+ if server .Is4 () {
89+ nameserversV4 = append (nameserversV4 , server .String ())
90+ } else {
91+ nameserversV6 = append (nameserversV6 , server .String ())
92+ }
8893 }
8994 }
90- if isSystemDNSAltered && len (nameservers ) > 0 && nameservers [0 ] == "127.0.0.1" {
91- nameservers = nameservers [1 :]
95+ if isSystemDNSAltered && len (nameserversV4 ) > 0 && nameserversV4 [0 ] == "127.0.0.1" {
96+ nameserversV4 = nameserversV4 [1 :]
9297 }
9398
94- if len (nameservers ) == 0 {
95- log . Println ( "getNameServersForInterface: no nameservers found" )
99+ if len (nameserversV4 ) > 0 {
100+ return nameserversV4 , nil
96101 }
97102
98- return nameservers , nil
103+ if len (nameserversV6 ) > 0 {
104+ return nameserversV6 , nil
105+ }
106+
107+ log .Println ("getNameServersForInterface: no nameservers found" )
108+ return nil , nil
99109}
0 commit comments