@marcel91200 / caddy Mirror · read-only / commits / 19cc2bd3
Fork 0

Fast and extensible multi-platform HTTP/1-2-3 web server with automatic HTTPS

Mirrored from https://github.com/Slazee/caddy.git

Synced Nov 14, 05:15 UTC

reverseproxy: Fix Caddyfile parsing for empty non-http transports (#3576)

* reverseproxy: Fix Caddyfile parsing for empty non-http transports * Update modules/caddyhttp/reverseproxy/caddyfile.go Co-authored-by: Matt Holt <mholt@users.noreply.github.com> * Rename empty transport test Co-authored-by: Matt Holt <mholt@users.noreply.github.com>

Francis Lavoie committed Jul 17, 2020 at 15:18 UTC 19cc2bd3c3e6b551d47eca7a2efdee95eec2a86f
2 files changed +39 -1
caddytest/integration/caddyfile_adapt/reverse_proxy_empty_non_http_transport.txt new
+36
@@ -0,0 +1,36 @@
1 +:8884
2 +
3 +reverse_proxy 127.0.0.1:65535 {
4 + transport fastcgi
5 +}
6 +----------
7 +{
8 + "apps": {
9 + "http": {
10 + "servers": {
11 + "srv0": {
12 + "listen": [
13 + ":8884"
14 + ],
15 + "routes": [
16 + {
17 + "handle": [
18 + {
19 + "handler": "reverse_proxy",
20 + "transport": {
21 + "protocol": "fastcgi"
22 + },
23 + "upstreams": [
24 + {
25 + "dial": "127.0.0.1:65535"
26 + }
27 + ]
28 + }
29 + ]
30 + }
31 + ]
32 + }
33 + }
34 + }
35 + }
36 +}
modules/caddyhttp/reverseproxy/caddyfile.go
+3 -1
@@ -561,7 +561,9 @@ func (h *Handler) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
561 } else if commonScheme == "https" {
562 return d.Errf("upstreams are configured for HTTPS but transport module does not support TLS: %T", transport)
563 }
564 - if !reflect.DeepEqual(transport, reflect.New(reflect.TypeOf(transport).Elem()).Interface()) {
564 +
565 + // no need to encode empty default transport
566 + if !reflect.DeepEqual(transport, new(HTTPTransport)) {
567 h.TransportRaw = caddyconfig.JSONModuleObject(transport, "protocol", transportModuleName, nil)
568 }
569 }