Francis Lavoie
1913930783
encode: Fix infinite recursion ( #5672 )
2023-08-02 18:21:11 -06:00
Francis Lavoie
cd486c25d1
caddyhttp: Make use of http.ResponseController
( #5654 )
...
* caddyhttp: Make use of http.ResponseController
Also syncs the reverseproxy implementation with stdlib's which now uses ResponseController as well 2449bbb5e6
* Enable full-duplex for HTTP/1.1
* Appease linter
* Add warning for builds with Go 1.20, so it's less surprising to users
* Improved godoc for EnableFullDuplex, copied text from stdlib
* Only wrap in encode if not already wrapped
2023-08-02 20:03:26 +00:00
mmm444
da23501457
reverseproxy: Connection termination cleanup ( #5663 )
2023-08-01 14:01:12 +00:00
Omar Ramadan
d7d16360d4
reverseproxy: Export ipVersions type ( #5648 )
...
allows AUpstreams to be instantiated externally
2023-07-25 12:50:21 -06:00
Matthew Holt
18c309b5fa
caddyhttp: Preserve original error ( fix #5652 )
2023-07-25 09:41:56 -06:00
ydylla
e041962b66
fileserver: add lazy image loading ( #5646 )
2023-07-22 15:50:36 +00:00
Marten Seemann
f45a6de20d
go.mod: Update quic-go to v0.37.0, bump to Go 1.20 minimum ( #5644 )
...
* update quic-go to v0.37.0
* Bump to Go 1.20
* Bump golangci-lint version, yml syntax consistency
* Use skip-pkg-cache workaround
* Workaround needed for both?
* Seeding weakrand is no longer necessary
---------
Co-authored-by: Matt Holt <mholt@users.noreply.github.com>
Co-authored-by: Francis Lavoie <lavofr@gmail.com>
2023-07-21 22:00:48 -06:00
Matthew Holt
4e36b4c9d1
fileserver: Tweak grid view of browse template
...
All cells on row have same height.
Center-align vertically.
2023-07-17 11:18:40 -06:00
Mohammed Al Sahaf
27bc16abed
fileserver: add export-template
sub-command to file-server
( #5630 )
2023-07-13 15:54:48 -06:00
Matt Holt
0e2c7e1d35
caddytls: Reuse certificate cache through reloads ( #5623 )
...
* caddytls: Don't purge cert cache on config reload
* Update CertMagic
This actually avoids reloading managed certs from storage
when already in the cache, d'oh.
* Fix bug; re-implement HasCertificateForSubject
* Update go.mod: CertMagic tag
2023-07-11 19:10:58 +00:00
Matthew Holt
5dec11f2a0
reverseproxy: Pointer receiver
...
This avoids copying the Upstream, which has an atomically-accessed value
in it.
2023-07-08 13:42:51 -06:00
Matthew Holt
66114cb155
caddyhttp: Trim dot/space only on Windows ( fix #5613 )
...
Follow-up to #2917 . Path matcher needs to trim dots and spaces but only
on Windows.
2023-07-08 13:42:13 -06:00
Francis Lavoie
7a69ae7571
reverseproxy: Honor tls_except_port
for active health checks ( #5591 )
2023-06-22 16:20:30 -06:00
Saber Haj Rabiee
361946eb0c
reverseproxy: weighted_round_robin load balancing policy ( #5579 )
...
* added weighted round robin algorithm to load balancer
* added an adapt integration test for wrr and fixed a typo
* changed args format to Caddyfile args convention
* added provisioner and validator for wrr
* simplified the code and improved doc
2023-06-20 11:42:58 -06:00
mmm444
424ae0f420
reverseproxy: Experimental streaming timeouts ( #5567 )
...
* reverseproxy: WIP streaming timeouts
* More verbose logging by using the child logger
* reverseproxy: Implement streaming timeouts
* reverseproxy: Refactor cleanup
* reverseproxy: Avoid **time.Timer
---------
Co-authored-by: Francis Lavoie <lavofr@gmail.com>
2023-06-19 15:54:43 -06:00
guangwu
4548b7de8e
chore: remove refs of deprecated io/ioutil ( #5576 )
2023-06-16 21:27:57 -06:00
Francis Lavoie
3b19aa2b5a
headers: Allow >
to defer shortcut for replacements ( #5574 )
2023-06-15 17:18:55 -06:00
Dominik Roos
6a41b62e70
caddyhttp: Support custom network for HTTP/3 ( #5573 )
...
Allow registering a custom network mapping for HTTP/3. This is useful
if the original network for HTTP/1.1 and HTTP/2 is not a standard `unix`,
`tcp4`, or `tcp6` network. To keep backwards compatibility, we fall back
to `udp` if the original network is not registered in the mapping.
Fixes #5555
2023-06-13 19:33:39 -06:00
Corin Langosch
2ddb717144
reverseproxy: Fix parsing of source IP in case it's an ipv6 address ( #5569 )
2023-06-12 09:35:22 -06:00
365cent
56af1ceb32
fileserver: browse: Better grid layout ( #5564 )
...
* feat: better implementation of grid layout
* fix: vertical alignment
2023-06-05 07:39:57 +00:00
Matthew Holt
4ba03c9d38
caddytls: Clarify some JSON config docs
2023-06-04 22:15:50 -06:00
kassienull
31d75acc9c
templates: Add readFile
action that does not evaluate templates ( #5553 )
...
* Create an includeRaw template function to include a file without parsing it as a template.
Some formatting fixes
* Rename to readFile, various docs adjustments
---------
Co-authored-by: Francis Lavoie <lavofr@gmail.com>
2023-05-26 10:16:28 -06:00
Matt Holt
5bd9c49042
fileserver: Don't set Etag if mtime is 0 or 1 ( close #5548 ) ( #5550 )
2023-05-22 14:17:15 -06:00
pistasjis
cdd3884b32
fileserver: browse: minor tweaks for grid view, dark mode ( #5545 )
...
* Make grid entries take up full width on mobile and fix breadcrumb color issue in dark mode
Signed-off-by: Pistasj <odyssey346@disroot.org>
* Do mholt's suggestions
Signed-off-by: Pistasj <odyssey346@disroot.org>
---------
Signed-off-by: Pistasj <odyssey346@disroot.org>
2023-05-20 17:23:17 -06:00
Charles Duffy
2615c9c524
fileserver: Only set Etag if not already set ( fix #5546 ) ( #5547 )
2023-05-20 17:21:43 -06:00
pistasjis
5336bc0fb6
fileserver: Fix file browser breadcrumb font ( #5543 )
...
Signed-off-by: Pistasj <odyssey346@disroot.org>
2023-05-19 11:08:47 -06:00
WeidiDeng
29452647d8
caddyhttp: Fix h3 shutdown ( #5541 )
...
* swap h3server close and listener close, avoid quic-listener not closing
* fix typo
2023-05-19 10:00:00 -06:00
Matthew Holt
bd34cb6b4e
fileserver: More filetypes for browse icons
2023-05-19 09:59:44 -06:00
pistasjis
2d236ead3e
fileserver: Fix file browser footer in grid mode ( #5536 )
...
* Fix file browser footer in grid
Signed-off-by: Odyssey <odyssey346@disroot.org>
* Fix file browser footer while in grid mode
Signed-off-by: Pistasj <odyssey346@disroot.org>
* Do mholt's suggestions
Signed-off-by: Odyssey <odyssey346@disroot.org>
---------
Signed-off-by: Odyssey <odyssey346@disroot.org>
Signed-off-by: Pistasj <odyssey346@disroot.org>
2023-05-19 09:51:21 -06:00
Francis Lavoie
cbf16f6d9e
caddyhttp: Implement named routes, invoke
directive ( #5107 )
...
* caddyhttp: Implement named routes, `invoke` directive
* gofmt
* Add experimental marker
* Adjust route compile comments
2023-05-16 15:27:52 +00:00
Tran Phong
13a37688dc
rewrite: use escaped path, fix #5278 ( #5504 )
...
* use escaped path while rewriting
Signed-off-by: TP-O <letranphong2k1@gmail.com>
* restore line break
---------
Signed-off-by: TP-O <letranphong2k1@gmail.com>
2023-05-16 09:16:07 -06:00
Francis Lavoie
e8352aef38
headers: Add > Caddyfile shortcut for enabling defer ( #5535 )
2023-05-16 01:18:13 -04:00
Francis Lavoie
75b690d248
reverseproxy: Expand port ranges to multiple upstreams in CLI + Caddyfile ( #5494 )
...
* reverseproxy: Expand port ranges to multiple upstreams in CLI + Caddyfile
* Add clarifying comment
2023-05-15 12:14:50 -06:00
Matt Holt
52d7335c2b
fileserver: Use EscapedPath for browse ( #5534 )
...
* fileserver: Use EscapedPath for browse
Fix #5143
* Fixes if filter element is not present
* Remove extraneous line
2023-05-15 10:48:05 -06:00
Matt Holt
96919acc9d
caddyhttp: Refactor cert Managers ( fix #5415 ) ( #5533 )
2023-05-15 10:47:30 -06:00
Matt Holt
a02ecb0f88
caddytls: Check for nil ALPN; close #5470 ( #5473 )
...
* Check for nil ALPN; close #5470
* Apply patch
* Actually I want to try this
2023-05-13 07:09:20 -06:00
jjiang-stripe
cfc85ae8ca
caddyhttp: Add a getter for Server.name ( #5531 )
2023-05-11 10:34:05 -06:00
Matt Holt
faf0399e80
caddytls: Configurable fallback SNI ( #5527 )
...
* Initial implementation of fallback_sni
* Apply upstream patch
2023-05-10 14:29:29 -06:00
Francis Lavoie
b19946f6af
reverseproxy: Optimize base case for least_conn and random_choose policies ( #5487 )
...
When only a single request has the least amount of requests, there's no need to compute a random number, because the modulo of 1 will always be 0 anyways.
2023-05-05 20:53:48 -06:00
Francis Lavoie
335cd2e8a4
reverseproxy: Fix active health check header canonicalization, refactor ( #5446 )
2023-05-05 15:19:22 -06:00
Francis Lavoie
48598e1f2a
reverseproxy: Add fallback
for some policies, instead of always random ( #5488 )
2023-05-05 15:08:10 -06:00
Matthew Holt
cdce452edc
logging: Actually honor the SoftStart parameter
2023-05-04 16:30:34 -06:00
Matthew Holt
f3e8b9d95f
logging: Soft start for net writer ( close #5520 )
...
If enabled and there is an error when opening the net writer, ignore the
error and report it along with subsequent logs to stderr.
2023-05-04 16:29:03 -06:00
eanavitarte
c8032867b1
fastcgi: Fix capture_stderr
( #5515 )
2023-05-04 00:40:49 +00:00
Francis Lavoie
3f20a7c9f3
acmeserver: Configurable resolvers
, fix smallstep deprecations ( #5500 )
...
* acmeserver: Configurable `resolvers`, fix smallstep deprecations
* Improve default net/port
* Update proxy resolvers parsing to use the new function
* Update listeners.go
Co-authored-by: itsxaos <33079230+itsxaos@users.noreply.github.com>
---------
Co-authored-by: itsxaos <33079230+itsxaos@users.noreply.github.com>
2023-05-03 17:07:22 +00:00
Dave Henderson
f0e3981774
logging: Add traceID field to access logs when tracing is active ( #5507 )
...
Co-authored-by: Francis Lavoie <lavofr@gmail.com>
2023-04-27 02:46:41 +00:00
Kévin Dunglas
1c9ea0113d
caddyhttp: Impl ResponseWriter.Unwrap()
, prep for Go 1.20's ResponseController
( #5509 )
...
* feat: add support for ResponseWriter.Unwrap()
* cherry-pick Francis' code
2023-04-26 19:44:01 -04:00
Y.Horie
2b04e09fa7
reverseproxy: Fix reinitialize upstream healthy metrics ( #5498 )
...
Co-authored-by: Dávid Szabó <david.szabo97@gmail.com>
2023-04-25 09:59:26 -06:00
cui fliter
3443a8a056
fix some comments ( #5508 )
...
Signed-off-by: cui fliter <imcusg@gmail.com>
2023-04-25 09:54:42 -06:00
Stéphane Mourey
2943c41884
templates: Add fileStat
function ( #5497 )
...
* Add isDir template function
* Update modules/caddyhttp/templates/tplcontext.go
Co-authored-by: Mohammed Al Sahaf <msaa1990@gmail.com>
* Fix funcIsDir return value on error
* Fix funcIsDir return false when root file system not specified
* Add stat function, remove isDir function
* Remove isDir function (really)
* Rename stat to fileStat
---------
Co-authored-by: Mohammed Al Sahaf <msaa1990@gmail.com>
2023-04-24 10:36:37 -06:00