Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1,131 changes: 606 additions & 525 deletions Cargo.lock

Large diffs are not rendered by default.

12 changes: 6 additions & 6 deletions Cargo.toml
Original file line number Diff line number Diff line change
Expand Up @@ -40,7 +40,7 @@ boring-sys = { version = "4", optional = true }
ring = { version = "0.17", optional = true }

# Enabled with 'tls-openssl'
rustls-openssl = { version = "0.2", optional = true }
rustls-openssl = { version = "0.3", optional = true }
openssl = { version = "0.10", optional = true }

anyhow = "1.0"
Expand All @@ -54,7 +54,7 @@ duration-str = "0.17"
futures = "0.3"
futures-core = "0.3"
futures-util = "0.3"
jemalloc_pprof = { version = "0.6.0", optional = true }
jemalloc_pprof = { version = "0.8", optional = true }
tikv-jemallocator = { version = "0.6.0", features = ["profiling", "unprefixed_malloc_on_supported_platforms"], optional = true }
hashbrown = "0.15"
hickory-client = "0.25"
Expand Down Expand Up @@ -87,7 +87,7 @@ rustls-pemfile = "2.2"
serde = { version = "1.0", features = ["derive", "rc"] }
serde_json = "1.0"
serde_yaml = "0.9"
socket2 = { version = "0.5", features = ["all"] }
socket2 = { version = "0.6", features = ["all"] }
textnonce = { version = "1.0" }
thiserror = "2.0"
tls-listener = { version = "0.11" }
Expand Down Expand Up @@ -116,7 +116,7 @@ educe = "0.6"

[target.'cfg(target_os = "linux")'.dependencies]
netns-rs = "0.1"
pprof = { version = "0.14", features = ["protobuf", "protobuf-codec", "criterion"] }
pprof = { version = "0.15", features = ["protobuf", "protobuf-codec", "criterion"] }

[build-dependencies]
tonic-build = { version = "0.13", default-features = false, features = ["prost"] }
Expand Down Expand Up @@ -153,9 +153,9 @@ local-ip-address = "0.6"
matches = "0.1"
test-case = "3.3"
oid-registry = "0.8"
rcgen = { version = "0.13", features = ["pem", "x509-parser"] }
rcgen = { version = "0.14", features = ["pem", "x509-parser"] }
x509-parser = { version = "0.17", default-features = false, features = ["verify"] }
ctor = "0.4"
ctor = "0.5"

[lints.clippy]
# This rule makes code more confusing
Expand Down
83 changes: 64 additions & 19 deletions fuzz/Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

