...

Source file src/golang.org/x/oauth2/internal/transport.go

Documentation: golang.org/x/oauth2/internal

     1  // Copyright 2014 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  package internal
     6  
     7  import (
     8  	"context"
     9  	"net/http"
    10  )
    11  
    12  // HTTPClient is the context key to use with golang.org/x/net/context's
    13  // WithValue function to associate an *http.Client value with a context.
    14  var HTTPClient ContextKey
    15  
    16  // ContextKey is just an empty struct. It exists so HTTPClient can be
    17  // an immutable public variable with a unique type. It's immutable
    18  // because nobody else can create a ContextKey, being unexported.
    19  type ContextKey struct{}
    20  
    21  func ContextClient(ctx context.Context) *http.Client {
    22  	if ctx != nil {
    23  		if hc, ok := ctx.Value(HTTPClient).(*http.Client); ok {
    24  			return hc
    25  		}
    26  	}
    27  	return http.DefaultClient
    28  }
    29  

View as plain text