@@ -22,7 +22,6 @@ import (
2222 "fmt"
2323 "io"
2424 "log/slog"
25- "net"
2625 "net/http"
2726 "net/textproto"
2827 "net/url"
@@ -31,7 +30,6 @@ import (
3130 "connectrpc.com/connect"
3231 studiov1alpha1 "github.com/bufbuild/buf/private/gen/proto/go/buf/alpha/studio/v1alpha1"
3332 "github.com/bufbuild/buf/private/pkg/protoencoding"
34- "golang.org/x/net/http2"
3533 "google.golang.org/protobuf/proto"
3634)
3735
@@ -54,8 +52,7 @@ type plainPostHandler struct {
5452 Logger * slog.Logger
5553 MaxMessageSizeBytes int64
5654 B64Encoding * base64.Encoding
57- TLSClient * http.Client
58- H2CClient * http.Client
55+ Client * http.Client
5956 DisallowedHeaders map [string ]struct {}
6057 ForwardHeaders map [string ]string
6158}
@@ -74,25 +71,23 @@ func newPlainPostHandler(
7471 for k , v := range forwardHeaders {
7572 canonicalForwardHeaders [textproto .CanonicalMIMEHeaderKey (k )] = v
7673 }
74+ protocols := new (http.Protocols )
75+ protocols .SetHTTP1 (true )
76+ protocols .SetHTTP2 (true )
77+ protocols .SetUnencryptedHTTP2 (true )
78+ transport := & http.Transport {
79+ TLSClientConfig : tlsClientConfig ,
80+ Protocols : protocols ,
81+ }
7782 return & plainPostHandler {
7883 B64Encoding : base64 .StdEncoding ,
7984 DisallowedHeaders : canonicalDisallowedHeaders ,
8085 ForwardHeaders : canonicalForwardHeaders ,
81- H2CClient : & http.Client {
82- Transport : & http2.Transport {
83- AllowHTTP : true ,
84- DialTLS : func (netw , addr string , config * tls.Config ) (net.Conn , error ) {
85- return net .Dial (netw , addr )
86- },
87- },
86+ Client : & http.Client {
87+ Transport : transport ,
8888 },
8989 Logger : logger ,
9090 MaxMessageSizeBytes : MaxMessageSizeBytesDefault ,
91- TLSClient : & http.Client {
92- Transport : & http2.Transport {
93- TLSClientConfig : tlsClientConfig ,
94- },
95- },
9691 }
9792}
9893
@@ -150,10 +145,8 @@ func (i *plainPostHandler) ServeHTTP(w http.ResponseWriter, r *http.Request) {
150145 }
151146 var httpClient * http.Client
152147 switch targetURL .Scheme {
153- case "http" :
154- httpClient = i .H2CClient
155- case "https" :
156- httpClient = i .TLSClient
148+ case "http" , "https" :
149+ httpClient = i .Client
157150 default :
158151 http .Error (w , fmt .Sprintf ("must specify http or https url scheme, got %q" , targetURL .Scheme ), http .StatusBadRequest )
159152 return
0 commit comments