File tree Expand file tree Collapse file tree 2 files changed +11
-7
lines changed Expand file tree Collapse file tree 2 files changed +11
-7
lines changed Original file line number Diff line number Diff 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}" ) ;
Original file line number Diff line number Diff line change @@ -27,7 +27,6 @@ use sqlite::TransactionExt;
2727use sqlite_check:: sql;
2828use std:: collections:: HashSet ;
2929use std:: future:: Future ;
30- use std:: io:: ErrorKind ;
3130use std:: net:: { SocketAddr , TcpListener } ;
3231use std:: sync:: Arc ;
3332use 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 }
You can’t perform that action at this time.
0 commit comments