0
Fork 0
mirror of https://github.com/caddyserver/caddy.git synced 2024-12-23 22:27:38 -05:00
caddy/caddyfile
Augusto Roman 053373a385 caddyfile: Fix multi-file snippets and import literals. (#2205)
* Fix a few import problems: snippets and import literals.

Two problems are fixed by this code simplification:
1. Snippets defined in one import file are strangely not available in
   another.
2. If an imported file had a directive with an argument "import", then
   the rest of the tokens on the line would be converted to absolute
   filepaths.

An example of #2 would be the following directive in an imported file:
    basicauth / import secret

In this case, the password would actually be an absolute path to the
file 'secret' (whether or not it exists) in the directory of the imported
Caddyfile.

The problem was the blind token processing to fix import paths in the
imported tokens without considering the context of the 'import' token.

My first inclination was to just add more context (detect 'import' tokens
at the beginning of lines and check the value tokens against defined
snippets), however I eventually realized that we already do all of this
in the parser, so the code was redundant. Instead we just use the current
token's File property when importing. This works fine with imported tokens
since they already have the absolute path to the imported file!

Fixes #2204

* renamed file2 -> fileName

* Fix copy/pasted comment in test.

* Change gzip example to basicauth example.

This makes it more clear how the import side effect is detrimental.
2018-06-28 10:06:52 -06:00
..
testdata Rewrote Caddy from the ground up; initial commit of 0.9 branch 2016-06-04 17:00:29 -06:00
dispenser.go Apply Apache license to all .go source files (closes #1865) 2017-09-22 23:56:58 -06:00
dispenser_test.go Apply Apache license to all .go source files (closes #1865) 2017-09-22 23:56:58 -06:00
json.go Apply Apache license to all .go source files (closes #1865) 2017-09-22 23:56:58 -06:00
json_test.go Apply Apache license to all .go source files (closes #1865) 2017-09-22 23:56:58 -06:00
lexer.go Apply Apache license to all .go source files (closes #1865) 2017-09-22 23:56:58 -06:00
lexer_test.go Apply Apache license to all .go source files (closes #1865) 2017-09-22 23:56:58 -06:00
parse.go caddyfile: Fix multi-file snippets and import literals. (#2205) 2018-06-28 10:06:52 -06:00
parse_test.go caddyfile: Fix multi-file snippets and import literals. (#2205) 2018-06-28 10:06:52 -06:00