|
2 | 2 |
|
3 | 3 | use libc::{c_int, c_void, size_t}; |
4 | 4 |
|
5 | | -usesuper::fd::WasiFd; |
6 | 5 | usecrate::ffi::CStr; |
7 | 6 | usecrate::io::{self,BorrowedBuf,BorrowedCursor,IoSlice,IoSliceMut}; |
8 | 7 | usecrate::net::{Shutdown,SocketAddr}; |
9 | | -usecrate::os::wasi::io::{AsFd,AsRawFd,BorrowedFd,FromRawFd,IntoRawFd,RawFd}; |
| 8 | +usecrate::os::wasi::io::{AsFd,AsRawFd,BorrowedFd,FromRawFd,IntoRawFd,OwnedFd,RawFd}; |
10 | 9 | usecrate::sys::unsupported; |
11 | | -usecrate::sys_common::net::{TcpListener,getsockopt, setsockopt, sockaddr_to_addr}; |
| 10 | +usecrate::sys_common::net::{getsockopt, setsockopt, sockaddr_to_addr}; |
12 | 11 | usecrate::sys_common::{AsInner,FromInner,IntoInner}; |
13 | 12 | usecrate::time::{Duration,Instant}; |
14 | 13 | usecrate::{cmp, mem, str}; |
@@ -71,7 +70,9 @@ pub fn cvt_gai(err: c_int) -> io::Result<()> { |
71 | 70 |
|
72 | 71 | pubfninit(){} |
73 | 72 |
|
74 | | -pubstructSocket(WasiFd); |
| 73 | +pubstructWasiSocket(OwnedFd); |
| 74 | + |
| 75 | +pubstructSocket(WasiSocket); |
75 | 76 |
|
76 | 77 | implSocket{ |
77 | 78 | pubfnnew(addr:&SocketAddr,ty:c_int) -> io::Result<Socket>{ |
@@ -327,53 +328,90 @@ impl Socket { |
327 | 328 | } |
328 | 329 | } |
329 | 330 |
|
330 | | -implAsInner<WasiFd>forSocket{ |
| 331 | +implAsInner<OwnedFd>forWasiSocket{ |
331 | 332 | #[inline] |
332 | | -fnas_inner(&self) -> &WasiFd{ |
| 333 | +fnas_inner(&self) -> &OwnedFd{ |
333 | 334 | &self.0 |
334 | 335 | } |
335 | 336 | } |
336 | 337 |
|
337 | | -implIntoInner<WasiFd>forSocket{ |
338 | | -fninto_inner(self) -> WasiFd{ |
| 338 | +implIntoInner<OwnedFd>forWasiSocket{ |
| 339 | +fninto_inner(self) -> OwnedFd{ |
339 | 340 | self.0 |
340 | 341 | } |
341 | 342 | } |
342 | 343 |
|
343 | | -implFromInner<WasiFd>forSocket{ |
344 | | -fnfrom_inner(inner:WasiFd) -> Socket{ |
345 | | -Socket(inner) |
| 344 | +implFromInner<OwnedFd>forWasiSocket{ |
| 345 | +fnfrom_inner(owned_fd:OwnedFd) -> Self{ |
| 346 | +Self(owned_fd) |
346 | 347 | } |
347 | 348 | } |
348 | 349 |
|
349 | | -implAsFdforSocket{ |
| 350 | +implAsFdforWasiSocket{ |
350 | 351 | fnas_fd(&self) -> BorrowedFd<'_>{ |
351 | 352 | self.0.as_fd() |
352 | 353 | } |
353 | 354 | } |
354 | 355 |
|
355 | | -implAsRawFdforSocket{ |
| 356 | +implAsRawFdforWasiSocket{ |
356 | 357 | #[inline] |
357 | 358 | fnas_raw_fd(&self) -> RawFd{ |
358 | 359 | self.0.as_raw_fd() |
359 | 360 | } |
360 | 361 | } |
361 | 362 |
|
362 | | -implIntoRawFdforSocket{ |
| 363 | +implIntoRawFdforWasiSocket{ |
363 | 364 | fninto_raw_fd(self) -> RawFd{ |
364 | 365 | self.0.into_raw_fd() |
365 | 366 | } |
366 | 367 | } |
367 | 368 |
|
368 | | -implFromRawFdforSocket{ |
| 369 | +implFromRawFdforWasiSocket{ |
369 | 370 | unsafefnfrom_raw_fd(raw_fd:RawFd) -> Self{ |
370 | 371 | unsafe{Self(FromRawFd::from_raw_fd(raw_fd))} |
371 | 372 | } |
372 | 373 | } |
373 | 374 |
|
374 | | -implAsInner<Socket>forTcpListener{ |
| 375 | +implAsInner<WasiSocket>forSocket{ |
| 376 | +#[inline] |
| 377 | +fnas_inner(&self) -> &WasiSocket{ |
| 378 | +&self.0 |
| 379 | +} |
| 380 | +} |
| 381 | + |
| 382 | +implIntoInner<WasiSocket>forSocket{ |
| 383 | +fninto_inner(self) -> WasiSocket{ |
| 384 | +self.0 |
| 385 | +} |
| 386 | +} |
| 387 | + |
| 388 | +implFromInner<WasiSocket>forSocket{ |
| 389 | +fnfrom_inner(sock:WasiSocket) -> Socket{ |
| 390 | +Socket(sock) |
| 391 | +} |
| 392 | +} |
| 393 | + |
| 394 | +implAsFdforSocket{ |
| 395 | +fnas_fd(&self) -> BorrowedFd<'_>{ |
| 396 | +self.0.as_fd() |
| 397 | +} |
| 398 | +} |
| 399 | + |
| 400 | +implAsRawFdforSocket{ |
375 | 401 | #[inline] |
376 | | -fnas_inner(&self) -> &Socket{ |
377 | | -&self.socket() |
| 402 | +fnas_raw_fd(&self) -> RawFd{ |
| 403 | +self.0.as_raw_fd() |
| 404 | +} |
| 405 | +} |
| 406 | + |
| 407 | +implIntoRawFdforSocket{ |
| 408 | +fninto_raw_fd(self) -> RawFd{ |
| 409 | +self.0.into_raw_fd() |
| 410 | +} |
| 411 | +} |
| 412 | + |
| 413 | +implFromRawFdforSocket{ |
| 414 | +unsafefnfrom_raw_fd(raw_fd:RawFd) -> Self{ |
| 415 | +unsafe{Self(FromRawFd::from_raw_fd(raw_fd))} |
378 | 416 | } |
379 | 417 | } |
0 commit comments