From 8269af94782125de9683a15521491a97c20e199e Mon Sep 17 00:00:00 2001 From: David Stotijn Date: Sun, 27 Feb 2022 17:55:41 +0100 Subject: [PATCH] Fix missing `HTTP/1.0` proto enums --- admin/src/features/sender/components/EditRequest.tsx | 12 +++++++----- admin/src/lib/components/ResponseStatus.tsx | 6 ++++-- admin/src/lib/graphql/generated.tsx | 5 +++-- pkg/api/generated.go | 5 +++-- pkg/api/models_gen.go | 12 +++++++----- pkg/api/resolvers.go | 10 ++++++---- pkg/api/schema.graphql | 5 +++-- pkg/sender/sender.go | 4 ++-- pkg/sender/transport.go | 9 +++++---- 9 files changed, 40 insertions(+), 28 deletions(-) diff --git a/admin/src/features/sender/components/EditRequest.tsx b/admin/src/features/sender/components/EditRequest.tsx index b2706c9..52dcbcb 100644 --- a/admin/src/features/sender/components/EditRequest.tsx +++ b/admin/src/features/sender/components/EditRequest.tsx @@ -39,13 +39,15 @@ enum HttpMethod { } enum HttpProto { - Http1 = "HTTP/1.1", - Http2 = "HTTP/2.0", + Http10 = "HTTP/1.0", + Http11 = "HTTP/1.1", + Http20 = "HTTP/2.0", } const httpProtoMap = new Map([ - [HttpProto.Http1, HttpProtocol.Http1], - [HttpProto.Http2, HttpProtocol.Http2], + [HttpProto.Http10, HttpProtocol.Http10], + [HttpProto.Http11, HttpProtocol.Http11], + [HttpProto.Http20, HttpProtocol.Http20], ]); function updateKeyPairItem(key: string, value: string, idx: number, items: KeyValuePair[]): KeyValuePair[] { @@ -92,7 +94,7 @@ function EditRequest(): JSX.Element { const [method, setMethod] = useState(HttpMethod.Get); const [url, setURL] = useState(""); - const [proto, setProto] = useState(HttpProto.Http2); + const [proto, setProto] = useState(HttpProto.Http20); const [queryParams, setQueryParams] = useState([{ key: "", value: "" }]); const [headers, setHeaders] = useState([{ key: "", value: "" }]); const [body, setBody] = useState(""); diff --git a/admin/src/lib/components/ResponseStatus.tsx b/admin/src/lib/components/ResponseStatus.tsx index 0c61e25..08d81c2 100644 --- a/admin/src/lib/components/ResponseStatus.tsx +++ b/admin/src/lib/components/ResponseStatus.tsx @@ -12,9 +12,11 @@ type ResponseStatusProps = { function mapProto(proto: HttpProtocol): string { switch (proto) { - case HttpProtocol.Http1: + case HttpProtocol.Http10: + return "HTTP/1.0"; + case HttpProtocol.Http11: return "HTTP/1.1"; - case HttpProtocol.Http2: + case HttpProtocol.Http20: return "HTTP/2.0"; default: return proto; diff --git a/admin/src/lib/graphql/generated.tsx b/admin/src/lib/graphql/generated.tsx index ab0cfba..8677011 100644 --- a/admin/src/lib/graphql/generated.tsx +++ b/admin/src/lib/graphql/generated.tsx @@ -62,8 +62,9 @@ export enum HttpMethod { } export enum HttpProtocol { - Http1 = 'HTTP1', - Http2 = 'HTTP2' + Http10 = 'HTTP10', + Http11 = 'HTTP11', + Http20 = 'HTTP20' } export type HttpRequestLog = { diff --git a/pkg/api/generated.go b/pkg/api/generated.go index bce9a12..4aea32f 100644 --- a/pkg/api/generated.go +++ b/pkg/api/generated.go @@ -897,8 +897,9 @@ enum HttpMethod { } enum HttpProtocol { - HTTP1 - HTTP2 + HTTP10 + HTTP11 + HTTP20 } scalar Time diff --git a/pkg/api/models_gen.go b/pkg/api/models_gen.go index 5f32f68..8f4d3e0 100644 --- a/pkg/api/models_gen.go +++ b/pkg/api/models_gen.go @@ -186,18 +186,20 @@ func (e HTTPMethod) MarshalGQL(w io.Writer) { type HTTPProtocol string const ( - HTTPProtocolHTTP1 HTTPProtocol = "HTTP1" - HTTPProtocolHTTP2 HTTPProtocol = "HTTP2" + HTTPProtocolHTTP10 HTTPProtocol = "HTTP10" + HTTPProtocolHTTP11 HTTPProtocol = "HTTP11" + HTTPProtocolHTTP20 HTTPProtocol = "HTTP20" ) var AllHTTPProtocol = []HTTPProtocol{ - HTTPProtocolHTTP1, - HTTPProtocolHTTP2, + HTTPProtocolHTTP10, + HTTPProtocolHTTP11, + HTTPProtocolHTTP20, } func (e HTTPProtocol) IsValid() bool { switch e { - case HTTPProtocolHTTP1, HTTPProtocolHTTP2: + case HTTPProtocolHTTP10, HTTPProtocolHTTP11, HTTPProtocolHTTP20: return true } return false diff --git a/pkg/api/resolvers.go b/pkg/api/resolvers.go index db3c8b9..c5bab7a 100644 --- a/pkg/api/resolvers.go +++ b/pkg/api/resolvers.go @@ -22,13 +22,15 @@ import ( ) var httpProtocolMap = map[string]HTTPProtocol{ - sender.HTTPProto1: HTTPProtocolHTTP1, - sender.HTTPProto2: HTTPProtocolHTTP2, + sender.HTTPProto10: HTTPProtocolHTTP10, + sender.HTTPProto11: HTTPProtocolHTTP11, + sender.HTTPProto20: HTTPProtocolHTTP20, } var revHTTPProtocolMap = map[HTTPProtocol]string{ - HTTPProtocolHTTP1: sender.HTTPProto1, - HTTPProtocolHTTP2: sender.HTTPProto2, + HTTPProtocolHTTP10: sender.HTTPProto10, + HTTPProtocolHTTP11: sender.HTTPProto11, + HTTPProtocolHTTP20: sender.HTTPProto20, } type Resolver struct { diff --git a/pkg/api/schema.graphql b/pkg/api/schema.graphql index 33e63d3..5bbfd05 100644 --- a/pkg/api/schema.graphql +++ b/pkg/api/schema.graphql @@ -157,8 +157,9 @@ enum HttpMethod { } enum HttpProtocol { - HTTP1 - HTTP2 + HTTP10 + HTTP11 + HTTP20 } scalar Time diff --git a/pkg/sender/sender.go b/pkg/sender/sender.go index 4909a00..8fb246f 100644 --- a/pkg/sender/sender.go +++ b/pkg/sender/sender.go @@ -126,7 +126,7 @@ func (svc *service) CreateOrUpdateRequest(ctx context.Context, req Request) (Req } if req.Proto == "" { - req.Proto = HTTPProto2 + req.Proto = HTTPProto20 } if !isValidProto(req.Proto) { @@ -157,7 +157,7 @@ func (svc *service) CloneFromRequestLog(ctx context.Context, reqLogID ulid.ULID) SourceRequestLogID: reqLogID, Method: reqLog.Method, URL: reqLog.URL, - Proto: HTTPProto2, // Attempt HTTP/2. + Proto: HTTPProto20, // Attempt HTTP/2. Header: reqLog.Header, Body: reqLog.Body, } diff --git a/pkg/sender/transport.go b/pkg/sender/transport.go index 9654c33..e26e38a 100644 --- a/pkg/sender/transport.go +++ b/pkg/sender/transport.go @@ -12,8 +12,9 @@ type HTTPTransport struct{} type protoCtxKey struct{} const ( - HTTPProto1 = "HTTP/1.1" - HTTPProto2 = "HTTP/2.0" + HTTPProto10 = "HTTP/1.0" + HTTPProto11 = "HTTP/1.1" + HTTPProto20 = "HTTP/2.0" ) // h1OnlyTransport mimics `http.DefaultTransport`, but with HTTP/2 disabled. @@ -38,7 +39,7 @@ var h1OnlyTransport = &http.Transport{ func (t *HTTPTransport) RoundTrip(req *http.Request) (*http.Response, error) { proto, ok := req.Context().Value(protoCtxKey{}).(string) - if ok && proto == HTTPProto1 { + if ok && proto == HTTPProto10 || proto == HTTPProto11 { return h1OnlyTransport.RoundTrip(req) } @@ -46,5 +47,5 @@ func (t *HTTPTransport) RoundTrip(req *http.Request) (*http.Response, error) { } func isValidProto(proto string) bool { - return proto == HTTPProto1 || proto == HTTPProto2 + return proto == HTTPProto10 || proto == HTTPProto11 || proto == HTTPProto20 }