Don't expose DefaultClient

This commit is contained in:
adnano 2020-11-01 14:27:49 -05:00
parent c3fc9a4e9f
commit b57ea57fec

View File

@ -22,31 +22,25 @@ var (
ErrInputRequired = errors.New("gemini: input required") ErrInputRequired = errors.New("gemini: input required")
) )
// DefaultClient is the default client. It is used by Get and Do. // defaultClient is the default client. It is used by Get and Do.
// var defaultClient Client
// On the first request, DefaultClient loads the default list of known hosts.
var DefaultClient Client
// Get performs a Gemini request for the given url. // Get performs a Gemini request for the given url.
//
// Get is a wrapper around DefaultClient.Get.
func Get(url string) (*Response, error) { func Get(url string) (*Response, error) {
setupDefaultClientOnce() setupDefaultClientOnce()
return DefaultClient.Get(url) return defaultClient.Get(url)
} }
// Do performs a Gemini request and returns a Gemini response. // Do performs a Gemini request and returns a Gemini response.
//
// Do is a wrapper around DefaultClient.Do.
func Do(req *Request) (*Response, error) { func Do(req *Request) (*Response, error) {
setupDefaultClientOnce() setupDefaultClientOnce()
return DefaultClient.Do(req) return defaultClient.Do(req)
} }
var defaultClientOnce sync.Once var defaultClientOnce sync.Once
func setupDefaultClientOnce() { func setupDefaultClientOnce() {
defaultClientOnce.Do(func() { defaultClientOnce.Do(func() {
DefaultClient.KnownHosts.LoadDefault() defaultClient.KnownHosts.LoadDefault()
}) })
} }