Yuchen Wu
059768551c
Windows support 2/n: Support FD types on different platforms
2024-09-13 14:11:24 -07:00
Allan
4446912080
Fix Opt::parse_args
doc typo
...
Includes-commit: 9a934bc8ba
Replicated-from: https://github.com/cloudflare/pingora/pull/360
2024-09-06 13:43:53 -07:00
Yuchen Wu
5a4a2883ad
docs: fix doc comment for request_summary
...
Co-authored-by: Derek Argueta <darguetap@gmail.com>
2024-09-06 13:43:53 -07:00
Zero King
61700443bf
Replace non-breaking space with regular space
...
Includes-commit: 0560e0ff05
Replicated-from: https://github.com/cloudflare/pingora/pull/356
2024-09-06 13:43:53 -07:00
Andrew Hauck
d1d7a87b76
Add support for binding to local port ranges and retrying on EADDRNOTAVAIL
2024-09-06 13:43:53 -07:00
James Munns
acffb8aaf2
Add error log when attempting to upgrade
...
I was attempting to test upgrades on MacOS, and was a bit confused at the ECONNREFUSED error.
Having this log would help others avoiding troubleshooting this until it is supported.
Includes-commit: 6f80ce2f7a
Replicated-from: https://github.com/cloudflare/pingora/pull/327
2024-08-30 11:18:18 -07:00
Yuchen Wu
f3a5a85031
Windows support 1/n: clean up cargo and certain tests
...
Co-authored-by: Fredrik Enestad <fredrik@enestad.com>
2024-08-30 11:18:18 -07:00
Kevin Guthrie
e564cd535a
Refactor boringssl_openssl
into submodules in preparation for rustls integration
2024-08-30 11:18:18 -07:00
Edward Wang
4f45792d80
Weaken or remove etags when downstream compression applies
...
Allow this as an adjustable setting to preserve etag when
(de)compressing. The default is to weaken etags whenever a compression
module applies.
2024-08-30 11:18:18 -07:00
Kevin Guthrie
1b9e8eead1
Refactor module into and relocate the no-op tls module
2024-08-30 10:03:14 -07:00
Wladimir Palant
d8f3ffae77
Add a dummy TLS implementation to be used as fallback
...
---
Added some more exports used by the server example
Includes-commit: d7be54bbb5
Includes-commit: e36e6e7194
Replicated-from: https://github.com/cloudflare/pingora/pull/277
2024-08-23 17:53:13 -04:00
Andrew Hauck
6214b8d919
Add more tests for setting vary response header
2024-08-23 17:53:13 -04:00
Wladimir Palant
55049c4e79
Fixes #229 , #233 – Set proper response headers when compression is enabled
...
---
Merge branch 'main' into compression-headers
---
Updated “compression enabled” check for recent changes
---
Fixed clippy warning
---
Reverted changes related to Accept-Ranges header
---
Handle multiple Vary headers
---
Merged main branch
Includes-commit: 4ea0c3ff10
Includes-commit: 78f09b29d7
Includes-commit: 973d5969e4
Includes-commit: 9f82578858
Includes-commit: d6e94c93f1
Includes-commit: e88fdb8a37
Includes-commit: f647f04bf1
Replicated-from: https://github.com/cloudflare/pingora/pull/286
2024-08-23 17:53:13 -04:00
Andrew Hauck
91702bb0c0
Make l4 module pub to expose Connect
2024-08-23 17:53:13 -04:00
Matthew Gumport
b0bd0fb0c9
fixup sentry unwrap
...
Don't unconditionally unwrap Sentry, guard it with a default value.
2024-08-16 10:36:11 -07:00
Matthew Gumport
07a970e413
add support for passing sentry release
...
This changes the Sentry field from the DSN string to the entire ClientOptions
struct. This will let us pass more information to the client SDK, including the
git-parsed version information.
2024-08-16 10:36:11 -07:00
Congyu WANG
a1f7b62367
fix h2 request_summary
...
---
also add port number
---
also print query with path for h2 just as h1
Includes-commit: 2df4e29e18
Includes-commit: 53e1810a27
Includes-commit: 8102a0900b
Replicated-from: https://github.com/cloudflare/pingora/pull/345
2024-08-16 10:36:11 -07:00
Edward Wang
e1c6e57db3
Add un-gzip support and allow decompress by algorithm
2024-08-09 14:30:49 -07:00
Yuchen Wu
11b5882a42
Retry all h2 connection when encountering graceful shutdown
...
Before this change, the retry only happens on reused connections. The
shutting down could also happen on new connections as well. So this
change will retry in both cases.
2024-08-09 14:30:49 -07:00
Yuchen Wu
9f50e6ccb0
Handle bare IPv6 address in raw connect Host
2024-08-09 14:30:49 -07:00
Yuchen Wu
32303b9258
Address Rust 1.80 clippy warnings.
...
Also remove the doc_async_trait cfg since it is no longer viable.
2024-07-26 13:35:13 -07:00
Andrew Hauck
be97e35031
Add ability to ignore informational responses when proxying downstream
2024-07-26 13:35:13 -07:00
Yuchen Wu
7c122e7f36
Add the support for custom L4 connector
...
This allows user defined L4 connect() to be used so that they can
customize the connect behavior such as changing socket options and
simulating errors in tests.
2024-07-26 13:35:13 -07:00
Yuchen Wu
9f70abe97b
Release 0.3.0
2024-07-12 11:24:29 -07:00
Andrew Hauck
604390cb14
Add support for setting DSCP on client and server sockets
2024-07-12 11:24:29 -07:00
Yuchen Wu
aa06317ec7
Correctly cast H2 error for GOAWAY
2024-07-12 11:24:29 -07:00
Yuchen Wu
2ff09e727d
Ignore 0.0.0.0 when checking fd mismatch
...
Avoid false positive since 0.0.0.0 in some systems is mapped
to other IPs.
2024-07-12 11:24:29 -07:00
Yuchen Wu
5397e2bd56
Change from debug to display when socket mismatch happens
...
The display format contains more useful info.
2024-07-12 11:24:29 -07:00
Yuchen Wu
0035064d04
Provide a group key for connection reuse isolation
2024-07-12 11:24:29 -07:00
Yuchen Wu
ee7f66082f
Allow to create a new connection when the current one is shutting down
...
When we see a GOAWAY(NO_ERROR), the connector no longer fail the entire request.
Now the connector creates a new connection instead.
2024-07-12 11:24:29 -07:00
Kevin Guthrie
c67b5d0141
Add a replacement cli-parsing function for Opt
that can be used in quickstart with no external dependencies
2024-06-28 12:34:25 -07:00
Wladimir Palant
86e6cd2912
Fixes #261 - Better Default
implementation for Opt
...
---
Empty commit to trigger checks again
---
Another empty commit to trigger checks
Includes-commit: 0e9d853e05
Includes-commit: 1237b26493
Includes-commit: 6fdaf38b63
Replicated-from: https://github.com/cloudflare/pingora/pull/272
2024-06-28 12:34:25 -07:00
Andrew Hauck
ace9d4f135
Update comments on digest functions
2024-06-28 12:34:25 -07:00
Wladimir Palant
23c0378ce6
Fixes #270 - Add Session::digest_mut()
method
...
Includes-commit: 5dd90aadd2
Replicated-from: https://github.com/cloudflare/pingora/pull/271
2024-06-28 12:34:25 -07:00
Yuchen Wu
92bbeb1139
Parse UDS with prefix
...
Now UDS can be parsed from string with prefix "unix:". The raw path
support will be deprecated.
From https://github.com/cloudflare/pingora/pull/141
Co-authored-by: blackanger <blackanger.z@gmail.com>
2024-06-28 12:34:25 -07:00
Yuchen Wu
1176af300b
Make type alias http::Module public
...
Easier for 3rd party to implement the trait.
2024-06-28 12:34:25 -07:00
Edward Wang
03bd29044e
Always respect_keepalive when releasing http session
...
When a user calls `release_http_session` on an http Connector, it is
usually implied that they intend to reuse the underlying connection if
possible. Previously for H1 this involved reaching into the H1 client
Session and calling `respect_keepalive`. The new behavior always
respects keepalive as part of releasing the http session, as it was very
easy to overlook this step and unintentionally disable connection reuse
for H1 sessions.
2024-06-28 12:34:25 -07:00
Andrew Hauck
fbf3a95749
Add a write timeout to write body buf and an option to set a minimum send rate
2024-06-28 12:34:25 -07:00
Yuchen Wu
c0b23c6736
Expose a few more TLS APIs
2024-06-28 12:34:25 -07:00
Wladimir Palant
05005e2a4d
Fixes #234 - Clarify ServerConf
documentation
...
Includes-commit: d9a37a1f38
Replicated-from: https://github.com/cloudflare/pingora/pull/273
2024-06-21 09:54:09 -07:00
Matthew Gumport
c943fc1c78
compression: allow setting level per algorithm
...
Fixes https://github.com/cloudflare/pingora/issues/228
This adds a function to set the compression level per supported algorithm. The
behavior of `adjust_level` is changed to set the level for all of the algorithms
such that it still behaves the same.
2024-06-21 09:54:09 -07:00
Edward Wang
9500e62855
Make ipv6_only flag an Option<bool>
...
Fixes #279 . This allows falling back to the system default on None, or
explicitly setting false if the system default happens to be true.
2024-06-21 09:54:09 -07:00
Edward Wang
02111515c6
Expose TCP_INFO fields as pub
2024-06-21 09:54:09 -07:00
Andrew Hauck
a1f1ad8a43
h2c support
2024-06-21 09:54:09 -07:00
Wladimir Palant
2d30077683
Fixed typo in docs: connnection => connection
...
Includes-commit: bbef4bdd75
Replicated-from: https://github.com/cloudflare/pingora/pull/274
2024-06-21 09:54:09 -07:00
Yuchen Wu
4e251f663a
Fxi clippy for Rust 1.79
2024-06-21 09:54:09 -07:00
Yuchen Wu
708e03211d
Auto generate the size and verify it for setsockops calls
...
This avoids human error with stronger validation.
2024-06-21 09:54:09 -07:00
Ivan Babrou
bf07ed3f10
add get_socket_cookie helper
...
This cab be used for tracing to match the sockets in the kernel.
2024-06-21 09:54:09 -07:00
Andrew Hauck
d86c5855a0
Track write duration on Poll::Ready(Err)
2024-06-21 09:54:09 -07:00
Andrew Hauck
35b9f1db00
Remove Accept-Ranges header when response is compressed
2024-06-21 09:54:09 -07:00