- 30 Apr, 2016 2 commits
-
-
William Bezuidenhout authored
* Overwrite proxy headers based on directive Headers of the request sent by the proxy upstream can now be modified in the following way: Prefix header with `+`: Header will be added if it doesn't exist otherwise, the values will be merge Prefix header with `-': Header will be removed No prefix: Header will be replaced with given value * Add missing formating directive reported by go vet * Overwrite up/down stream proxy headers Add Up/DownStreamHeaders to UpstreamHost Split `proxy_header` option in `proxy` directive into `header_upstream` and `header_downstream`. By splitting into two, it makes it clear in what direction the given headers must be applied. `proxy_header` can still be used (to maintain backward compatability) but its assumed to be `header_upstream` Response headers received by the reverse proxy from the upstream host are updated according the `header_downstream` rules. The update occurs through a func given to the reverse proxy, which is applied once a response is received. Headers (for upstream and downstream) can now be modified in the following way: Prefix header with `+`: Header will be added if it doesn't exist otherwise, the values will be merge Prefix header with `-': Header will be removed No prefix: Header will be replaced with given value Updated branch with changes from master * minor refactor to make intent clearer * Make Up/Down stream headers naming consistent * Fix error descriptions to be more clear * Fix lint issue
-
Matthew Holt authored
-
- 27 Apr, 2016 3 commits
-
-
Matthew Holt authored
-
Matt Holt authored
* Move handling of headers around to prevent memory use spikes While debugging #782, I noticed that using http2 and max_fails=0, X-Forwarded-For grew infinitely when an upstream request failed after refreshing the test page. This change ensures that headers are only set once per request rather than appending in a time-terminated loop. * Refactor some code into its own function
-
W. Mark Kubacki authored
Another new safeguard is that we check whether the datetime has been read correctly. If not then the listing will not be localized. closes #793
-
- 26 Apr, 2016 3 commits
-
-
Matthew Holt authored
-
Matthew Holt authored
-
Matthew Holt authored
-
- 23 Apr, 2016 1 commit
-
-
W. Mark Kubacki authored
[1] https://github.com/golang/go/blob/57e459e02b4b01567f92542f92cd9afde209e193/src/crypto/tls/common.go#L424 [2] https://github.com/golang/go/blob/57e459e02b4b01567f92542f92cd9afde209e193/src/crypto/tls/common.go#L392-L407 [2] has overwritten the first tls ticket key on round N=0, that has previously been written using [1]. Go's stdlib does not use c.sessionTicketKeys≥1 as indicator if those values had already been set; initializing that lone SessionTicketKey does the job for for now. If c.serverInit() were called in round N+1 all existing tls ticket keys would be overwritten (in round N<4 except the very first one, of course). As member variables of tls.Config are read-only by then, we cannot keep updating SessionTicketKey as well. This has been escalated to Go's authors with golang/go#15421 here: https://github.com/golang/go/issues/15421 Thanks to Matthew Holt for the initial report!
-
- 22 Apr, 2016 1 commit
-
-
Matthew Holt authored
-
- 20 Apr, 2016 3 commits
-
-
W. Mark Kubacki authored
Those settings enforce convergence on common coding style with respect to whitespace. Do not use tabs to indent with shell scripts because those tabs most often serve the function of triggering command completion. Which could end a command before it is pasted completely. Traditionally indentation is two spaces here, not four. Other rules will catch stray whitespace at the end of lines or files, which, once committed, would annoy the next developer because his editor would strip them from lines he did not intended to modify in the first place.
-
Abiola Ibrahim authored
Typ (creatation → creation)
-
Elias Probst authored
-
- 19 Apr, 2016 3 commits
-
-
Matt Holt authored
Make Browse Great Again ★★★
-
W-Mark Kubacki authored
-
W-Mark Kubacki authored
The datetime format is whatever the user sets in his/her browser or OS. This converts timezones. Tested with Chrome 50 and Internet Explorer 11.
-
- 18 Apr, 2016 8 commits
-
-
W-Mark Kubacki authored
Makes sure the view is the same no matter where a site is hosted.
-
W-Mark Kubacki authored
Fixes a surplus — next to "go up". Identifies the preamble as the table's summary. Emits filesizes in bytes, which can be consumed by any browser-side scripts or utilized in sorting when the table is copy-and-pasted into a spreadsheet software. Uses <time> along with proper datetime representation, which a browser could utilize to display the datetime rendered according to the requestor's locale.
-
W-Mark Kubacki authored
Assigns negative sizes to directories in order to have them listed reliably before any zero-sized files. That order is what most users expect when sorting by size. As side effect directories will appear before files on all filesystem implementations. To give an example: before this change directories had a size of 4 KiB when using Linux with ext4 or tmpfs, and with ZFS a size resembling an estimation of the number of leaves within said directory.
-
W-Mark Kubacki authored
This keeps the interface of all available formatters honest, and allows for truncated listings all formats.
-
W-Mark Kubacki authored
-
Matt Holt authored
Add hostname placeholder. Headers use replacer
-
W. Mark Kubacki authored
* browse: Catch the case of a directory disappearing before having been read * browse: Revert to old pass-through behaviour PROPFIND is a request for an alternate view on a directory's contents, which response is indeed not implemented but ideally allowed to ask for. OPTIONS would ideally return (at least) what methods the requestor could use, which is an allowed request method, too. This addresses #767.
-
Matthew Holt authored
-
- 17 Apr, 2016 5 commits
-
-
Tobias Weingartner authored
* Fix PrivateKeyBytes to error out and fail tests on error. * Better error message.
-
Tobias Weingartner authored
-
elcore authored
Error if we are unable to marshal the ECDSA private key
-
elcore authored
-
W. Mark Kubacki authored
Tell usage of 'path' from 'filepath' and fix *path checking
-
- 16 Apr, 2016 4 commits
-
-
W-Mark Kubacki authored
-
W-Mark Kubacki authored
-
W-Mark Kubacki authored
-
William Bezuidenhout authored
On matched header rules, replacer is used to replace any placeholders defined in header rules iex. X-Backend {hostname} where {hostname} will be replaced by the hostname key present in the replacer hostname key added to replacer. The value is determined by the output of `os.Hostname()`
-
- 15 Apr, 2016 5 commits
-
-
Matthew Holt authored
-
W. Mark Kubacki authored
Extend tls client auth
-
W-Mark Kubacki authored
Caddyfile parameter "clients" of "tls" henceforth accepts a special first modifier. It is one of, and effects: * request = tls.RequestClientCert * require = tls.RequireAnyClientCert * verify_if_given = tls.VerifyClientCertIfGiven * (none) = tls.RequireAndVerifyClientCert The use-case for this is as follows: A middleware would serve items to the public, but if a certificate were given the middleware would permit file manipulation. And, in a different plugin such as a forum or blog, not verifying a client cert would be nice for registration: said blog would subsequently only compare the SPKI of a client certificate.
-
W-Mark Kubacki authored
No need to have this in every plugin. And, even in flat filesystems filenames with dots and slashes are best avoided.
-
W-Mark Kubacki authored
For example, a HTTP POST should not be answered with StatusOK, and a response to HTTP OPTIONS should not carry any contents.
-
- 13 Apr, 2016 1 commit
-
-
Matt Holt authored
-
- 12 Apr, 2016 1 commit
-
-
W. Mark Kubacki authored
-