@@ -72,19 +72,21 @@ func (MatchRemoteIP) CaddyModule() caddy.ModuleInfo {
72
72
73
73
// UnmarshalCaddyfile implements caddyfile.Unmarshaler.
74
74
func (m * MatchRemoteIP ) UnmarshalCaddyfile (d * caddyfile.Dispenser ) error {
75
- d .Next () // consume matcher name
76
- for d .NextArg () {
77
- if d .Val () == "forwarded" {
78
- return d .Err ("the 'forwarded' option is no longer supported; use the 'client_ip' matcher instead" )
75
+ // iterate to merge multiple matchers into one
76
+ for d .Next () {
77
+ for d .NextArg () {
78
+ if d .Val () == "forwarded" {
79
+ return d .Err ("the 'forwarded' option is no longer supported; use the 'client_ip' matcher instead" )
80
+ }
81
+ if d .Val () == "private_ranges" {
82
+ m .Ranges = append (m .Ranges , PrivateRangesCIDR ()... )
83
+ continue
84
+ }
85
+ m .Ranges = append (m .Ranges , d .Val ())
79
86
}
80
- if d .Val () == "private_ranges" {
81
- m .Ranges = append (m .Ranges , PrivateRangesCIDR ()... )
82
- continue
87
+ if d .NextBlock (0 ) {
88
+ return d .Err ("malformed remote_ip matcher: blocks are not supported" )
83
89
}
84
- m .Ranges = append (m .Ranges , d .Val ())
85
- }
86
- if d .NextBlock (0 ) {
87
- return d .Err ("malformed remote_ip matcher: blocks are not supported" )
88
90
}
89
91
return nil
90
92
}
@@ -164,16 +166,18 @@ func (MatchClientIP) CaddyModule() caddy.ModuleInfo {
164
166
165
167
// UnmarshalCaddyfile implements caddyfile.Unmarshaler.
166
168
func (m * MatchClientIP ) UnmarshalCaddyfile (d * caddyfile.Dispenser ) error {
167
- d .Next () // consume matcher name
168
- for d .NextArg () {
169
- if d .Val () == "private_ranges" {
170
- m .Ranges = append (m .Ranges , PrivateRangesCIDR ()... )
171
- continue
169
+ // iterate to merge multiple matchers into one
170
+ for d .Next () {
171
+ for d .NextArg () {
172
+ if d .Val () == "private_ranges" {
173
+ m .Ranges = append (m .Ranges , PrivateRangesCIDR ()... )
174
+ continue
175
+ }
176
+ m .Ranges = append (m .Ranges , d .Val ())
177
+ }
178
+ if d .NextBlock (0 ) {
179
+ return d .Err ("malformed client_ip matcher: blocks are not supported" )
172
180
}
173
- m .Ranges = append (m .Ranges , d .Val ())
174
- }
175
- if d .NextBlock (0 ) {
176
- return d .Err ("malformed client_ip matcher: blocks are not supported" )
177
181
}
178
182
return nil
179
183
}
0 commit comments