github.com/aavshr/aws-sdk-go@v1.41.3/private/protocol/eventstream/eventstreamtest/setup_server_1_10.go (about)

     1  //go:build go1.15
     2  // +build go1.15
     3  
     4  package eventstreamtest
     5  
     6  import (
     7  	"crypto/tls"
     8  	"net/http"
     9  	"net/http/httptest"
    10  
    11  	"golang.org/x/net/http2"
    12  )
    13  
    14  // /x/net/http2 is only available for the latest two versions of Go. Any Go
    15  // version older than that cannot use the utility to configure the http2
    16  // server.
    17  func setupServer(server *httptest.Server, useH2 bool) *http.Client {
    18  	server.Config.TLSConfig = &tls.Config{
    19  		InsecureSkipVerify: true,
    20  	}
    21  
    22  	clientTrans := &http.Transport{
    23  		TLSClientConfig: &tls.Config{
    24  			InsecureSkipVerify: true,
    25  		},
    26  	}
    27  
    28  	if useH2 {
    29  		http2.ConfigureServer(server.Config, nil)
    30  		http2.ConfigureTransport(clientTrans)
    31  		server.Config.TLSConfig.NextProtos = []string{http2.NextProtoTLS}
    32  		clientTrans.TLSClientConfig.NextProtos = []string{http2.NextProtoTLS}
    33  	}
    34  	server.TLS = server.Config.TLSConfig
    35  
    36  	server.StartTLS()
    37  
    38  	return &http.Client{
    39  		Transport: clientTrans,
    40  	}
    41  }