api: allow custom unix bind mode and use 0o220 for admin server

This commit is contained in:
networkException
2023-10-03 17:31:40 +02:00
parent 8ec6a53b35
commit 7907a09acc
4 changed files with 8 additions and 4 deletions
+5 -1
View File
@@ -98,6 +98,7 @@ impl<A: ApiHandler> ApiServer<A> {
pub async fn run_server(
self: Arc<Self>,
bind_addr: UnixOrTCPSocketAddress,
unix_bind_addr_mode: Option<u32>,
shutdown_signal: impl Future<Output = ()>,
) -> Result<(), GarageError> {
let tcp_service = make_service_fn(|conn: &AddrStream| {
@@ -146,7 +147,10 @@ impl<A: ApiHandler> ApiServer<A> {
let bound = Server::bind_unix(path)?;
fs::set_permissions(path, Permissions::from_mode(0o222))?;
fs::set_permissions(
path,
Permissions::from_mode(unix_bind_addr_mode.unwrap_or(0o222)),
)?;
bound
.serve(unix_service)