diff options
| author | Aram Drevekenin <aram@poor.dev> | 2026-07-30 10:43:00 +0200 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2026-07-30 10:43:00 +0200 |
| commit | 19befc2118f5943862629fd9ce11de855056c3ef (patch) | |
| tree | 6ae5aa53f8cf3bff8f0b820b2a2ee4791e149ec6 /zellij-client | |
| parent | More dependency upgrades for debian (#5421) (diff) | |
| download | sl0ppij-19befc2118f5943862629fd9ce11de855056c3ef.tar.gz sl0ppij-19befc2118f5943862629fd9ce11de855056c3ef.tar.xz sl0ppij-19befc2118f5943862629fd9ce11de855056c3ef.zip | |
Even more debian upgrades (#5424)
* Upgrade axum-extra 0.12, axum-server 0.8, rcgen 0.14
* rustfmt
Diffstat (limited to 'zellij-client')
| -rw-r--r-- | zellij-client/Cargo.toml | 6 | ||||
| -rw-r--r-- | zellij-client/src/remote_attach/unit/remote_attach_tests.rs | 15 | ||||
| -rw-r--r-- | zellij-client/src/web_client/ipc_listener.rs | 4 | ||||
| -rw-r--r-- | zellij-client/src/web_client/mod.rs | 23 |
4 files changed, 38 insertions, 10 deletions
diff --git a/zellij-client/Cargo.toml b/zellij-client/Cargo.toml index c22f8366..59300bdc 100644 --- a/zellij-client/Cargo.toml +++ b/zellij-client/Cargo.toml @@ -14,8 +14,8 @@ license.workspace = true # so let's see how that works out before rocking the boat futures = { version = "0.3.30", optional = true } axum = { version = "0.8.4", features = ["ws"], optional = true } -axum-extra = { version = "0.10.1", features = ["cookie"], optional = true } -axum-server = { version = "0.7", features = ["tls-rustls"], optional = true } +axum-extra = { version = "0.12", features = ["cookie"], optional = true } +axum-server = { version = "0.8", features = ["tls-rustls"], optional = true } time = { version = "0.3", optional = true } tower-http = { version = "0.6.4", features = ["cors"], optional = true } @@ -63,7 +63,7 @@ windows-sys = { workspace = true, features = [ [dev-dependencies] insta = "1.48" -rcgen = "0.13" +rcgen = "0.14" serde_json = "1.0" serial_test = "3.0" tempfile = "3" diff --git a/zellij-client/src/remote_attach/unit/remote_attach_tests.rs b/zellij-client/src/remote_attach/unit/remote_attach_tests.rs index 8a57b589..1210ac13 100644 --- a/zellij-client/src/remote_attach/unit/remote_attach_tests.rs +++ b/zellij-client/src/remote_attach/unit/remote_attach_tests.rs @@ -222,6 +222,7 @@ mod tls_mock_server { use axum::Router; use axum_server::tls_rustls::RustlsConfig; use axum_server::Handle; + use std::net::SocketAddr; use std::path::PathBuf; use std::time::Duration; @@ -252,7 +253,8 @@ mod tls_mock_server { ))]; server_params.extended_key_usages = vec![rcgen::ExtendedKeyUsagePurpose::ServerAuth]; let server_key = rcgen::KeyPair::generate().unwrap(); - let server_cert = server_params.signed_by(&server_key, &ca, &ca_key).unwrap(); + let ca_issuer = rcgen::Issuer::from_params(&ca_params, &ca_key); + let server_cert = server_params.signed_by(&server_key, &ca_issuer).unwrap(); // Write to temp files let ca_cert_file = tempfile::NamedTempFile::new().unwrap(); @@ -277,7 +279,7 @@ mod tls_mock_server { pub async fn start_tls_mock_server( state: MockRemoteServerState, certs: &TlsTestCerts, - ) -> (u16, Handle, tokio::task::JoinHandle<()>) { + ) -> (u16, Handle<SocketAddr>, tokio::task::JoinHandle<()>) { let app = Router::new() .route("/command/login", post(super::mock_server::handle_login)) .route("/session", post(super::mock_server::handle_session)) @@ -296,6 +298,9 @@ mod tls_mock_server { let listener = std::net::TcpListener::bind("127.0.0.1:0").expect("Failed to bind test TLS server"); + listener + .set_nonblocking(true) + .expect("Failed to set test TLS server listener to non-blocking"); let port = listener.local_addr().unwrap().port(); let handle = Handle::new(); @@ -303,6 +308,7 @@ mod tls_mock_server { let server_task = tokio::spawn(async move { axum_server::from_tcp_rustls(listener, rustls_config) + .unwrap() .handle(server_handle) .serve(app.into_make_service()) .await @@ -315,7 +321,10 @@ mod tls_mock_server { (port, handle, server_task) } - pub async fn shutdown_server(handle: Handle, server_task: tokio::task::JoinHandle<()>) { + pub async fn shutdown_server( + handle: Handle<SocketAddr>, + server_task: tokio::task::JoinHandle<()>, + ) { handle.graceful_shutdown(Some(Duration::from_secs(1))); let _ = server_task.await; } diff --git a/zellij-client/src/web_client/ipc_listener.rs b/zellij-client/src/web_client/ipc_listener.rs index 0ba37002..76d83a6b 100644 --- a/zellij-client/src/web_client/ipc_listener.rs +++ b/zellij-client/src/web_client/ipc_listener.rs @@ -1,6 +1,6 @@ use axum_server::Handle; use interprocess::local_socket::traits::tokio::Listener; -use std::net::IpAddr; +use std::net::{IpAddr, SocketAddr}; use tokio::io::{AsyncReadExt, AsyncWriteExt}; use zellij_utils::consts::{ipc_bind_async, WEBSERVER_SOCKET_PATH}; use zellij_utils::prost::Message; @@ -61,7 +61,7 @@ pub async fn send_webserver_response( } pub async fn listen_to_web_server_instructions( - server_handle: Handle, + server_handle: Handle<SocketAddr>, id: &str, web_server_ip: IpAddr, web_server_port: u16, diff --git a/zellij-client/src/web_client/mod.rs b/zellij-client/src/web_client/mod.rs index 0ce4ed0f..ded03bf3 100644 --- a/zellij-client/src/web_client/mod.rs +++ b/zellij-client/src/web_client/mod.rs @@ -265,15 +265,34 @@ pub async fn serve_web_client( } })); + if let Err(e) = listener.set_nonblocking(true) { + log::error!("Failed to set web server listener to non-blocking: {}", e); + return; + } + match rustls_config { Some(rustls_config) => { - let _ = axum_server::from_tcp_rustls(listener, rustls_config) + let server = match axum_server::from_tcp_rustls(listener, rustls_config) { + Ok(server) => server, + Err(e) => { + log::error!("Failed to create TLS web server from listener: {}", e); + return; + }, + }; + let _ = server .handle(server_handle) .serve(app.into_make_service()) .await; }, None => { - let _ = axum_server::from_tcp(listener) + let server = match axum_server::from_tcp(listener) { + Ok(server) => server, + Err(e) => { + log::error!("Failed to create web server from listener: {}", e); + return; + }, + }; + let _ = server .handle(server_handle) .serve(app.into_make_service()) .await; |
