mirror of
https://github.com/k3s-io/kubernetes.git
synced 2025-07-23 19:56:01 +00:00
Don't clone headers twice
CloneRequest() clones headers too
This commit is contained in:
parent
c8b3b293c0
commit
6d74474972
@ -18,13 +18,11 @@ package spdy
|
|||||||
|
|
||||||
import (
|
import (
|
||||||
"bufio"
|
"bufio"
|
||||||
"bytes"
|
|
||||||
"context"
|
"context"
|
||||||
"crypto/tls"
|
"crypto/tls"
|
||||||
"encoding/base64"
|
"encoding/base64"
|
||||||
"errors"
|
"errors"
|
||||||
"fmt"
|
"fmt"
|
||||||
"io"
|
|
||||||
"io/ioutil"
|
"io/ioutil"
|
||||||
"net"
|
"net"
|
||||||
"net/http"
|
"net/http"
|
||||||
@ -314,29 +312,16 @@ func (s *SpdyRoundTripper) proxyAuth(proxyURL *url.URL) string {
|
|||||||
// clients may call SpdyRoundTripper.Connection() to retrieve the upgraded
|
// clients may call SpdyRoundTripper.Connection() to retrieve the upgraded
|
||||||
// connection.
|
// connection.
|
||||||
func (s *SpdyRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
|
func (s *SpdyRoundTripper) RoundTrip(req *http.Request) (*http.Response, error) {
|
||||||
header := utilnet.CloneHeader(req.Header)
|
req = utilnet.CloneRequest(req)
|
||||||
header.Add(httpstream.HeaderConnection, httpstream.HeaderUpgrade)
|
req.Header.Add(httpstream.HeaderConnection, httpstream.HeaderUpgrade)
|
||||||
header.Add(httpstream.HeaderUpgrade, HeaderSpdy31)
|
req.Header.Add(httpstream.HeaderUpgrade, HeaderSpdy31)
|
||||||
|
|
||||||
var (
|
conn, err := s.Dial(req)
|
||||||
conn net.Conn
|
|
||||||
rawResponse []byte
|
|
||||||
err error
|
|
||||||
)
|
|
||||||
|
|
||||||
clone := utilnet.CloneRequest(req)
|
|
||||||
clone.Header = header
|
|
||||||
conn, err = s.Dial(clone)
|
|
||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, err
|
return nil, err
|
||||||
}
|
}
|
||||||
|
|
||||||
responseReader := bufio.NewReader(
|
responseReader := bufio.NewReader(conn)
|
||||||
io.MultiReader(
|
|
||||||
bytes.NewBuffer(rawResponse),
|
|
||||||
conn,
|
|
||||||
),
|
|
||||||
)
|
|
||||||
|
|
||||||
resp, err := http.ReadResponse(responseReader, nil)
|
resp, err := http.ReadResponse(responseReader, nil)
|
||||||
if err != nil {
|
if err != nil {
|
||||||
|
Loading…
Reference in New Issue
Block a user