Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
…4643) * caddyfile: Support for raw token values, improve `map`, `expression` * Applied code review comments * Rename RawVal to ValRaw Co-authored-by: Matthew Holt <mholt@users.noreply.github.com>
- Loading branch information
1 parent
dc4d147
commit c5fffb4
Showing
6 changed files
with
300 additions
and
23 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
114 changes: 114 additions & 0 deletions
114
caddytest/integration/caddyfile_adapt/expression_quotes.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,114 @@ | ||
example.com | ||
|
||
@a expression {http.error.status_code} == 400 | ||
abort @a | ||
|
||
@b expression {http.error.status_code} == "401" | ||
abort @b | ||
|
||
@c expression {http.error.status_code} == `402` | ||
abort @c | ||
|
||
@d expression "{http.error.status_code} == 403" | ||
abort @d | ||
|
||
@e expression `{http.error.status_code} == 404` | ||
abort @e | ||
---------- | ||
{ | ||
"apps": { | ||
"http": { | ||
"servers": { | ||
"srv0": { | ||
"listen": [ | ||
":443" | ||
], | ||
"routes": [ | ||
{ | ||
"match": [ | ||
{ | ||
"host": [ | ||
"example.com" | ||
] | ||
} | ||
], | ||
"handle": [ | ||
{ | ||
"handler": "subroute", | ||
"routes": [ | ||
{ | ||
"handle": [ | ||
{ | ||
"abort": true, | ||
"handler": "static_response" | ||
} | ||
], | ||
"match": [ | ||
{ | ||
"expression": "{http.error.status_code} == 400" | ||
} | ||
] | ||
}, | ||
{ | ||
"handle": [ | ||
{ | ||
"abort": true, | ||
"handler": "static_response" | ||
} | ||
], | ||
"match": [ | ||
{ | ||
"expression": "{http.error.status_code} == \"401\"" | ||
} | ||
] | ||
}, | ||
{ | ||
"handle": [ | ||
{ | ||
"abort": true, | ||
"handler": "static_response" | ||
} | ||
], | ||
"match": [ | ||
{ | ||
"expression": "{http.error.status_code} == `402`" | ||
} | ||
] | ||
}, | ||
{ | ||
"handle": [ | ||
{ | ||
"abort": true, | ||
"handler": "static_response" | ||
} | ||
], | ||
"match": [ | ||
{ | ||
"expression": "{http.error.status_code} == 403" | ||
} | ||
] | ||
}, | ||
{ | ||
"handle": [ | ||
{ | ||
"abort": true, | ||
"handler": "static_response" | ||
} | ||
], | ||
"match": [ | ||
{ | ||
"expression": "{http.error.status_code} == 404" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
], | ||
"terminal": true | ||
} | ||
] | ||
} | ||
} | ||
} | ||
} | ||
} |
107 changes: 107 additions & 0 deletions
107
caddytest/integration/caddyfile_adapt/map_with_raw_types.txt
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,107 @@ | ||
example.com | ||
|
||
map {host} {my_placeholder} {magic_number} { | ||
# Should output boolean "true" and an integer | ||
example.com true 3 | ||
|
||
# Should output a string and null | ||
foo.example.com "string value" | ||
|
||
# Should output two strings (quoted int) | ||
(.*)\.example.com "${1} subdomain" "5" | ||
|
||
# Should output null and a string (quoted int) | ||
~.*\.net$ - `7` | ||
|
||
# Should output a float and the string "false" | ||
~.*\.xyz$ 123.456 "false" | ||
|
||
# Should output two strings, second being escaped quote | ||
default "unknown domain" \""" | ||
} | ||
---------- | ||
{ | ||
"apps": { | ||
"http": { | ||
"servers": { | ||
"srv0": { | ||
"listen": [ | ||
":443" | ||
], | ||
"routes": [ | ||
{ | ||
"match": [ | ||
{ | ||
"host": [ | ||
"example.com" | ||
] | ||
} | ||
], | ||
"handle": [ | ||
{ | ||
"handler": "subroute", | ||
"routes": [ | ||
{ | ||
"handle": [ | ||
{ | ||
"defaults": [ | ||
"unknown domain", | ||
"\"" | ||
], | ||
"destinations": [ | ||
"{my_placeholder}", | ||
"{magic_number}" | ||
], | ||
"handler": "map", | ||
"mappings": [ | ||
{ | ||
"input": "example.com", | ||
"outputs": [ | ||
true, | ||
3 | ||
] | ||
}, | ||
{ | ||
"input": "foo.example.com", | ||
"outputs": [ | ||
"string value", | ||
null | ||
] | ||
}, | ||
{ | ||
"input": "(.*)\\.example.com", | ||
"outputs": [ | ||
"${1} subdomain", | ||
"5" | ||
] | ||
}, | ||
{ | ||
"input_regexp": ".*\\.net$", | ||
"outputs": [ | ||
null, | ||
"7" | ||
] | ||
}, | ||
{ | ||
"input_regexp": ".*\\.xyz$", | ||
"outputs": [ | ||
123.456, | ||
"false" | ||
] | ||
} | ||
], | ||
"source": "{http.request.host}" | ||
} | ||
] | ||
} | ||
] | ||
} | ||
], | ||
"terminal": true | ||
} | ||
] | ||
} | ||
} | ||
} | ||
} | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.