diff options
| author | Tomoaki Kawada <kawada@kmckk.co.jp> | 2022-01-28 14:53:54 +0900 |
|---|---|---|
| committer | Tomoaki Kawada <kawada@kmckk.co.jp> | 2022-01-28 15:02:44 +0900 |
| commit | da0d506ace5dc5ec36cd1eafa37a0657fa61442e (patch) | |
| tree | a39a6e04bd24a9a162e6a6eb4431dfb74efe9c77 /library/std/src | |
| parent | 5ab502c6d308b0ccac8127c0464e432334755a60 (diff) | |
| download | rust-da0d506ace5dc5ec36cd1eafa37a0657fa61442e.tar.gz rust-da0d506ace5dc5ec36cd1eafa37a0657fa61442e.zip | |
kmc-solid: Implement `FileDesc::duplicate`
Diffstat (limited to 'library/std/src')
| -rw-r--r-- | library/std/src/sys/solid/abi/sockets.rs | 3 | ||||
| -rw-r--r-- | library/std/src/sys/solid/net.rs | 2 |
2 files changed, 4 insertions, 1 deletions
diff --git a/library/std/src/sys/solid/abi/sockets.rs b/library/std/src/sys/solid/abi/sockets.rs index 7c21d0dd25e..eb06a6dd927 100644 --- a/library/std/src/sys/solid/abi/sockets.rs +++ b/library/std/src/sys/solid/abi/sockets.rs @@ -175,6 +175,9 @@ extern "C" { #[link_name = "SOLID_NET_Close"] pub fn close(s: c_int) -> c_int; + #[link_name = "SOLID_NET_Dup"] + pub fn dup(s: c_int) -> c_int; + #[link_name = "SOLID_NET_GetPeerName"] pub fn getpeername(s: c_int, name: *mut sockaddr, namelen: *mut socklen_t) -> c_int; diff --git a/library/std/src/sys/solid/net.rs b/library/std/src/sys/solid/net.rs index 63ba6341c79..c91ecce4d72 100644 --- a/library/std/src/sys/solid/net.rs +++ b/library/std/src/sys/solid/net.rs @@ -107,7 +107,7 @@ impl FileDesc { } fn duplicate(&self) -> io::Result<FileDesc> { - super::unsupported() + cvt(unsafe { netc::dup(self.fd) }).map(Self::new) } } |
