From a1a554a29dc7b54a98dceed3c23bad5615ff9467 Mon Sep 17 00:00:00 2001 From: cthuang Date: Wed, 18 Nov 2020 16:51:03 +0000 Subject: [PATCH] TUN-3559: Share response meta header with other packages --- connection/h2mux.go | 4 ++-- connection/h2mux_test.go | 8 ++++---- connection/header.go | 4 ++-- connection/http2_test.go | 6 +++--- 4 files changed, 11 insertions(+), 11 deletions(-) diff --git a/connection/h2mux.go b/connection/h2mux.go index 4f397b68..d3843123 100644 --- a/connection/h2mux.go +++ b/connection/h2mux.go @@ -207,14 +207,14 @@ type h2muxRespWriter struct { func (rp *h2muxRespWriter) WriteRespHeaders(resp *http.Response) error { headers := h2mux.H1ResponseToH2ResponseHeaders(resp) - headers = append(headers, h2mux.Header{Name: responseMetaHeaderField, Value: responseMetaHeaderOrigin}) + headers = append(headers, h2mux.Header{Name: ResponseMetaHeaderField, Value: responseMetaHeaderOrigin}) return rp.WriteHeaders(headers) } func (rp *h2muxRespWriter) WriteErrorResponse() { rp.WriteHeaders([]h2mux.Header{ {Name: ":status", Value: "502"}, - {Name: responseMetaHeaderField, Value: responseMetaHeaderCfd}, + {Name: ResponseMetaHeaderField, Value: responseMetaHeaderCfd}, }) rp.Write([]byte("502 Bad Gateway")) } diff --git a/connection/h2mux_test.go b/connection/h2mux_test.go index 4f1019e0..4acd1c2b 100644 --- a/connection/h2mux_test.go +++ b/connection/h2mux_test.go @@ -105,9 +105,9 @@ func TestServeStreamHTTP(t *testing.T) { require.True(t, hasHeader(stream, ":status", strconv.Itoa(test.expectedStatus))) if test.isProxyError { - assert.True(t, hasHeader(stream, responseMetaHeaderField, responseMetaHeaderCfd)) + assert.True(t, hasHeader(stream, ResponseMetaHeaderField, responseMetaHeaderCfd)) } else { - assert.True(t, hasHeader(stream, responseMetaHeaderField, responseMetaHeaderOrigin)) + assert.True(t, hasHeader(stream, ResponseMetaHeaderField, responseMetaHeaderOrigin)) body := make([]byte, len(test.expectedBody)) _, err = stream.Read(body) require.NoError(t, err) @@ -154,7 +154,7 @@ func TestServeStreamWS(t *testing.T) { require.NoError(t, err) require.True(t, hasHeader(stream, ":status", strconv.Itoa(http.StatusSwitchingProtocols))) - assert.True(t, hasHeader(stream, responseMetaHeaderField, responseMetaHeaderOrigin)) + assert.True(t, hasHeader(stream, ResponseMetaHeaderField, responseMetaHeaderOrigin)) data := []byte("test websocket") err = wsutil.WriteClientText(writePipe, data) @@ -209,7 +209,7 @@ func benchmarkServeStreamHTTPSimple(b *testing.B, test testRequest) { b.StopTimer() require.NoError(b, openstreamErr) - assert.True(b, hasHeader(stream, responseMetaHeaderField, responseMetaHeaderOrigin)) + assert.True(b, hasHeader(stream, ResponseMetaHeaderField, responseMetaHeaderOrigin)) require.True(b, hasHeader(stream, ":status", strconv.Itoa(http.StatusOK))) require.NoError(b, readBodyErr) require.Equal(b, test.expectedBody, body) diff --git a/connection/header.go b/connection/header.go index 5c80c953..b9fcd003 100644 --- a/connection/header.go +++ b/connection/header.go @@ -8,12 +8,12 @@ import ( ) const ( - responseMetaHeaderField = "cf-cloudflared-response-meta" + ResponseMetaHeaderField = "cf-cloudflared-response-meta" ) var ( canonicalResponseUserHeadersField = http.CanonicalHeaderKey(h2mux.ResponseUserHeadersField) - canonicalResponseMetaHeaderField = http.CanonicalHeaderKey(responseMetaHeaderField) + canonicalResponseMetaHeaderField = http.CanonicalHeaderKey(ResponseMetaHeaderField) responseMetaHeaderCfd = mustInitRespMetaHeader("cloudflared") responseMetaHeaderOrigin = mustInitRespMetaHeader("origin") ) diff --git a/connection/http2_test.go b/connection/http2_test.go index 06bced61..4b2439f9 100644 --- a/connection/http2_test.go +++ b/connection/http2_test.go @@ -100,9 +100,9 @@ func TestServeHTTP(t *testing.T) { require.Equal(t, test.expectedBody, respBody) } if test.isProxyError { - require.Equal(t, responseMetaHeaderCfd, resp.Header.Get(responseMetaHeaderField)) + require.Equal(t, responseMetaHeaderCfd, resp.Header.Get(ResponseMetaHeaderField)) } else { - require.Equal(t, responseMetaHeaderOrigin, resp.Header.Get(responseMetaHeaderField)) + require.Equal(t, responseMetaHeaderOrigin, resp.Header.Get(ResponseMetaHeaderField)) } } cancel() @@ -202,7 +202,7 @@ func TestServeWS(t *testing.T) { resp := respWriter.Result() // http2RespWriter should rewrite status 101 to 200 require.Equal(t, http.StatusOK, resp.StatusCode) - require.Equal(t, responseMetaHeaderOrigin, resp.Header.Get(responseMetaHeaderField)) + require.Equal(t, responseMetaHeaderOrigin, resp.Header.Get(ResponseMetaHeaderField)) wg.Wait() }