Merge pull request #153 from junkurihara/develop

0.7.1
This commit is contained in:
Jun Kurihara 2024-04-10 14:30:44 +09:00 committed by GitHub
commit 679d613ec3
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
8 changed files with 39 additions and 56 deletions

View file

@ -135,7 +135,7 @@ jobs:
- name: release - name: release
if: ${{ steps.regex-match.outputs.match != ''}} if: ${{ steps.regex-match.outputs.match != ''}}
uses: softprops/action-gh-release@v1 uses: softprops/action-gh-release@v2
with: with:
files: /tmp/assets/*.tar.gz files: /tmp/assets/*.tar.gz
name: ${{ github.event.client_payload.pull_request.title }} name: ${{ github.event.client_payload.pull_request.title }}

View file

@ -2,6 +2,10 @@
## 0.8.0 (Unreleased) ## 0.8.0 (Unreleased)
## 0.7.1
- deps and patches
## 0.7.0 ## 0.7.0
### Important Changes ### Important Changes

View file

@ -1,5 +1,5 @@
[workspace.package] [workspace.package]
version = "0.7.0" version = "0.7.1"
authors = ["Jun Kurihara"] authors = ["Jun Kurihara"]
homepage = "https://github.com/junkurihara/rust-rpxy" homepage = "https://github.com/junkurihara/rust-rpxy"
repository = "https://github.com/junkurihara/rust-rpxy" repository = "https://github.com/junkurihara/rust-rpxy"

View file

@ -26,24 +26,24 @@ rpxy-lib = { path = "../rpxy-lib/", default-features = false, features = [
"sticky-cookie", "sticky-cookie",
] } ] }
anyhow = "1.0.79" anyhow = "1.0.81"
rustc-hash = "1.1.0" rustc-hash = "1.1.0"
serde = { version = "1.0.196", default-features = false, features = ["derive"] } serde = { version = "1.0.197", default-features = false, features = ["derive"] }
derive_builder = "0.20.0" derive_builder = "0.20.0"
tokio = { version = "1.36.0", default-features = false, features = [ tokio = { version = "1.37.0", default-features = false, features = [
"net", "net",
"rt-multi-thread", "rt-multi-thread",
"time", "time",
"sync", "sync",
"macros", "macros",
] } ] }
async-trait = "0.1.77" async-trait = "0.1.79"
rustls-pemfile = "1.0.4" rustls-pemfile = "1.0.4"
mimalloc = { version = "*", default-features = false } mimalloc = { version = "*", default-features = false }
# config # config
clap = { version = "4.5.0", features = ["std", "cargo", "wrap_help"] } clap = { version = "4.5.4", features = ["std", "cargo", "wrap_help"] }
toml = { version = "0.8.10", default-features = false, features = ["parse"] } toml = { version = "0.8.12", default-features = false, features = ["parse"] }
hot_reload = "0.1.5" hot_reload = "0.1.5"
# logging # logging

View file

@ -31,10 +31,10 @@ webpki-roots = ["rustls-backend", "hyper-rustls/webpki-tokio"]
[dependencies] [dependencies]
rand = "0.8.5" rand = "0.8.5"
rustc-hash = "1.1.0" rustc-hash = "1.1.0"
bytes = "1.5.0" bytes = "1.6.0"
derive_builder = "0.20.0" derive_builder = "0.20.0"
futures = { version = "0.3.30", features = ["alloc", "async-await"] } futures = { version = "0.3.30", features = ["alloc", "async-await"] }
tokio = { version = "1.36.0", default-features = false, features = [ tokio = { version = "1.37.0", default-features = false, features = [
"net", "net",
"rt-multi-thread", "rt-multi-thread",
"time", "time",
@ -42,17 +42,17 @@ tokio = { version = "1.36.0", default-features = false, features = [
"macros", "macros",
"fs", "fs",
] } ] }
pin-project-lite = "0.2.13" pin-project-lite = "0.2.14"
async-trait = "0.1.77" async-trait = "0.1.79"
# Error handling # Error handling
anyhow = "1.0.79" anyhow = "1.0.81"
thiserror = "1.0.57" thiserror = "1.0.58"
# http for both server and client # http for both server and client
http = "1.0.0" http = "1.1.0"
http-body-util = "0.1.0" http-body-util = "0.1.1"
hyper = { version = "1.1.0", default-features = false } hyper = { version = "1.2.0", default-features = false }
hyper-util = { version = "0.1.3", features = ["full"] } hyper-util = { version = "0.1.3", features = ["full"] }
futures-util = { version = "0.3.30", default-features = false } futures-util = { version = "0.3.30", default-features = false }
futures-channel = { version = "0.3.30", default-features = false } futures-channel = { version = "0.3.30", default-features = false }
@ -74,7 +74,7 @@ hot_reload = "0.1.5"
rustls = { version = "0.21.10", default-features = false } rustls = { version = "0.21.10", default-features = false }
tokio-rustls = { version = "0.24.1", features = ["early-data"] } tokio-rustls = { version = "0.24.1", features = ["early-data"] }
webpki = "0.22.4" webpki = "0.22.4"
x509-parser = "0.15.1" x509-parser = "0.16.0"
# logging # logging
tracing = { version = "0.1.40" } tracing = { version = "0.1.40" }
@ -83,28 +83,28 @@ tracing = { version = "0.1.40" }
quinn = { version = "0.10.2", optional = true } quinn = { version = "0.10.2", optional = true }
h3 = { path = "../submodules/h3/h3/", optional = true } h3 = { path = "../submodules/h3/h3/", optional = true }
h3-quinn = { path = "../submodules/h3/h3-quinn/", optional = true } h3-quinn = { path = "../submodules/h3/h3-quinn/", optional = true }
s2n-quic = { version = "1.33.0", default-features = false, features = [ s2n-quic = { version = "1.36.0", default-features = false, features = [
"provider-tls-rustls", "provider-tls-rustls",
], optional = true } ], optional = true }
s2n-quic-core = { version = "0.33.0", default-features = false, optional = true } s2n-quic-core = { version = "0.36.0", default-features = false, optional = true }
s2n-quic-h3 = { path = "../submodules/s2n-quic-h3/", optional = true } s2n-quic-h3 = { path = "../submodules/s2n-quic-h3/", optional = true }
s2n-quic-rustls = { version = "0.33.0", optional = true } s2n-quic-rustls = { version = "0.36.0", optional = true }
# for UDP socket wit SO_REUSEADDR when h3 with quinn # for UDP socket wit SO_REUSEADDR when h3 with quinn
socket2 = { version = "0.5.5", features = ["all"], optional = true } socket2 = { version = "0.5.6", features = ["all"], optional = true }
# cache # cache
http-cache-semantics = { path = "../submodules/rusty-http-cache-semantics/", optional = true } http-cache-semantics = { path = "../submodules/rusty-http-cache-semantics/", optional = true }
lru = { version = "0.12.2", optional = true } lru = { version = "0.12.3", optional = true }
sha2 = { version = "0.10.8", default-features = false, optional = true } sha2 = { version = "0.10.8", default-features = false, optional = true }
# cookie handling for sticky cookie # cookie handling for sticky cookie
chrono = { version = "0.4.34", default-features = false, features = [ chrono = { version = "0.4.37", default-features = false, features = [
"unstable-locales", "unstable-locales",
"alloc", "alloc",
"clock", "clock",
], optional = true } ], optional = true }
base64 = { version = "0.21.7", optional = true } base64 = { version = "0.22.0", optional = true }
[dev-dependencies] [dev-dependencies]
tokio-test = "0.4.3" tokio-test = "0.4.4"

View file

@ -99,11 +99,7 @@ impl ServerCryptoBase {
// add server certificate and key // add server certificate and key
if let Err(e) = resolver_local.add(server_name.as_str(), certified_key.to_owned()) { if let Err(e) = resolver_local.add(server_name.as_str(), certified_key.to_owned()) {
error!( error!("{}: Failed to read some certificates and keys {}", server_name.as_str(), e)
"{}: Failed to read some certificates and keys {}",
server_name.as_str(),
e
)
} }
// add client certificate if specified // add client certificate if specified
@ -114,11 +110,7 @@ impl ServerCryptoBase {
client_ca_roots_local.add_trust_anchors(owned_trust_anchors.into_iter()); client_ca_roots_local.add_trust_anchors(owned_trust_anchors.into_iter());
} }
Err(e) => { Err(e) => {
warn!( warn!("Failed to add client CA certificate for {}: {}", server_name.as_str(), e);
"Failed to add client CA certificate for {}: {}",
server_name.as_str(),
e
);
} }
} }
} }
@ -174,11 +166,7 @@ impl ServerCryptoBase {
if certs_and_keys.client_ca_certs.is_none() { if certs_and_keys.client_ca_certs.is_none() {
// aggregated server config for no client auth server for http3 // aggregated server config for no client auth server for http3
if let Err(e) = resolver_global.add(server_name.as_str(), certified_key) { if let Err(e) = resolver_global.add(server_name.as_str(), certified_key) {
error!( error!("{}: Failed to read some certificates and keys {}", server_name.as_str(), e)
"{}: Failed to read some certificates and keys {}",
server_name.as_str(),
e
)
} }
} }
} }
@ -216,15 +204,11 @@ impl ServerCryptoBase {
if certs_and_keys.client_ca_certs.is_none() { if certs_and_keys.client_ca_certs.is_none() {
// aggregated server config for no client auth server for http3 // aggregated server config for no client auth server for http3
if let Err(e) = resolver_global.add(server_name.as_str(), certified_key) { if let Err(e) = resolver_global.add(server_name.as_str(), certified_key) {
error!( error!("{}: Failed to read some certificates and keys {}", server_name.as_str(), e)
"{}: Failed to read some certificates and keys {}",
server_name.as_str(),
e
)
} }
} }
} }
let alpn = vec![ let alpn = [
b"h3".to_vec(), b"h3".to_vec(),
b"hq-29".to_vec(), // TODO: remove later? b"hq-29".to_vec(), // TODO: remove later?
b"h2".to_vec(), b"h2".to_vec(),
@ -257,12 +241,7 @@ fn parse_server_certs_and_keys_s2n(
None None
} }
}) })
.ok_or_else(|| { .ok_or_else(|| std::io::Error::new(std::io::ErrorKind::InvalidInput, "Unable to find a valid certificate and key"))?;
std::io::Error::new(
std::io::ErrorKind::InvalidInput,
"Unable to find a valid certificate and key",
)
})?;
let certs: Vec<_> = certs_and_keys let certs: Vec<_> = certs_and_keys
.certs .certs
.iter() .iter()

@ -1 +1 @@
Subproject commit c11410c76e738a62e62e7766b82f814547621f6f Subproject commit e7c7ab9d634ef73784d6cbc424a270dbaa4f1c99

View file

@ -13,5 +13,5 @@ publish = false
bytes = { version = "1", default-features = false } bytes = { version = "1", default-features = false }
futures = { version = "0.3", default-features = false } futures = { version = "0.3", default-features = false }
h3 = { path = "../h3/h3/" } h3 = { path = "../h3/h3/" }
s2n-quic = "1.33.0" s2n-quic = "1.36.0"
s2n-quic-core = "0.33.0" s2n-quic-core = "0.36.0"