Skip to content

Commit

Permalink
add FromRawFd
Browse files Browse the repository at this point in the history
  • Loading branch information
zonyitoo committed Dec 13, 2015
1 parent 3123d66 commit e9ecad0
Show file tree
Hide file tree
Showing 2 changed files with 24 additions and 2 deletions.
17 changes: 16 additions & 1 deletion src/net/tcp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ use std::convert::From;
use std::iter::Iterator;

#[cfg(unix)]
use std::os::unix::io::{AsRawFd, RawFd};
use std::os::unix::io::{AsRawFd, FromRawFd, RawFd};

use mio::{self, EventSet};

Expand Down Expand Up @@ -102,6 +102,14 @@ impl AsRawFd for TcpListener {
}
}

#[cfg(unix)]
impl FromRawFd for TcpListener {
unsafe fn from_raw_fd(fd: RawFd) -> TcpListener {
TcpListener(FromRawFd::from_raw_fd(fd))
}
}


pub struct Incoming<'a>(&'a TcpListener);

impl<'a> Iterator for Incoming<'a> {
Expand Down Expand Up @@ -303,3 +311,10 @@ impl AsRawFd for TcpStream {
self.0.as_raw_fd()
}
}

#[cfg(unix)]
impl FromRawFd for TcpStream {
unsafe fn from_raw_fd(fd: RawFd) -> TcpStream {
TcpStream(FromRawFd::from_raw_fd(fd))
}
}
9 changes: 8 additions & 1 deletion src/net/udp.rs
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ use std::io;
use std::net::{ToSocketAddrs, SocketAddr};

#[cfg(unix)]
use std::os::unix::io::{AsRawFd, RawFd};
use std::os::unix::io::{AsRawFd, FromRawFd, RawFd};

use mio::EventSet;

Expand Down Expand Up @@ -131,3 +131,10 @@ impl AsRawFd for UdpSocket {
self.0.as_raw_fd()
}
}

#[cfg(unix)]
impl FromRawFd for UdpSocket {
unsafe fn from_raw_fd(fd: RawFd) -> UdpSocket {
UdpSocket(FromRawFd::from_raw_fd(fd))
}
}

0 comments on commit e9ecad0

Please sign in to comment.