aboutsummaryrefslogtreecommitdiffhomepage
AgeCommit message (Collapse)Author
2024-11-01Release 0.4.00.4.0Yuchen Wu
2024-11-01Update Readme to reflect rustls and WindowsYuchen Wu
2024-11-01add support for removing items from pingora-memory-cacheZaidoon Abd Al Hadi
2024-11-01Use OkOrErr on connect() + accept() when stream doesn't existAndrew Hauck
2024-10-31fix audit workflowFredrik Enestad
2024-10-28feat/remove-keys-from-tiny-ufoAyodeji Akinola
Includes-commit: ac601366bd02f97c132e0c1e762e17a9c962b9a6 Includes-commit: f8f456ae72db0f78aa5823f5e4121322ecbb9816 Replicated-from: https://github.com/cloudflare/pingora/pull/442 Co-authored-by: Matthew Gumport <[email protected]>
2024-10-28Move the cache-lock timing data into a digest that is not cleared when the ↵Kevin Guthrie
inner cache meta is dropped
2024-10-28allow stale in cache_vary_lookupGustav Davidsson
2024-10-28change `CachePut::cacheable` to own `ResponseHeader`Matthew Gumport
This changes the `CachePut` trait to take ownership of the response header. We have a use-case for mutating the headers as we process the response, and we would like to avoid copying them in order to do so.
2024-10-28Rust 1.82Yuchen Wu
2024-10-28tag subrequests as suchMatthew Gumport
This adds a hook during the flow where we move the write permit around for subrequests to refresh stale assets to tag the parent span as being part of a subrequest.
2024-10-28Fix clippy lint for leaking private type in rustlsKevin Guthrie
2024-10-28Change `new_with_opt_and_conf` to accept `impl Into<Option<Opt>>` instead of ↵Kevin Guthrie
explicit option
2024-10-28Make opt optional for frontendsMatt Fleming
Allow frontends to avoid jumping through hoops to create an Opt object, for example, when configuration is handled by a config file. Includes-commit: 8204820b217b6d60906b8361d2e077ed743b970b Replicated-from: https://github.com/cloudflare/pingora/pull/390
2024-10-28Update quickstart to support Opt::parse_argsTim Upthegrove
The current quickstart document suggests to use pingora v0.1, but it also suggests using the Opt::parse_args interface, which was introduced in release v0.3.0. Update the quickstart document to suggest using v0.3 when setting up the cargo.toml file. Addresses #432 Includes-commit: 9153a8a984d2e81304f8b7d6d338f1bfa126e5c3 Replicated-from: https://github.com/cloudflare/pingora/pull/433
2024-10-28Plumb errors through rustls implementationKevin Guthrie
2024-10-28Add preliminary rustls supportKevin Guthrie
Co-authored-by: Harald Gutmann <[email protected]>
2024-10-28pingora-core: Update socket dependencySargun Dhillon
We have the socket version at 0, which matches 0.3 as well. That wont work because it doesn't have feature "all". We need 0.4+. >=0.4, <1, should match ^0, but exclude 0.3. Includes-commit: 98debd9f2793a77047caebf2e70684eb7ef4df14 Replicated-from: https://github.com/cloudflare/pingora/pull/413
2024-10-28Apply response_body_filter when serving from cacheEdward Wang
Previously the response header filter was applied when serving from cache (using `proxy_cache_hit`), but not the response body filter.
2024-10-28shutdown h2 connection gracefully with GOAWAYsJordan Wu
Co-authored-by: Matthew Gumport <[email protected]> Includes-commit: 15e5c64ce46da5e061f2c84ce45cdddedf2f6058 Replicated-from: https://github.com/cloudflare/pingora/pull/415
2024-10-18Upgrade Rust to 1.82Yuchen Wu
2024-10-18Upgrade the latest Rust to 1.81Yuchen Wu
2024-10-18windows: fixes for building pingora-coreFredrik Enestad
Includes-commit: 5b5f2aeecf459f633b5459fffba4ad66da495a0a Replicated-from: https://github.com/cloudflare/pingora/pull/429
2024-10-18Auto snake case set-cookie headerYuchen Wu
For consistency when proxying h2 traffic to h1.
2024-10-18Add into_inner() for HTTP client and serverSargun Dhillon
This adds the into_inner() function to the stream type, allowing the HTTP/1.1 client and server to be turned back into a stream. These functions are useful for implementing HTTP CONNECT or HTTP Upgrade. Includes-commit: 95aa77098cdfc7667074f2793cd326f496da66a1 Replicated-from: https://github.com/cloudflare/pingora/pull/412
2024-10-18Check the current advertised h2 max streamsYuchen Wu
This change fixes an issue that the actual current max send streams is ignored. This change requires h2 >= 0.4.6
2024-10-18Guard against excess cache put response body payloadsEdward Wang
Previously clients to the cache put interface writing excess response body payloads (or bodies for responses that shouldn't have bodies) could trigger a panic in the body parser. This change opts to just drain these excess payloads without writing the excess body into cache.
2024-10-12NOJIRA Update documentation to reflect changes in featuresKevin Guthrie
2024-10-12Refactor openssl code one more time before rustls integrationYuchen Wu
Co-authored-by: Harald Gutmann <[email protected]>
2024-10-11document request_body_filterspacewander
Includes-commit: cd6f77726b2a5ca57f885af360de2ad0de788e87 Replicated-from: https://github.com/cloudflare/pingora/pull/402 Signed-off-by: spacewander <[email protected]>
2024-10-11Don't reuse session when downstream errors during cache missEdward Wang
When a downstream error occurs while a cache miss is being served, the downstream error is ignored so the upstream can continue writing to the cache. However, it is not safe to try reusing the server session in this case.
2024-10-11Detect h2 preface for h2c requests.Yuchen Wu
This allows h2c and http1 to co-exist on the same port.
2024-10-11Add windows compatibility for get_original_dest()Andrew Hauck
2024-10-11Add Methods to SocketDigest for Retrieving SO_ORIGINAL_DST Informationermakov-oleg
--- Merge branch 'cloudflare:main' into original-dst Co-authored-by: ermakov-oleg <[email protected]> Includes-commit: a3f2affceb1fcc41742c72088f993e05600abd2f Includes-commit: a73893b243b68108033ecda26b0d36939ad36891 Replicated-from: https://github.com/cloudflare/pingora/pull/387
2024-10-11Merge extensions between old and new meta on revalidateEdward Wang
2024-10-11Fix all the warnings for non-linux unixAndrew Hauck
2024-10-11feat(core): make 'sentry' optionalYuchen Wu
Co-authored-by: Grvzard <[email protected]>
2024-10-11Windows supportYuchen Wu
Co-authored-by: Fredrik Enestad <[email protected]>
2024-10-11Add a warning log if the dictionary for `HeaderSerde` is `None`Kevin Guthrie
2024-10-11Surface sentry feature at pingora crateYuchen Wu
2024-10-11Rust 1.81Yuchen Wu
2024-10-07Make sentry an optional featureKevin Guthrie
2024-10-07Stream able to configure rx timestamp readingDaniel Dao
This allows us to optionally enable rx timestamp reading logic per stream by calling `set_rx_timestamp`. When rx timestamp is disabled, the standard battle-tested logic is used.
2024-10-07support retrieving rx timestamp for TcpStreamDaniel Dao
Documentation: https://docs.kernel.org/networking/timestamping.html This modifies Stream type to be able to setup rx timestamp on its socket, and use `recvmsg` to read the returned timestamp. The rx timestamp of the last recvmsg is stored as `rx_ts` In the context of tcp stream, if the returned byte range spans multiple timestamps, the last one is returned.
2024-10-07Safe guard for empty alpn.Yuchen Wu
Per ~~~-5535: it is not safe to call SSL_select_next_proto() with invalid alpn_in. Although our code is safe because it is only used via set_alpn_select_callback which performs the check, an additional guard is added just in case these functions are used in other context.
2024-10-07Add function for custom rate measurementsKevin Guthrie
2024-10-07A couple of error message nitsGustav Davidsson
2024-09-23Update semgrep.ymlhrushikeshdeshpande
Updating existing Semgrep.yml file - Semgrep is a tool that will be used to scan Cloudflare's public repos for Supply chain, code and secrets. This work is part of Application & Product Security team's initiative to onboard Semgrep onto all of Cloudflare's public repos. In case of any questions, please reach out to "Hrushikesh Deshpande" on cf internal chat.
2024-09-23Add support for gRPC-web module to bridge gRPC-web client requests to gRPC ↵Andrew Hauck
server requests
2024-09-23pingora-limits - Rate Estimator hashes & slots configurationPaweł Jastrzebski
--- fix cargo fmt check Includes-commit: 19eeddcfbf0f4a7e4dc96cf4782143e96f54b371 Includes-commit: 41987023f175942be8f47ede18ada85b20993cca Replicated-from: https://github.com/cloudflare/pingora/pull/380