File tree Expand file tree Collapse file tree
vey-keyless/src/control/capnp
vey-statsd/src/control/bridge Expand file tree Collapse file tree Original file line number Diff line number Diff line change 44 * SPDX-FileCopyrightText: 2026 VEY-OSS Developers.
55 */
66
7+ use std:: str:: FromStr ;
8+
79use anyhow:: anyhow;
810
911use vey_types:: metrics:: NodeName ;
@@ -23,7 +25,8 @@ macro_rules! impl_reload {
2325 name: String ,
2426 position: Option <YamlDocPosition >,
2527 ) -> anyhow:: Result <( ) > {
26- let name = unsafe { NodeName :: new_unchecked( name) } ;
28+ let name =
29+ NodeName :: from_str( & name) . map_err( |e| anyhow!( "invalid node name {name}: {e}" ) ) ?;
2730 vey_daemon:: runtime:: main_handle( )
2831 . ok_or( anyhow!( "unable to get main runtime handle" ) ) ?
2932 . spawn( async move { crate :: $m:: reload( & name, position) . await } )
Original file line number Diff line number Diff line change 44 */
55
66use std:: rc:: Rc ;
7+ use std:: str:: FromStr ;
8+
9+ use anyhow:: anyhow;
710
811use vey_types:: metrics:: NodeName ;
912
@@ -17,7 +20,8 @@ pub(super) struct BackendControlImpl {
1720
1821impl BackendControlImpl {
1922 pub ( super ) fn new_client ( name : & str ) -> anyhow:: Result < backend_control:: Client > {
20- let name = unsafe { NodeName :: new_unchecked ( name) } ;
23+ let name =
24+ NodeName :: from_str ( name) . map_err ( |e| anyhow ! ( "invalid backend name {name}: {e}" ) ) ?;
2125 let backend = crate :: backend:: get_backend ( & name) ?;
2226 Ok ( capnp_rpc:: new_client ( BackendControlImpl { backend } ) )
2327 }
Original file line number Diff line number Diff line change 55 */
66
77use std:: rc:: Rc ;
8+ use std:: str:: FromStr ;
89
910use vey_types:: metrics:: NodeName ;
1011
@@ -119,9 +120,17 @@ impl proc_control::Server for ProcControlImpl {
119120 mut results : proc_control:: ForceQuitOfflineServerResults ,
120121 ) -> capnp:: Result < ( ) > {
121122 let server = params. get ( ) ?. get_name ( ) ?. to_str ( ) ?;
122- let server = unsafe { NodeName :: new_unchecked ( server) } ;
123- crate :: serve:: force_quit_offline_server ( & server) ;
124- results. get ( ) . init_result ( ) . set_ok ( "success" ) ;
123+ match NodeName :: from_str ( server) {
124+ Ok ( server) => {
125+ crate :: serve:: force_quit_offline_server ( & server) ;
126+ results. get ( ) . init_result ( ) . set_ok ( "success" ) ;
127+ }
128+ Err ( e) => {
129+ let mut ev = results. get ( ) . init_result ( ) . init_err ( ) ;
130+ ev. set_code ( -1 ) ;
131+ ev. set_reason ( format ! ( "invalid server {server}: {e}" ) ) ;
132+ }
133+ }
125134 Ok ( ( ) )
126135 }
127136
Original file line number Diff line number Diff line change 55 */
66
77use std:: rc:: Rc ;
8+ use std:: str:: FromStr ;
9+
10+ use anyhow:: anyhow;
811
912use vey_types:: metrics:: NodeName ;
1013
@@ -18,7 +21,8 @@ pub(super) struct ServerControlImpl {
1821
1922impl ServerControlImpl {
2023 pub ( super ) fn new_client ( name : & str ) -> anyhow:: Result < server_control:: Client > {
21- let name = unsafe { NodeName :: new_unchecked ( name) } ;
24+ let name =
25+ NodeName :: from_str ( name) . map_err ( |e| anyhow ! ( "invalid server name {name}: {e}" ) ) ?;
2226 let server = crate :: serve:: get_server ( & name) ?;
2327 Ok ( capnp_rpc:: new_client ( ServerControlImpl { server } ) )
2428 }
Original file line number Diff line number Diff line change @@ -22,7 +22,8 @@ pub(super) struct ServerControlImpl {
2222
2323impl ServerControlImpl {
2424 pub ( super ) fn new_client ( name : & str ) -> anyhow:: Result < server_control:: Client > {
25- let name = unsafe { NodeName :: new_unchecked ( name) } ;
25+ let name =
26+ NodeName :: from_str ( name) . map_err ( |e| anyhow ! ( "invalid server name {name}: {e}" ) ) ?;
2627 let server = crate :: serve:: get_server ( & name) ?;
2728 Ok ( capnp_rpc:: new_client ( ServerControlImpl { server } ) )
2829 }
Original file line number Diff line number Diff line change 44 * SPDX-FileCopyrightText: 2026 VEY-OSS Developers.
55 */
66
7+ use std:: str:: FromStr ;
8+
79use anyhow:: anyhow;
810
911use vey_types:: metrics:: NodeName ;
@@ -23,7 +25,8 @@ macro_rules! impl_reload {
2325 name: String ,
2426 position: Option <YamlDocPosition >,
2527 ) -> anyhow:: Result <( ) > {
26- let name = unsafe { NodeName :: new_unchecked( name) } ;
28+ let name = NodeName :: from_str( name. as_str( ) )
29+ . map_err( |e| anyhow!( "invalid node name {name}: {e}" ) ) ?;
2730 vey_daemon:: runtime:: main_handle( )
2831 . ok_or( anyhow!( "unable to get main runtime handle" ) ) ?
2932 . spawn( async move { crate :: $m:: reload( & name, position) . await } )
Original file line number Diff line number Diff line change 44 */
55
66use std:: rc:: Rc ;
7+ use std:: str:: FromStr ;
8+
9+ use anyhow:: anyhow;
710
811use vey_types:: metrics:: NodeName ;
912
@@ -18,7 +21,8 @@ pub(super) struct EscaperControlImpl {
1821
1922impl EscaperControlImpl {
2023 pub ( super ) fn new_client ( name : & str ) -> anyhow:: Result < escaper_control:: Client > {
21- let name = unsafe { NodeName :: new_unchecked ( name) } ;
24+ let name =
25+ NodeName :: from_str ( name) . map_err ( |e| anyhow ! ( "invalid escaper name {name}: {e}" ) ) ?;
2226 let escaper = crate :: escape:: get_escaper ( & name) ?;
2327 Ok ( capnp_rpc:: new_client ( EscaperControlImpl { escaper } ) )
2428 }
Original file line number Diff line number Diff line change 55 */
66
77use std:: rc:: Rc ;
8+ use std:: str:: FromStr ;
89
910use vey_types:: metrics:: NodeName ;
1011
@@ -195,8 +196,10 @@ impl proc_control::Server for ProcControlImpl {
195196 mut results : proc_control:: GetUserGroupResults ,
196197 ) -> capnp:: Result < ( ) > {
197198 let user_group = params. get ( ) ?. get_name ( ) ?. to_str ( ) ?;
198- let ug = super :: user_group:: UserGroupControlImpl :: new_client ( user_group) ;
199- set_fetch_result :: < user_group_control:: Owned > ( results. get ( ) . init_user_group ( ) , Ok ( ug) )
199+ set_fetch_result :: < user_group_control:: Owned > (
200+ results. get ( ) . init_user_group ( ) ,
201+ super :: user_group:: UserGroupControlImpl :: new_client ( user_group) ,
202+ )
200203 }
201204
202205 async fn get_resolver (
@@ -251,9 +254,17 @@ impl proc_control::Server for ProcControlImpl {
251254 mut results : proc_control:: ForceQuitOfflineServerResults ,
252255 ) -> capnp:: Result < ( ) > {
253256 let server = params. get ( ) ?. get_name ( ) ?. to_str ( ) ?;
254- let server = unsafe { NodeName :: new_unchecked ( server) } ;
255- crate :: serve:: force_quit_offline_server ( & server) ;
256- results. get ( ) . init_result ( ) . set_ok ( "success" ) ;
257+ match NodeName :: from_str ( server) {
258+ Ok ( server) => {
259+ crate :: serve:: force_quit_offline_server ( & server) ;
260+ results. get ( ) . init_result ( ) . set_ok ( "success" ) ;
261+ }
262+ Err ( e) => {
263+ let mut ev = results. get ( ) . init_result ( ) . init_err ( ) ;
264+ ev. set_code ( -1 ) ;
265+ ev. set_reason ( format ! ( "invalid server {server}: {e}" ) ) ;
266+ }
267+ }
257268 Ok ( ( ) )
258269 }
259270}
Original file line number Diff line number Diff line change @@ -8,11 +8,14 @@ use std::rc::Rc;
88use std:: str:: FromStr ;
99use std:: time:: Duration ;
1010
11- use vey_proxy_proto:: resolver_capnp:: { QueryStrategy , resolver_control} ;
11+ use anyhow:: anyhow;
12+
1213use vey_types:: metrics:: NodeName ;
1314use vey_types:: net:: DomainName ;
1415use vey_types:: resolve:: { QueryStrategy as ResolveQueryStrategy , ResolveStrategy } ;
1516
17+ use vey_proxy_proto:: resolver_capnp:: { QueryStrategy , resolver_control} ;
18+
1619use crate :: resolve:: { ArcIntegratedResolverHandle , HappyEyeballsResolveJob } ;
1720
1821pub ( super ) struct ResolverControlImpl {
@@ -21,7 +24,8 @@ pub(super) struct ResolverControlImpl {
2124
2225impl ResolverControlImpl {
2326 pub ( super ) fn new_client ( name : & str ) -> anyhow:: Result < resolver_control:: Client > {
24- let name = unsafe { NodeName :: new_unchecked ( name) } ;
27+ let name =
28+ NodeName :: from_str ( name) . map_err ( |e| anyhow ! ( "invalid resolver name {name}: {e}" ) ) ?;
2529 let handler = crate :: resolve:: get_handle ( & name) ?;
2630 Ok ( capnp_rpc:: new_client ( ResolverControlImpl {
2731 resolver_handler : handler,
Original file line number Diff line number Diff line change 55 */
66
77use std:: rc:: Rc ;
8+ use std:: str:: FromStr ;
9+
10+ use anyhow:: anyhow;
811
912use vey_types:: metrics:: NodeName ;
1013
@@ -18,7 +21,8 @@ pub(super) struct ServerControlImpl {
1821
1922impl ServerControlImpl {
2023 pub ( super ) fn new_client ( name : & str ) -> anyhow:: Result < server_control:: Client > {
21- let name = unsafe { NodeName :: new_unchecked ( name) } ;
24+ let name =
25+ NodeName :: from_str ( name) . map_err ( |e| anyhow ! ( "invalid server name {name}: {e}" ) ) ?;
2226 let server = crate :: serve:: get_server ( & name) ?;
2327 Ok ( capnp_rpc:: new_client ( ServerControlImpl { server } ) )
2428 }
You can’t perform that action at this time.
0 commit comments