4 changes: 2 additions & 2 deletions src/admin.rs
Original file line number Diff line number Diff line change
Expand Up @@ -559,7 +559,7 @@ mod tests {
"certChain": [
{
"expirationTime": "2023-03-11T12:57:26Z",
"pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYRENDQVVTZ0F3SUJBZ0lVTDVaZ0toTEI1YUt3YXRuZE1sR25CZWZ3Qkxnd0RRWUpLb1pJaHZjTgpBUUVMQlFBd0dERVdNQlFHQTFVRUNnd05ZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlNekF6TVRFd05UVTMKTWpaYUZ3MHlNekF6TVRFeE1qVTNNalphTUJneEZqQVVCZ05WQkFvTURXTnNkWE4wWlhJdWJHOWpZV3d3CldUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSYXIyQm1JWUFndkptT3JTcENlRlE3OUpQeQo4Y3c0K3pFRThmcXI1N2svdW1NcDVqWFpFR0JwZWRCSVkrcWZtSlBYRWlyYTlFOTJkU21rZks1QUtNV3gKbzJrd1p6QTFCZ05WSFJFRUxqQXNoaXB6Y0dsbVptVTZMeTkwY25WemRGOWtiMjFoYVc0dmJuTXZibUZ0ClpYTndZV05sTDNOaEwzTmhMVEF3RHdZRFZSMFBBUUgvQkFVREF3ZWdBREFkQmdOVkhTVUVGakFVQmdncgpCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBQ2xKZVJpdmpLYVkKdm5TUHhjUXZPNTNxVFpiUUdHWFc5OHI5Qm1FWGUwYm5YeXZlMWJUVlNYcWVNMXZHdE1DalJGai91dE9VCkRwcHphQVJGRlRzenN2QWdJNStwNFhpbVU4U0FwTlhUYVZjWHkwcG04c2dIWUF6U2drMExBcW1wTWJxbwpvNDB6dmFxVk9nQ1F0c2Vobkg5SCtMQXd1WDl1T08vY2J5NnRidjhrSkhrMWZOTmZ6RTlxZVUwUGFhWWQKZjZXQzhkaWliRGJoN0tjR29rSG80NDMvT05Mb0tJZU9aTFJIbXBFdDdyYnprTDl4elNlNnVZaGQ1SlNGCk55dlY2T3Zoc1FXVVpqd1BmanUvUVJUTzFPdWgrUUZYaTAxNFpvUjRVRnRZaDRjcXphcUlpYVQ0MERyMgpNTHk4eEhJUzRmM1ltUXJEei9VN1pUSG9xaWFLaVBZPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNXekNDQVVPZ0F3SUJBZ0lVTDVaZ0toTEI1YUt3YXRuZE1sR25CZWZ3Qkxnd0RRWUpLb1pJaHZjTgpBUUVMQlFBd0dERVdNQlFHQTFVRUNnd05ZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlNekF6TVRFd05UVTMKTWpaYUZ3MHlNekF6TVRFeE1qVTNNalphTUJneEZqQVVCZ05WQkFvTURXTnNkWE4wWlhJdWJHOWpZV3d3CldUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSYXIyQm1JWUFndkptT3JTcENlRlE3OUpQeQo4Y3c0K3pFRThmcXI1N2svdW1NcDVqWFpFR0JwZWRCSVkrcWZtSlBYRWlyYTlFOTJkU21rZks1QUtNV3gKbzJnd1pqQTFCZ05WSFJFRUxqQXNoaXB6Y0dsbVptVTZMeTkwY25WemRGOWtiMjFoYVc0dmJuTXZibUZ0ClpYTndZV05sTDNOaEwzTmhMVEF3RGdZRFZSMFBBUUgvQkFRREFnV2dNQjBHQTFVZEpRUVdNQlFHQ0NzRwpBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFsSW4xek1jTXdjbi8KUEFoN1JvRGI2dnFzZUx6T1RyU1NWMW5qNWt6aGNMdUU0YUNMNFNWbk54SytYTnJUVXdoU3dOdGVZbXFuCnVKTG5DUVVzdS9nVjVWZUt3OGRlNDErWjYvUVhjSzMwNHZXMVl5d2NMcVNWZWd5QkcvT0NzUndvRjIzSwpVMkg1ZXdKV1RSQi9YWGl2TERkMEZsOGIwTkNCN2ZtcmRsRDlZMXlaU1g2aXJwTk1QT1Y5L1B1ckllUUkKR2hvK2dsYjlIME96Tjc5Z2JudldGbEw0RzZVaTlLbzNmeGZhUWpVVVRWbFdpMlh4VlE0MGR6VHV2cG11Ci9qRVh4M0pOQ01zRU5hb3dNYnFTZTlqck9zd0UwMy80ejJCZjBTbkRkdGRwalloN0xZZkRqWkxldTIweAp6VzlNTFM3NU1qdG4vYjV4bHlXeGFyMWh5MnAxS1E9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"serialNumber": "271676055104741785552467469040731750696653685944",
"validFrom": "2023-03-11T05:57:26Z"
},
Expand All @@ -579,7 +579,7 @@ mod tests {
"certChain": [
{
"expirationTime": "2023-03-11T13:57:26Z",
"pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNYRENDQVVTZ0F3SUJBZ0lVSlVGNVVGbU52OVhYQlFWaDFDbFk0VFNLRng4d0RRWUpLb1pJaHZjTgpBUUVMQlFBd0dERVdNQlFHQTFVRUNnd05ZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlNekF6TVRFd05qVTMKTWpaYUZ3MHlNekF6TVRFeE16VTNNalphTUJneEZqQVVCZ05WQkFvTURXTnNkWE4wWlhJdWJHOWpZV3d3CldUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSYXIyQm1JWUFndkptT3JTcENlRlE3OUpQeQo4Y3c0K3pFRThmcXI1N2svdW1NcDVqWFpFR0JwZWRCSVkrcWZtSlBYRWlyYTlFOTJkU21rZks1QUtNV3gKbzJrd1p6QTFCZ05WSFJFRUxqQXNoaXB6Y0dsbVptVTZMeTkwY25WemRGOWtiMjFoYVc0dmJuTXZibUZ0ClpYTndZV05sTDNOaEwzTmhMVEV3RHdZRFZSMFBBUUgvQkFVREF3ZWdBREFkQmdOVkhTVUVGakFVQmdncgpCZ0VGQlFjREFRWUlLd1lCQlFVSEF3SXdEUVlKS29aSWh2Y05BUUVMQlFBRGdnRUJBSWdscTIvNnJyWlIKa25UUmZqM201SnU0MmFycGlxVVNHR3A2Mks3L09zeDc5RmovZDBwdU1hMzFkMFhwS0w3N0F2QmtvcVk3CjFWejJKOHRzUkZhZEM1ZmFtQlRXdUN4OUE5R0V3WHEzQmllK2l1a2RGWjZqUTRsb2EybHVWWWFZanhUbgpqR3NLQm0xR0hwMHpacFFVNkdENzA2c2RaTjltaGlqWVA4RnpxWGg1TTlzTzQ4UldveElOUmhXd0pKejQKYUlaZWlRTlJWdkRNZm93MGtxdFFtN001TnQzanA2RkJjTzhGQkJvV0p3MXNCSitLME5XN0VuUG82Yyt0CjE5MkZ0Nmx0eXpvV1BSMnVIYUZENi9FRjZVTkowcTN1ejZicjNYRFg1Q3lrRjQxSEMrNHRSMjQ3RWhmZgpGQkpyUVc0dXAxdHAzdnZGYTdHYnl6bkZWUEc4M3dvPQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"pem": "LS0tLS1CRUdJTiBDRVJUSUZJQ0FURS0tLS0tCk1JSUNXekNDQVVPZ0F3SUJBZ0lVSlVGNVVGbU52OVhYQlFWaDFDbFk0VFNLRng4d0RRWUpLb1pJaHZjTgpBUUVMQlFBd0dERVdNQlFHQTFVRUNnd05ZMngxYzNSbGNpNXNiMk5oYkRBZUZ3MHlNekF6TVRFd05qVTMKTWpaYUZ3MHlNekF6TVRFeE16VTNNalphTUJneEZqQVVCZ05WQkFvTURXTnNkWE4wWlhJdWJHOWpZV3d3CldUQVRCZ2NxaGtqT1BRSUJCZ2dxaGtqT1BRTUJCd05DQUFSYXIyQm1JWUFndkptT3JTcENlRlE3OUpQeQo4Y3c0K3pFRThmcXI1N2svdW1NcDVqWFpFR0JwZWRCSVkrcWZtSlBYRWlyYTlFOTJkU21rZks1QUtNV3gKbzJnd1pqQTFCZ05WSFJFRUxqQXNoaXB6Y0dsbVptVTZMeTkwY25WemRGOWtiMjFoYVc0dmJuTXZibUZ0ClpYTndZV05sTDNOaEwzTmhMVEV3RGdZRFZSMFBBUUgvQkFRREFnV2dNQjBHQTFVZEpRUVdNQlFHQ0NzRwpBUVVGQndNQkJnZ3JCZ0VGQlFjREFqQU5CZ2txaGtpRzl3MEJBUXNGQUFPQ0FRRUFtZ2g1WENwMGp6OWEKS3NvTzZBUlBVWmlKbnhDY2xobHlleUJpbkE1cEFkY0F4V2hNN2xMdklxZXNCT3hpRFdhbFR0Z2QzV29OClJGak1VMUNOa0RmQWRoZDhLSTVoaCtpS0Z3eitYK3JIMThSM0c4SDAyQTZWMnpuYVdGald0a1dvc3c4eQpySHlIYjJBaThXakRVV1dwQ21KL0M3ZUJuVEl3OHMrM2ZMZ2o4Rm5rOVZwcjdSNEovc3ppcGVoczZyRHMKQ1pCQzFKVVA0cXovUis1L3VPWHE3cnBHY05SQVlibXVZNllKbXRWVUxKRXl3THFtUjJCckVvKzFZN0VkCkpxRWFPSUdFTEVrdENNazBvZUhkRmZoWWlqZXdmRXJVbVJFSzM2Yy8xY01XMk44MFlkVUMzd1UyWHlZdwpqWUswdkxWeng3U1Q4TmcwL0xlYUdJWGtrQW1PQ3c9PQotLS0tLUVORCBDRVJUSUZJQ0FURS0tLS0tCg==",
"serialNumber": "212692774886610945930036647276614034927450199839",
"validFrom": "2023-03-11T06:57:26Z"
},
Expand Down
15 changes: 0 additions & 15 deletions src/hyper_util.rs
Original file line number Diff line number Diff line change
Expand Up @@ -102,21 +102,6 @@ impl hyper::rt::Timer for TokioTimer {
}
}

struct TokioTimeout<T> {
inner: Pin<Box<tokio::time::Timeout<T>>>,
}

impl<T> Future for TokioTimeout<T>
where
T: Future,
{
type Output = Result<T::Output, tokio::time::error::Elapsed>;

fn poll(mut self: Pin<&mut Self>, context: &mut Context<'_>) -> Poll<Self::Output> {
self.inner.as_mut().poll(context)
}
}

// Use TokioSleep to get tokio::time::Sleep to implement Unpin.
// see https://docs.rs/tokio/latest/tokio/time/struct.Sleep.html
pub(crate) struct TokioSleep {
Expand Down
2 changes: 1 addition & 1 deletion src/inpod/netns.rs
Original file line number Diff line number Diff line change
Expand Up @@ -65,7 +65,7 @@ impl InpodNetns {
}),
})
}
pub fn workload_netns(&self) -> std::os::fd::BorrowedFd {
pub fn workload_netns(&self) -> std::os::fd::BorrowedFd<'_> {
use std::os::fd::AsFd;
self.inner.netns.as_fd()
}
Expand Down
2 changes: 1 addition & 1 deletion src/proxy/inbound.rs
Original file line number Diff line number Diff line change
Expand Up @@ -157,7 +157,7 @@ impl Inbound {
};
// This is small since it only handles the TLS layer -- the HTTP2 layer is boxed
// and measured above.
assertions::size_between_ref(1000, 1500, &serve_client);
assertions::size_between_ref(1000, 1600, &serve_client);
tokio::task::spawn(serve_client.in_current_span());
}
};
Expand Down
14 changes: 7 additions & 7 deletions src/socket.rs
Original file line number Diff line number Diff line change
Expand Up @@ -32,12 +32,12 @@ pub fn set_freebind_and_transparent(socket: &TcpSocket) -> io::Result<()> {
let socket = SockRef::from(socket);
match socket.domain()? {
Domain::IPV4 => {
socket.set_ip_transparent(true)?;
socket.set_freebind(true)?;
socket.set_ip_transparent_v4(true)?;
socket.set_freebind_v4(true)?;
}
Domain::IPV6 => {
linux::set_ipv6_transparent(&socket)?;
socket.set_freebind_ipv6(true)?
socket.set_freebind_v6(true)?
}
_ => return Err(Error::new(ErrorKind::Unsupported, "unsupported domain")),
};
Expand Down Expand Up @@ -66,7 +66,7 @@ fn orig_dst_addr(stream: &tokio::net::TcpStream) -> io::Result<SocketAddr> {
Err(e4) => match linux::original_dst_ipv6(&sock) {
Ok(addr) => Ok(addr.as_socket().expect("failed to convert to SocketAddr")),
Err(e6) => {
if !sock.ip_transparent().unwrap_or(false) {
if !sock.ip_transparent_v4().unwrap_or(false) {
// In TPROXY mode, this is normal, so don't bother logging
warn!(
peer=?stream.peer_addr().unwrap(),
Expand Down Expand Up @@ -136,11 +136,11 @@ mod linux {
}

pub fn original_dst(sock: &SockRef) -> io::Result<SockAddr> {
sock.original_dst()
sock.original_dst_v4()
}

pub fn original_dst_ipv6(sock: &SockRef) -> io::Result<SockAddr> {
sock.original_dst_ipv6()
sock.original_dst_v6()
}
}

Expand All @@ -167,7 +167,7 @@ impl Listener {
#[cfg(target_os = "linux")]
impl Listener {
pub fn set_transparent(&self) -> io::Result<()> {
SockRef::from(&self.0).set_ip_transparent(true)
SockRef::from(&self.0).set_ip_transparent_v4(true)
}
}

Expand Down
4 changes: 2 additions & 2 deletions src/test_helpers/linux.rs
Original file line number Diff line number Diff line change
Expand Up @@ -341,7 +341,7 @@ impl WorkloadManager {
}

/// workload_builder allows creating a new workload. It will run in its own network namespace.
pub fn workload_builder(&mut self, name: &str, node: &str) -> TestWorkloadBuilder {
pub fn workload_builder(&mut self, name: &str, node: &str) -> TestWorkloadBuilder<'_> {
TestWorkloadBuilder::new(name, self)
.on_node(node)
.identity(identity::Identity::Spiffe {
Expand All @@ -352,7 +352,7 @@ impl WorkloadManager {
}

/// service_builder allows creating a new service
pub fn service_builder(&mut self, name: &str) -> TestServiceBuilder {
pub fn service_builder(&mut self, name: &str) -> TestServiceBuilder<'_> {
TestServiceBuilder::new(name, self)
}

Expand Down
2 changes: 1 addition & 1 deletion src/tls/certificate.rs
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,7 @@ pub fn identities(cert: X509Certificate) -> Result<Vec<Identity>, Error> {

impl Certificate {
// TODO: I would love to parse this once, but ran into lifetime issues.
fn parsed(&self) -> X509Certificate {
fn parsed(&self) -> X509Certificate<'_> {
x509_parser::parse_x509_certificate(&self.der)
.expect("certificate was already parsed successfully before")
.1
Expand Down