Skip to content

Commit

Permalink
fix: bugfix when switching features from http3-quinn to http3-s2n
Browse files Browse the repository at this point in the history
  • Loading branch information
junkurihara committed Jul 30, 2023
1 parent e87ef0c commit b8d970d
Show file tree
Hide file tree
Showing 5 changed files with 17 additions and 12 deletions.
8 changes: 6 additions & 2 deletions docker/Dockerfile
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,10 @@ WORKDIR /tmp
COPY . /tmp/

ARG TARGETARCH
ARG CARGO_FEATURES
ENV CARGO_FEATURES ${CARGO_FEATURES}
ARG ADDITIONAL_DEPS
ENV ADDITIONAL_DEPS ${ADDITIONAL_DEPS}

RUN if [ $TARGETARCH = "amd64" ]; then \
echo "x86_64" > /arch; \
Expand All @@ -29,13 +33,13 @@ ENV RUSTFLAGS "-C link-arg=-s"

RUN update-ca-certificates 2> /dev/null || true

RUN apt-get update && apt-get install -qy --no-install-recommends $BUILD_DEPS && \
RUN apt-get update && apt-get install -qy --no-install-recommends $BUILD_DEPS ${ADDITIONAL_DEPS} && \
curl -sSf https://sh.rustup.rs | bash -s -- -y --default-toolchain stable && \
export PATH="$HOME/.cargo/bin:$PATH" && \
echo "Install toolchain" && \
rustup target add $(cat /arch)-unknown-linux-gnu &&\
echo "Building rpxy from source" && \
cargo build --release --target=$(cat /arch)-unknown-linux-gnu && \
cargo build --release --target=$(cat /arch)-unknown-linux-gnu ${CARGO_FEATURES} && \
strip --strip-all /tmp/target/$(cat /arch)-unknown-linux-gnu/release/rpxy &&\
cp /tmp/target/$(cat /arch)-unknown-linux-gnu/release/rpxy /tmp/target/release/rpxy

Expand Down
7 changes: 5 additions & 2 deletions docker/docker-compose.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,13 @@ services:
- 127.0.0.1:8443:8443
build:
context: ../
args:
- "CARGO_FEATURES=--no-default-features --features http3-s2n"
- "ADDITIONAL_DEPS=pkg-config libssl-dev cmake libclang1 gcc g++"
dockerfile: ./docker/Dockerfile
platforms: # Choose your platforms
- "linux/amd64"
# - "linux/arm64"
# - "linux/amd64"
- "linux/arm64"
environment:
- LOG_LEVEL=debug
- LOG_TO_FILE=true
Expand Down
3 changes: 1 addition & 2 deletions rpxy-bin/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ publish = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[features]
default = ["http3"]
http3 = ["rpxy-lib/http3"]
default = ["http3-quinn"]
http3-quinn = ["rpxy-lib/http3-quinn"]
http3-s2n = ["rpxy-lib/http3-s2n"]

Expand Down
6 changes: 3 additions & 3 deletions rpxy-bin/src/config/toml.rs
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@ pub struct ConfigToml {
pub experimental: Option<Experimental>,
}

#[cfg(feature = "http3")]
#[cfg(any(feature = "http3-quinn", feature = "http3-s2n"))]
#[derive(Deserialize, Debug, Default, PartialEq, Eq, Clone)]
pub struct Http3Option {
pub alt_svc_max_age: Option<u32>,
Expand All @@ -34,7 +34,7 @@ pub struct Http3Option {

#[derive(Deserialize, Debug, Default, PartialEq, Eq, Clone)]
pub struct Experimental {
#[cfg(feature = "http3")]
#[cfg(any(feature = "http3-quinn", feature = "http3-s2n"))]
pub h3: Option<Http3Option>,
pub ignore_sni_consistency: Option<bool>,
}
Expand Down Expand Up @@ -128,7 +128,7 @@ impl TryInto<ProxyConfig> for &ConfigToml {

// experimental
if let Some(exp) = &self.experimental {
#[cfg(feature = "http3")]
#[cfg(any(feature = "http3-quinn", feature = "http3-s2n"))]
{
if let Some(h3option) = &exp.h3 {
proxy_config.http3 = true;
Expand Down
5 changes: 2 additions & 3 deletions rpxy-lib/Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -12,8 +12,7 @@ publish = false
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[features]
default = ["http3", "sticky-cookie"]
http3 = ["http3-s2n"]
default = ["http3-quinn", "sticky-cookie"]
http3-quinn = ["quinn", "h3", "h3-quinn", "socket2"]
http3-s2n = ["h3", "s2n-quic", "s2n-quic-rustls", "s2n-quic-h3"]
sticky-cookie = ["base64", "sha2", "chrono"]
Expand Down Expand Up @@ -67,7 +66,7 @@ h3 = { path = "../h3/h3/", optional = true }
h3-quinn = { path = "../h3-quinn/", optional = true } # Tentative to support rustls-0.21
# for UDP socket wit SO_REUSEADDR when h3 with quinn
socket2 = { version = "0.5.3", features = ["all"], optional = true }
s2n-quic = { path = "../s2n-quic/quic/s2n-quic/", features = [
s2n-quic = { path = "../s2n-quic/quic/s2n-quic/", default-features = false, features = [
"provider-tls-rustls",
], optional = true }
s2n-quic-h3 = { path = "../s2n-quic/quic/s2n-quic-h3/", optional = true }
Expand Down

0 comments on commit b8d970d

Please sign in to comment.