Home | History | Annotate | Download | only in net
      1 // Copyright 2015 The Go Authors. All rights reserved.
      2 // Use of this source code is governed by a BSD-style
      3 // license that can be found in the LICENSE file.
      4 
      5 // +build !nacl,!plan9,!windows
      6 
      7 package net
      8 
      9 // forceGoDNS forces the resolver configuration to use the pure Go resolver
     10 // and returns a fixup function to restore the old settings.
     11 func forceGoDNS() func() {
     12 	c := systemConf()
     13 	oldGo := c.netGo
     14 	oldCgo := c.netCgo
     15 	fixup := func() {
     16 		c.netGo = oldGo
     17 		c.netCgo = oldCgo
     18 	}
     19 	c.netGo = true
     20 	c.netCgo = false
     21 	return fixup
     22 }
     23 
     24 // forceCgoDNS forces the resolver configuration to use the cgo resolver
     25 // and returns a fixup function to restore the old settings.
     26 // (On non-Unix systems forceCgoDNS returns nil.)
     27 func forceCgoDNS() func() {
     28 	c := systemConf()
     29 	oldGo := c.netGo
     30 	oldCgo := c.netCgo
     31 	fixup := func() {
     32 		c.netGo = oldGo
     33 		c.netCgo = oldCgo
     34 	}
     35 	c.netGo = false
     36 	c.netCgo = true
     37 	return fixup
     38 }
     39