* Tests for Replacer: Replacer.Set and Replacer.Delete
* update replacer test to new implementation
* fix replacer: counted position wrong if placeholder was found
* fix replacer: found placeholder again, if it was a non-existing one
* test with spaces between the placeholders as this could have a different behaviour
* Tests for Replacer.Map
* Tests for Replacer.Set: check also for something like {l{test1}
This should be replaced as {lTEST1REPLACEMENT
* fix replacer: fix multiple occurrence of phOpen sign
* Tests for Replacer: rewrite Set and ReplaceAll tests to use implementation not interface
* Tests for Replacer: rewrite Delete test to use implementation not interface
* Tests for Replacer: rewrite Map tests to use implementation not interface
* Tests for Replacer: add test for NewReplacer
* Tests for Replacer: add test for default replacements
* Tests for Replacer: fixed and refactored tests
* Tests for Replacer: moved default replacement tests to New-test
as new should return a replace with provider which defines global replacements
* Add stop command to admin. Exit after stop.
* Return error on incorrect http Method and provide better logging.
* reuse stopAndCleanup function for all graceful stops
* Force quit /f on windows, also check for processname '.exe' on windows.
* Remove unneeded spaces
* fix tabs
* go fmt tabs
* Return consistent appname which always includes .exe
* Change func name
Differentiating middleware and responders has one benefit, namely that
it's clear which module provides the response, but even then it's not
a great advantage. Linear handler config makes a little more sense,
giving greater flexibility and simplifying the core a bit, even though
it's slightly awkward that handlers which are responders may not use
the 'next' handler that is passed in at all.
Differentiating middleware and responders has one benefit, namely that
it's clear which module provides the response, but even then it's not
a great advantage. Linear handler config makes a little more sense,
giving greater flexibility and simplifying the core a bit, even though
it's slightly awkward that handlers which are responders may not use
the 'next' handler that is passed in at all.
- Fix static responder so it doesn't replace its own headers config,
and instead replaces the actual response header values
- caddyhttp.ResponseRecorder type optionally buffers response
- Add interface guards to ensure regexp matchers get provisioned
- Use default HTTP port if one is not explicitly set
- Encode middleware writes status code 200 if not written upstream
- Templates and markdown only try to execute on text responses
- Static file server sets Content-Type based on file extension only
(this whole thing -- MIME sniffing, etc -- needs more configurability)