@@ -14,7 +14,7 @@ use ra_rpc::rocket_helper::UnixPeerCredListener;
1414use rocket:: {
1515 fairing:: AdHoc ,
1616 figment:: Figment ,
17- listener:: { unix:: UnixListener , Bind , DefaultListener } ,
17+ listener:: { unix:: UnixListener , Bind , DefaultListener , Endpoint } ,
1818} ;
1919use rocket_vsock_listener:: VsockListener ;
2020use sd_notify:: { notify as sd_notify, NotifyState } ;
@@ -51,18 +51,31 @@ async fn run_internal_v0(
5151 . await
5252 . map_err ( |err : rocket:: Error | anyhow ! ( err. to_string( ) ) ) ?;
5353 } else {
54- let endpoint = UnixListener :: bind_endpoint ( & ignite)
54+ let endpoint = DefaultListener :: bind_endpoint ( & ignite)
5555 . map_err ( |err| anyhow ! ( "Failed to get endpoint: {err}" ) ) ?;
56- let listener = UnixPeerCredListener :: new (
57- <UnixListener as Bind >:: bind ( & ignite)
58- . await
59- . map_err ( |err| anyhow ! ( "Failed to bind on {endpoint}: {err}" ) ) ?,
60- ) ;
6156 sock_ready_tx. send ( ( ) ) . ok ( ) ;
62- ignite
63- . launch_on ( listener)
64- . await
65- . map_err ( |err| anyhow ! ( err. to_string( ) ) ) ?;
57+ match endpoint {
58+ Endpoint :: Unix ( _) => {
59+ let listener = UnixPeerCredListener :: new (
60+ <UnixListener as Bind >:: bind ( & ignite)
61+ . await
62+ . map_err ( |err| anyhow ! ( "Failed to bind on {endpoint}: {err}" ) ) ?,
63+ ) ;
64+ ignite
65+ . launch_on ( listener)
66+ . await
67+ . map_err ( |err| anyhow ! ( err. to_string( ) ) ) ?;
68+ }
69+ _ => {
70+ let listener = DefaultListener :: bind ( & ignite)
71+ . await
72+ . map_err ( |err| anyhow ! ( "Failed to bind on {endpoint}: {err}" ) ) ?;
73+ ignite
74+ . launch_on ( listener)
75+ . await
76+ . map_err ( |err| anyhow ! ( err. to_string( ) ) ) ?;
77+ }
78+ }
6679 }
6780 Ok ( ( ) )
6881}
@@ -90,18 +103,31 @@ async fn run_internal(
90103 . await
91104 . map_err ( |err : rocket:: Error | anyhow ! ( err. to_string( ) ) ) ?;
92105 } else {
93- let endpoint = UnixListener :: bind_endpoint ( & ignite)
106+ let endpoint = DefaultListener :: bind_endpoint ( & ignite)
94107 . map_err ( |err| anyhow ! ( "Failed to get endpoint: {err}" ) ) ?;
95- let listener = UnixPeerCredListener :: new (
96- <UnixListener as Bind >:: bind ( & ignite)
97- . await
98- . map_err ( |err| anyhow ! ( "Failed to bind on {endpoint}: {err}" ) ) ?,
99- ) ;
100108 sock_ready_tx. send ( ( ) ) . ok ( ) ;
101- ignite
102- . launch_on ( listener)
103- . await
104- . map_err ( |err| anyhow ! ( err. to_string( ) ) ) ?;
109+ match endpoint {
110+ Endpoint :: Unix ( _) => {
111+ let listener = UnixPeerCredListener :: new (
112+ <UnixListener as Bind >:: bind ( & ignite)
113+ . await
114+ . map_err ( |err| anyhow ! ( "Failed to bind on {endpoint}: {err}" ) ) ?,
115+ ) ;
116+ ignite
117+ . launch_on ( listener)
118+ . await
119+ . map_err ( |err| anyhow ! ( err. to_string( ) ) ) ?;
120+ }
121+ _ => {
122+ let listener = DefaultListener :: bind ( & ignite)
123+ . await
124+ . map_err ( |err| anyhow ! ( "Failed to bind on {endpoint}: {err}" ) ) ?;
125+ ignite
126+ . launch_on ( listener)
127+ . await
128+ . map_err ( |err| anyhow ! ( err. to_string( ) ) ) ?;
129+ }
130+ }
105131 }
106132 Ok ( ( ) )
107133}
0 commit comments