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
}