aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2024-04-04chore: Upgrade some dependenciesdep-upgradesFrancis Lavoie
2024-04-01caddyhttp: Add plaintext response to `file_server browse` (#6093)kylosus
* Added plaintext support to file_server browser This commit is twofold: First it adds a new optional field, `return_type`, to `browser` for setting the default format of the returned index (html, json or plaintext). This is used when the `Accept` header is set to `/*`. Second, it adds a preliminary `text/plain` support to the `file_server` browser that returns a text representation of the file system, when an `Accept: text/plain` header is present, with the behavior discussed above. * Added more details and better formatting to plaintext browser * Replaced returnType conditions with a switch statement * Simplify --------- Co-authored-by: Matt Holt <[email protected]>
2024-03-30admin: Use xxhash for etag (#6207)Hayder
2024-03-30modules: fix some typo in conments (#6206)reallylowest
Signed-off-by: reallylowest <[email protected]>
2024-03-29caddyhttp: Replace sensitive headers with REDACTED (close #5669)Matthew Holt
2024-03-29caddyhttp: close quic connections when server closes (#6202)WeidiDeng
* close quic connections when server closes * fix lint * add comment about CloseGracefully
2024-03-29reverseproxy: Use xxhash instead of fnv32 for LB (#6203)Hayder
* Added Faster Non-cryptographic Hash Function for Load Balancing * Ran golangci-lint * Updated hash version and hash return type
2024-03-27caddyhttp: add http.request.local{,.host,.port} placeholder (#6182)Emily
* caddyhttp: add `http.request.local{,.host,.port}` placeholder This is the counterpart of `http.request.remote{,.host,.port}`. `http.request.remote` operates on the remote client's address, while `http.request.local` operates on the address the connection arrived on. Take the following example: - Caddy serving on `203.0.113.1:80` - Client on `203.0.113.2` `http.request.remote.host` would return `203.0.113.2` (client IP) `http.request.local.host` would return `203.0.113.1` (server IP) `http.request.local.port` would return `80` (server port) I find this helpful for debugging setups with multiple servers and/or multiple network paths (multiple IPs, AnyIP, Anycast). Co-authored-by: networkException <[email protected]> * caddyhttp: add unit test for `http.request.local{,.host,.port}` * caddyhttp: add integration test for `http.request.local.port` * caddyhttp: fix `http.request.local.host` placeholder handling with unix sockets The implementation matches the one of `http.request.remote.host` now and returns the unix socket path (just like `http.request.local` already did) instead of an empty string. --------- Co-authored-by: networkException <[email protected]>
2024-03-27chore: upgrade deps (#6198)Mohammed Al Sahaf
2024-03-25chore: remove repetitive word (#6193)sellskin
Signed-off-by: sellskin <[email protected]>
2024-03-23Added a null check to avoid segfault on rewrite query ops (#6191)Aziz Rmadi
2024-03-22rewrite: `uri query` replace operation (#6165)Aziz Rmadi
* Implemented query replace oeration * Modified replace operation to use regexes in caddyfile * Added more tests to uri query operations
2024-03-21logging: support `ms` duration format and add docs (#6187)Mohammed Al Sahaf
2024-03-21replacer: use RWMutex to protect static provider (#6184)Mohammed Al Sahaf
2024-03-21caddyhttp: Allow `header` replacement with empty string (#6163)Francis Lavoie
2024-03-21vars: Make nil values act as empty string instead of `"<nil>"` (#6174)Francis Lavoie
2024-03-21chore: Update quic-go to v0.42.0 (#6176)Marten Seemann
* update quic-go to v0.42.0 * use a rate limiter to control QUIC source address verification * Lint * remove deprecated ListenQUIC * remove number of requests tracking * increase the number of handshakes before source address verification is needed * remove references to request counters * remove deprecated listen* --------- Co-authored-by: Francis Lavoie <[email protected]> Co-authored-by: WeidiDeng <[email protected]>
2024-03-21caddyhttp: Accept XFF header values with ports, when parsing client IP (#6183)Francis Lavoie
2024-03-20reverseproxy: configurable active health_passes and health_fails (#6154)Sam Ottenhoff
* reverseproxy: active health check allows configurable health_passes and health_fails * Need to reset counters after recovery * rename methods to be more clear that these are coming from active health checks * do not export methods
2024-03-18reverseproxy: Configurable forward proxy URL (#6114)Justin Angel
Co-authored-by: WeidiDeng <[email protected]>
2024-03-13caddyhttp: upgrade to cel v0.20.0 (#6161)jbrown-stripe
* upgrade to cel v0.20.0 * Attempt to address feedback and fix linter * Let's try this * Take that, you linter! * Oh there's more --------- Co-authored-by: Francis Lavoie <[email protected]> Co-authored-by: Matt Holt <[email protected]> Co-authored-by: Tristan Swadell @TristonianJones
2024-03-12chore: Bump Chroma to v2.13.0, includes new Caddyfile lexer (#6169)Francis Lavoie
2024-03-11caddyhttp: suppress flushing if the response is being buffered (#6150)WeidiDeng
* suppress flushing if the response is being buffered * fix lint --------- Co-authored-by: Matt Holt <[email protected]>
2024-03-10chore: encode: use FlushError instead of Flush (#6168)WeidiDeng
Co-authored-by: Francis Lavoie <[email protected]>
2024-03-10encode: write status immediately when status code is informational (#6164)WeidiDeng
2024-03-07httpcaddyfile: Keep deprecated `skip_log` in directive order (#6153)Steffen Busch
2024-03-06httpcaddyfile: Add `RegisterDirectiveOrder` function for plugin authors (#5865)Francis Lavoie
* httpcaddyfile: Add `RegisterDirectiveOrder` function for plugin authors * Set up Positional enum * Linter doesn't like a switch on an enum with default * Update caddyconfig/httpcaddyfile/directives.go Co-authored-by: Matt Holt <[email protected]> --------- Co-authored-by: Matt Holt <[email protected]>
2024-03-06rewrite: Implement `uri query` operations (#6120)Aziz Rmadi
* Implemented basic uri query operations * Added support for query operations block * Applied Replacer on all query keys and values * Implemented rename query key opration * Rewrite struct: Changed QueryOperations field to Query and comments cleanup * Cleaned up comments, changed the order of operations and added more tests * Changed order of fields in queryOps struct to match the operations order
2024-03-06fix struct names (#6151)huajin tong
Signed-off-by: thirdkeyword <[email protected]>
2024-03-05fileserver: Preserve query during canonicalization redirect (#6109)Francis Lavoie
* fileserver: Preserve query during canonicalization redirect * Clarify that only a path should be passed
2024-03-05logging: Implement `log_append` handler (#6066)Francis Lavoie
* logging: Implement `extra_log` handler * Rename to `log_append` * Rename `skip_log` to `log_skip` --------- Co-authored-by: Matt Holt <[email protected]>
2024-03-05httpcaddyfile: Allow nameless regexp placeholder shorthand (#6113)Francis Lavoie
Co-authored-by: Matt Holt <[email protected]>
2024-03-05logging: Implement `append` encoder, allow flatter filters config (#6069)Francis Lavoie
* logging: Implement `add` encoder * Allow flatter config structure for `filter` & `add` * Rename to append * govulncheck was unhappy
2024-03-06ci: fix the integration test `TestLeafCertLoaders` (#6149)Mohammed Al Sahaf
2024-03-05vars: Allow overriding `http.auth.user.id` in replacer as a special case (#6108)Francis Lavoie
2024-03-05caddytls: clientauth: leaf verifier: make trusted leaf certs source ↵Aziz Rmadi
pluggable (#6050) * Made trusted leaf certificates pluggable into the tls.client_auth.leaf module * Added leaf loaders modules: file, folder, pem aand storage * Cleaned implementation of leaf cert loader modules * Added tests for leaf certs file and folder loaders * cmd: fix the output of the `Usage` section (#6138) * core: OnExit hooks (#6128) * core: OnExit callbacks * core: Process-global OnExit callbacks * ci: bump golangci/golangci-lint-action from 3 to 4 (#6141) Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3 to 4. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v3...v4) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com> * Added more leaf certificate loaders tests and cleaned up code * Modified leaf cert loaders json field names and cleaned up storage loader comment * Update modules/caddytls/leaffileloader.go * Update LeafStorageLoader certificates field name * Upgraded protobuf version --------- Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: Mohammed Al Sahaf <[email protected]> Co-authored-by: Matt Holt <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-05cmd: Adjust config load logs/errors (#6032)Francis Lavoie
* cmd: Adjust config load logs/errors * Update cmd/main.go Co-authored-by: Matt Holt <[email protected]> --------- Co-authored-by: Matt Holt <[email protected]>
2024-03-05reverseproxy: SRV dynamic upstream failover (#5832)Matt Holt
* Implement grace period, but probably needs sync * Update cached freshness value * D'oh, actually use the grace period * Fix freshness math
2024-03-02ci: bump golangci/golangci-lint-action from 3 to 4 (#6141)dependabot[bot]
Bumps [golangci/golangci-lint-action](https://github.com/golangci/golangci-lint-action) from 3 to 4. - [Release notes](https://github.com/golangci/golangci-lint-action/releases) - [Commits](https://github.com/golangci/golangci-lint-action/compare/v3...v4) --- updated-dependencies: - dependency-name: golangci/golangci-lint-action dependency-type: direct:production update-type: version-update:semver-major ... Signed-off-by: dependabot[bot] <[email protected]> Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
2024-03-01core: OnExit hooks (#6128)Matt Holt
* core: OnExit callbacks * core: Process-global OnExit callbacks
2024-03-01cmd: fix the output of the `Usage` section (#6138)Mohammed Al Sahaf
2024-02-26caddytls: verifier: caddyfile: re-add Caddyfile support (#6127)Mohammed Al Sahaf
* caddytls: verifier: caddyfile: re-add Caddyfile support * appease the linter * caddytls: client_auth: verifier: change namespace to `tls.client_auth.verifier`
2024-02-24acmeserver: add policy field to define allow/deny rules (#5796)Mohammed Al Sahaf
* acmeserver: support specifying the allowed challenge types * add caddyfile adapt tests * acmeserver: add `policy` field to define allow/deny rules * allow `omitempty` to work * add caddyfile support for `policy` * remove "uri domain" policy * fmt the files * add docs * do not support `CommonName`; the field is deprecated * r/DNSDomains/Domains/g * Caddyfile docs * add tests * move `Policy` to top of file
2024-02-23reverseproxy: cookie should be Secure and SameSite=None when TLS (#6115)Sam Ottenhoff
* reverseproxy: cookie should be Secure and SameSite=None when TLS * Update modules/caddyhttp/reverseproxy/selectionpolicies_test.go Co-authored-by: Mohammed Al Sahaf <[email protected]> --------- Co-authored-by: Mohammed Al Sahaf <[email protected]>
2024-02-21caddytest: Rename adapt tests to `*.caddyfiletest` extension (#6119)Francis Lavoie
2024-02-20tests: uses testing.TB interface for helper to be able to use test server in ↵José Carlos Chávez
benchmarks. (#6103)
2024-02-20caddyfile: Assert having a space after heredoc marker to simply check (#6117)bbaa
2024-02-20chore: Update Chroma to get the new Caddyfile lexer (#6118)Francis Lavoie
2024-02-19reverseproxy: use context.WithoutCancel (#6116)WeidiDeng
2024-02-19caddyfile: Reject directives in the place of site addresses (#6104)Aziz Rmadi
Co-authored-by: Francis Lavoie <[email protected]>