packages/ak-axum/server: cleanup unix socket (#21477)

This commit is contained in:
Marc 'risson' Schmitt
2026-04-08 14:52:12 +00:00
committed by GitHub
parent 318ed2eca0
commit 300e77b30c
+14 -2
View File
@@ -10,7 +10,7 @@ use axum_server::{
tls_rustls::{RustlsAcceptor, RustlsConfig},
};
use eyre::Result;
use tracing::info;
use tracing::{info, trace};
use crate::accept::{proxy_protocol::ProxyProtocolAcceptor, tls::TlsAcceptor};
@@ -73,11 +73,23 @@ pub(crate) async fn run_unix(
let handle = Handle::new();
arbiter.add_unix_handle(handle.clone()).await;
let res = axum_server::Server::bind(addr)
if !allow_failure && let Some(path) = addr.as_pathname() {
trace!(?addr, "removing socket");
if let Err(err) = std::fs::remove_file(path) {
trace!(?err, "failed to remove socket, ignoring");
}
}
let res = axum_server::Server::bind(addr.clone())
.acceptor(DefaultAcceptor::new())
.handle(handle)
.serve(router.into_make_service())
.await;
if let Some(path) = addr.as_pathname() {
trace!(?addr, "removing socket");
if let Err(err) = std::fs::remove_file(path) {
trace!(?err, "failed to remove socket, ignoring");
}
}
if res.is_err() && allow_failure {
arbiter.shutdown().await;
return Ok(());