Skip to content

Commit f77df1d

Browse files
committed
f3
1 parent 515c028 commit f77df1d

File tree

2 files changed

+11
-7
lines changed

2 files changed

+11
-7
lines changed

mgmtd/src/grpc.rs

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -212,10 +212,16 @@ pub(crate) fn serve(ctx: Context, mut shutdown: RunStateHandle) -> Result<()> {
212212

213213
let mut serve_addr = SocketAddr::new("::".parse()?, ctx.info.user_config.grpc_port);
214214

215-
// Test for IPv6 available
216-
if TcpListener::bind(serve_addr).is_err() {
217-
log::debug!("gRPC: IPv6 not available, falling back to IPv4 sockets");
218-
serve_addr = SocketAddr::new("0.0.0.0".parse()?, ctx.info.user_config.grpc_port);
215+
// Test for IPv6 available, fall back to IPv4 sockets if not
216+
match TcpListener::bind(serve_addr) {
217+
Ok(_) => {}
218+
Err(err) if err.raw_os_error() == Some(libc::EAFNOSUPPORT) => {
219+
log::debug!(": IPv6 not available, falling back to IPv4 sockets");
220+
serve_addr = SocketAddr::new("0.0.0.0".parse()?, ctx.info.user_config.grpc_port);
221+
}
222+
Err(err) => {
223+
anyhow::bail!(err);
224+
}
219225
}
220226

221227
log::info!("Serving gRPC requests on {serve_addr}");

mgmtd/src/lib.rs

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,6 @@ use sqlite::TransactionExt;
2727
use sqlite_check::sql;
2828
use std::collections::HashSet;
2929
use std::future::Future;
30-
use std::io::ErrorKind;
3130
use std::net::{SocketAddr, TcpListener};
3231
use std::sync::Arc;
3332
use tokio::net::UdpSocket;
@@ -66,12 +65,11 @@ pub async fn start(info: StaticInfo, license: LicenseVerifier) -> Result<RunCont
6665
// Test for IPv6 available, fall back to IPv4 sockets if not
6766
match TcpListener::bind(beemsg_serve_addr) {
6867
Ok(_) => {}
69-
Err(err) if err.kind() == ErrorKind::Unsupported => {
68+
Err(err) if err.raw_os_error() == Some(libc::EAFNOSUPPORT) => {
7069
log::debug!("BeeMsg: IPv6 not available, falling back to IPv4 sockets");
7170
beemsg_serve_addr = SocketAddr::new("0.0.0.0".parse()?, info.user_config.beemsg_port);
7271
}
7372
Err(err) => {
74-
log::error!("{:?}", err.kind());
7573
anyhow::bail!(err);
7674
}
7775
}

0 commit comments

Comments
 (0)