@@ -57,21 +57,7 @@ func (enc *Encode) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
57
57
d .Next () // consume directive name
58
58
59
59
prefer := []string {}
60
- for _ , arg := range d .RemainingArgs () {
61
- mod , err := caddy .GetModule ("http.encoders." + arg )
62
- if err != nil {
63
- return d .Errf ("finding encoder module '%s': %v" , mod , err )
64
- }
65
- encoding , ok := mod .New ().(Encoding )
66
- if ! ok {
67
- return d .Errf ("module %s is not an HTTP encoding" , mod )
68
- }
69
- if enc .EncodingsRaw == nil {
70
- enc .EncodingsRaw = make (caddy.ModuleMap )
71
- }
72
- enc .EncodingsRaw [arg ] = caddyconfig .JSON (encoding , nil )
73
- prefer = append (prefer , arg )
74
- }
60
+ remainingArgs := d .RemainingArgs ()
75
61
76
62
responseMatchers := make (map [string ]caddyhttp.ResponseMatcher )
77
63
for d .NextBlock (0 ) {
@@ -111,6 +97,26 @@ func (enc *Encode) UnmarshalCaddyfile(d *caddyfile.Dispenser) error {
111
97
}
112
98
}
113
99
100
+ if len (prefer ) == 0 && len (remainingArgs ) == 0 {
101
+ remainingArgs = []string {"zstd" , "gzip" }
102
+ }
103
+
104
+ for _ , arg := range remainingArgs {
105
+ mod , err := caddy .GetModule ("http.encoders." + arg )
106
+ if err != nil {
107
+ return d .Errf ("finding encoder module '%s': %v" , mod , err )
108
+ }
109
+ encoding , ok := mod .New ().(Encoding )
110
+ if ! ok {
111
+ return d .Errf ("module %s is not an HTTP encoding" , mod )
112
+ }
113
+ if enc .EncodingsRaw == nil {
114
+ enc .EncodingsRaw = make (caddy.ModuleMap )
115
+ }
116
+ enc .EncodingsRaw [arg ] = caddyconfig .JSON (encoding , nil )
117
+ prefer = append (prefer , arg )
118
+ }
119
+
114
120
// use the order in which the encoders were defined.
115
121
enc .Prefer = prefer
116
122
0 commit comments