@@ -178,15 +178,17 @@ func isHTTPTokenChar(c byte) bool {
178
178
// Represents a valid host.
179
179
// https://datatracker.ietf.org/doc/html/rfc952
180
180
// https://datatracker.ietf.org/doc/html/rfc1123#page-13
181
- func parseHostPattern (input string ) (host []labelPattern , rest string , err error ) {
182
- rest = input
183
- var label labelPattern
181
+ func parseHostPattern (input string ) ([]labelPattern , string , error ) {
182
+ rest := input
183
+ var host []labelPattern
184
+ var err error
184
185
185
186
if input == "" {
186
187
return nil , "" , errors .New ("expected host, got empty string" )
187
188
}
188
189
189
190
// There should be at least one label.
191
+ var label labelPattern
190
192
label , rest , err = parseLabelPattern (rest )
191
193
if err != nil {
192
194
return nil , "" , err
@@ -271,8 +273,9 @@ func parsePathPattern(input string) ([]segmentPattern, string, error) {
271
273
return nil , "" , nil
272
274
}
273
275
274
- var segments []segmentPattern
275
276
rest := input
277
+ var segments []segmentPattern
278
+ var err error
276
279
277
280
// If the path doesn't start with '/', it's not a valid absolute path
278
281
// But we'll be flexible and parse relative paths too
@@ -288,19 +291,19 @@ func parsePathPattern(input string) ([]segmentPattern, string, error) {
288
291
}
289
292
290
293
// Parse the next segment
291
- seg , remaining , err := parsePathSegmentPattern (rest )
294
+ var segment segmentPattern
295
+ segment , rest , err = parsePathSegmentPattern (rest )
292
296
if err != nil {
293
297
return nil , "" , err
294
298
}
295
299
296
300
// If we got an empty segment and there's still input,
297
301
// it means we hit an invalid character
298
- if seg == "" && remaining != "" {
302
+ if segment == "" && rest != "" {
299
303
break
300
304
}
301
305
302
- segments = append (segments , seg )
303
- rest = remaining
306
+ segments = append (segments , segment )
304
307
305
308
// If there's no slash after the segment, we're done parsing the path
306
309
if rest == "" || rest [0 ] != '/' {
0 commit comments