@@ -1042,8 +1042,8 @@ enum HostSocket {
10421042}
10431043
10441044struct SocketTable {
1045- sockets : HashMap < u32 , HostSocket > ,
1046- next_id : u32 ,
1045+ sockets : HashMap < u64 , HostSocket > ,
1046+ next_id : u64 ,
10471047}
10481048
10491049impl SocketTable {
@@ -1054,32 +1054,32 @@ impl SocketTable {
10541054 }
10551055 }
10561056
1057- fn insert ( & mut self , sock : HostSocket ) -> u32 {
1057+ fn insert ( & mut self , sock : HostSocket ) -> u64 {
10581058 let id = self . next_id ;
10591059 self . next_id += 1 ;
10601060 self . sockets . insert ( id, sock) ;
10611061 id
10621062 }
10631063
1064- fn get ( & self , fd : u32 ) -> Result < & HostSocket > {
1064+ fn get ( & self , fd : u64 ) -> Result < & HostSocket > {
10651065 self . sockets
10661066 . get ( & fd)
10671067 . ok_or_else ( || anyhow ! ( "bad_fd: {}" , fd) )
10681068 }
10691069
1070- fn get_socket ( & self , fd : u32 ) -> Result < & Socket > {
1070+ fn get_socket ( & self , fd : u64 ) -> Result < & Socket > {
10711071 match self . get ( fd) ? {
10721072 HostSocket :: Socket ( s, _) => Ok ( s) ,
10731073 }
10741074 }
10751075
1076- fn get_sock_type ( & self , fd : u32 ) -> Result < i32 > {
1076+ fn get_sock_type ( & self , fd : u64 ) -> Result < i32 > {
10771077 match self . get ( fd) ? {
10781078 HostSocket :: Socket ( _, t) => Ok ( * t) ,
10791079 }
10801080 }
10811081
1082- fn remove ( & mut self , fd : u32 ) -> Result < ( ) > {
1082+ fn remove ( & mut self , fd : u64 ) -> Result < ( ) > {
10831083 self . sockets
10841084 . remove ( & fd)
10851085 . map ( |_| ( ) )
@@ -1150,7 +1150,7 @@ fn register_net_tools(
11501150 let t = table. clone ( ) ;
11511151 let pol = policy. clone ( ) ;
11521152 tools. register ( "net_connect" , move |args| {
1153- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1153+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
11541154 let addr = parse_sockaddr ( & args) ?;
11551155 pol. check ( & addr) ?;
11561156 let sa: SockAddr = addr. into ( ) ;
@@ -1164,7 +1164,7 @@ fn register_net_tools(
11641164 let t = table. clone ( ) ;
11651165 let lp = listen_ports. cloned ( ) . map ( Arc :: new) ;
11661166 tools. register ( "net_bind" , move |args| {
1167- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1167+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
11681168 let addr = parse_sockaddr ( & args) ?;
11691169 match lp. as_ref ( ) {
11701170 Some ( ports) => ports. check ( addr. port ( ) ) ?,
@@ -1180,7 +1180,7 @@ fn register_net_tools(
11801180 // net_listen
11811181 let t = table. clone ( ) ;
11821182 tools. register ( "net_listen" , move |args| {
1183- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1183+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
11841184 let backlog = args[ "backlog" ] . as_i64 ( ) . unwrap_or ( 128 ) as i32 ;
11851185 let tbl = t. lock ( ) . unwrap ( ) ;
11861186 let sock = tbl. get_socket ( fd) ?;
@@ -1191,7 +1191,7 @@ fn register_net_tools(
11911191 // net_accept
11921192 let t = table. clone ( ) ;
11931193 tools. register ( "net_accept" , move |args| {
1194- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1194+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
11951195 let ( new_sock, peer, parent_type) = {
11961196 let tbl = t. lock ( ) . unwrap ( ) ;
11971197 let sock = tbl. get_socket ( fd) ?;
@@ -1212,7 +1212,7 @@ fn register_net_tools(
12121212 // net_send
12131213 let t = table. clone ( ) ;
12141214 tools. register ( "net_send" , move |args| {
1215- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1215+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
12161216 let data_b64 = args[ "data" ]
12171217 . as_str ( )
12181218 . ok_or_else ( || anyhow ! ( "missing 'data'" ) ) ?;
@@ -1229,7 +1229,7 @@ fn register_net_tools(
12291229 let t = table. clone ( ) ;
12301230 let pol = policy. clone ( ) ;
12311231 tools. register ( "net_sendto" , move |args| {
1232- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1232+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
12331233 let data_b64 = args[ "data" ]
12341234 . as_str ( )
12351235 . ok_or_else ( || anyhow ! ( "missing 'data'" ) ) ?;
@@ -1248,7 +1248,7 @@ fn register_net_tools(
12481248 // net_recv (alias for net_recvfrom with no addr returned for stream)
12491249 let t = table. clone ( ) ;
12501250 tools. register ( "net_recv" , move |args| {
1251- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1251+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
12521252 let len = args[ "len" ] . as_u64 ( ) . unwrap_or ( 4096 ) as usize ;
12531253 let mut buf = vec ! [ std:: mem:: MaybeUninit :: uninit( ) ; len. min( 65536 ) ] ;
12541254 let tbl = t. lock ( ) . unwrap ( ) ;
@@ -1265,7 +1265,7 @@ fn register_net_tools(
12651265 // net_recvfrom
12661266 let t = table. clone ( ) ;
12671267 tools. register ( "net_recvfrom" , move |args| {
1268- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1268+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
12691269 let len = args[ "len" ] . as_u64 ( ) . unwrap_or ( 4096 ) as usize ;
12701270 let mut buf = vec ! [ 0u8 ; len. min( 65536 ) ] ;
12711271
@@ -1290,15 +1290,15 @@ fn register_net_tools(
12901290 // net_close
12911291 let t = table. clone ( ) ;
12921292 tools. register ( "net_close" , move |args| {
1293- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1293+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
12941294 t. lock ( ) . unwrap ( ) . remove ( fd) ?;
12951295 Ok ( json ! ( { } ) )
12961296 } ) ;
12971297
12981298 // net_shutdown
12991299 let t = table. clone ( ) ;
13001300 tools. register ( "net_shutdown" , move |args| {
1301- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1301+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
13021302 let how = args[ "how" ] . as_i64 ( ) . unwrap_or ( 2 ) as i32 ;
13031303 let shutdown = match how {
13041304 0 => std:: net:: Shutdown :: Read ,
@@ -1314,7 +1314,7 @@ fn register_net_tools(
13141314 // net_setsockopt
13151315 let t = table. clone ( ) ;
13161316 tools. register ( "net_setsockopt" , move |args| {
1317- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1317+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
13181318 let level = args[ "level" ] . as_i64 ( ) . unwrap_or ( 0 ) as i32 ;
13191319 let optname = args[ "optname" ] . as_i64 ( ) . unwrap_or ( 0 ) as i32 ;
13201320 let value = args[ "value" ] . as_i64 ( ) . unwrap_or ( 0 ) as i32 ;
@@ -1338,7 +1338,7 @@ fn register_net_tools(
13381338 // net_getsockopt
13391339 let t = table. clone ( ) ;
13401340 tools. register ( "net_getsockopt" , move |args| {
1341- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1341+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
13421342 let level = args[ "level" ] . as_i64 ( ) . unwrap_or ( 0 ) as i32 ;
13431343 let optname = args[ "optname" ] . as_i64 ( ) . unwrap_or ( 0 ) as i32 ;
13441344 let tbl = t. lock ( ) . unwrap ( ) ;
@@ -1359,7 +1359,7 @@ fn register_net_tools(
13591359 // net_getpeername
13601360 let t = table. clone ( ) ;
13611361 tools. register ( "net_getpeername" , move |args| {
1362- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1362+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
13631363 let tbl = t. lock ( ) . unwrap ( ) ;
13641364 let sock = tbl. get_socket ( fd) ?;
13651365 let peer = sock. peer_addr ( ) ?;
@@ -1373,7 +1373,7 @@ fn register_net_tools(
13731373 // net_getsockname
13741374 let t = table. clone ( ) ;
13751375 tools. register ( "net_getsockname" , move |args| {
1376- let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ? as u32 ;
1376+ let fd = args[ "fd" ] . as_u64 ( ) . ok_or_else ( || anyhow ! ( "missing 'fd'" ) ) ?;
13771377 let tbl = t. lock ( ) . unwrap ( ) ;
13781378 let sock = tbl. get_socket ( fd) ?;
13791379 let local = sock. local_addr ( ) ?;
0 commit comments