aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2024-08-02Upgrade latest Rust to 1.80yuchen/rust-1.80Yuchen Wu
2024-07-26Allow unknown linksYuchen Wu
2024-07-26Address Rust 1.80 clippy warnings.Yuchen Wu
Also remove the doc_async_trait cfg since it is no longer viable.
2024-07-26Fix a rebase merge errorYuchen Wu
2024-07-26Add ability to ignore informational responses when proxying downstreamAndrew Hauck
2024-07-26Support opaque extension field in BackendYuchen Wu
Sometimes service dicovery can carry arbitrary information, such as SNI and request path to instrument how to connect to backend servers. Backend now support to carry this type of information.
2024-07-26Add callback function to Backends update() to address atomicity issue when ↵Andrew Hauck
building selector
2024-07-26Add the support for custom L4 connectorYuchen Wu
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-26chore(openssl): Update OpenSSL function signatures to use *mut instead of *constpluveto
This PR updates the function signatures in the `ext.rs` file to use `*mut` instead of `*const` for the `ssl` and `cert` parameters in the `SSL_use_certificate` and `SSL_use_PrivateKey` functions. This indicates that the functions can modify the SSL and certificate objects as intended. Ref: - https://www.openssl.org/docs/man1.1.1/man3/SSL_use_certificate.html https://boringssl.googlesource.com/boringssl/+/refs/tags/~~~/ssl/ssl_cert.cc#292 Refactor the `cvt` function to use `c_long` instead of `c_int` for the return type for better compatibility with the types used in the OpenSSL library. Also, add a test case for the `ssl_set_groups_list` function to ensure it handles valid and invalid input correctly. --- chore(openssl):fix increase X509 reference count Includes-commit: 7841271b4af8d3db800d9c5d7d38a4dd33d32407 Includes-commit: e13243188916617ebb80045895e3582b883126ec Replicated-from: https://github.com/cloudflare/pingora/pull/308
2024-07-26Fixes #311 - Make timeouts SyncWladimir Palant
Includes-commit: 3faed99e264cda6ba3986912d06c6e67bf5df13b Replicated-from: https://github.com/cloudflare/pingora/pull/312
2024-07-26Fix bleep commit hashYuchen Wu
2024-07-12Update 0.3.0 CHANGELOGYuchen Wu
2024-07-12Release 0.3.00.3.0Yuchen Wu
2024-07-12Add support for setting DSCP on client and server socketsAndrew Hauck
2024-07-12Upgrade to Rust 1.79Yuchen Wu
2024-07-12Correctly cast H2 error for GOAWAYYuchen Wu
2024-07-12Ignore 0.0.0.0 when checking fd mismatchYuchen Wu
Avoid false positive since 0.0.0.0 in some systems is mapped to other IPs.
2024-07-12Provide or_fail() for convenience error conversion.Yuchen Wu
2024-07-12Add an example to create and import 3rd party modulesYuchen Wu
2024-07-12Change from debug to display when socket mismatch happensYuchen Wu
The display format contains more useful info.
2024-07-12Provide a group key for connection reuse isolationYuchen Wu
2024-07-12Mark the error source from get_http_session()Yuchen Wu
Although it is implied that fail_to_connect() errors are already caused by upstream connections, it is more clear for the user's code inside this callback by marking the error source in this case.
2024-07-12Invoke request_body_filter of modules for proxiesYuchen Wu
2024-07-12Allow to create a new connection when the current one is shutting downYuchen Wu
When we see a GOAWAY(NO_ERROR), the connector no longer fail the entire request. Now the connector creates a new connection instead.
2024-06-28make seeded estimator and plumbing for testsMatthew Gumport
I started fidgeting with another one of the tests breaking because of the estimator not being deterministic, and then decided to do this another way. This adds `seeded` and `seeded_compact` constructors to the estimator which are used in tests to override the LFU. These are hidden behind `cfg(test)`. The `random_status` field of the UFO object is also overridden with the same seeds as used for the seeded LFU. These make the tests pass consistently without requiring further monkeying.
2024-06-28Change max allowed resp headers in HeaderSerde to match H1 maxEdward Wang
Currently the allowed max is hardcoded, the HeaderSerde should match the H1 max count to avoid problems deserializing from cache.
2024-06-28Add a replacement cli-parsing function for `Opt` that can be used in ↵Kevin Guthrie
quickstart with no external dependencies
2024-06-28Fixes #261 - Better `Default` implementation for `Opt`Wladimir Palant
--- Empty commit to trigger checks again --- Another empty commit to trigger checks Includes-commit: 0e9d853e05c1ea59bfaceac48a2769d523f0e818 Includes-commit: 1237b26493d0f9980441551be83cac62d7dc1cb8 Includes-commit: 6fdaf38b6359a17ba739097b6dff4250c6393ba5 Replicated-from: https://github.com/cloudflare/pingora/pull/272
2024-06-28Update comments on digest functionsAndrew Hauck
2024-06-28Fixes #270 - Add `Session::digest_mut()` methodWladimir Palant
Includes-commit: 5dd90aadd29b63564433ad8caccff7f4ab10eb5b Replicated-from: https://github.com/cloudflare/pingora/pull/271
2024-06-28Parse UDS with prefixYuchen Wu
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 <[email protected]>
2024-06-28Move adding ResponseCompression module logic to init_downstream_modulesYuchen Wu
So that users can override this behavior.
2024-06-28Added `init_downstream_modules` phase allowing modules to be set up before ↵Wladimir Palant
startup Includes-commit: 1bf3d4dfea191cdcefd37dc42fa5c269fc29ff64 Replicated-from: https://github.com/cloudflare/pingora/pull/284
2024-06-28Make type alias http::Module publicYuchen Wu
Easier for 3rd party to implement the trait.
2024-06-28Report evction/invalidtion typesYuchen Wu
This helps the storage to log/track different type of cache deletions.
2024-06-28Always respect_keepalive when releasing http sessionEdward Wang
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-28Add a write timeout to write body buf and an option to set a minimum send rateAndrew Hauck
2024-06-28Add is_hit fn to RTCache CacheStatusEdward Wang
2024-06-28Expose a few more TLS APIsYuchen Wu
2024-06-21ci: update targeted toolchainsMatthew Gumport
Adds nightly to the toolchain list and short-circuits steps where nightly will have extra warnings. Also update 1.78->1.79 to track new stable release.
2024-06-21Fixes #234 - Clarify `ServerConf` documentationWladimir Palant
Includes-commit: d9a37a1f38e8369d1b1eae28d67624d7e54e8738 Replicated-from: https://github.com/cloudflare/pingora/pull/273
2024-06-21compression: allow setting level per algorithmMatthew Gumport
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-21Make ipv6_only flag an Option<bool>Edward Wang
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-21change tinyufo test to be deterministicMatthew Gumport
Previously the test would fail because the item evicted may be the entry (4,4,1) failing admission. I adjusted the weights so that all weights for items besides the one we want moved to the main cache are equal and the cache can only hold three. The test then checks that 1 is moved to the main, the evicted key is gone, and the other two are present.
2024-06-21Expose TCP_INFO fields as pubEdward Wang
2024-06-21h2c supportAndrew Hauck
2024-06-21Fixed typo in docs: connnection => connectionWladimir Palant
Includes-commit: bbef4bdd755c9033ab22d583ff922553b0fd603c Replicated-from: https://github.com/cloudflare/pingora/pull/274
2024-06-21Fxi clippy for Rust 1.79Yuchen Wu
2024-06-21Auto generate the size and verify it for setsockops callsYuchen Wu
This avoids human error with stronger validation.
2024-06-21add get_socket_cookie helperIvan Babrou
This cab be used for tracing to match the sockets in the kernel.