diff --git a/README.md b/README.md index 4a6e74f..c6ab390 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,2 @@ # survey -epoll(7) things for fun and profit +low level linux io diff --git a/src/sync_tcp.rs b/src/sync_tcp.rs index b9bfd51..1fe53d5 100644 --- a/src/sync_tcp.rs +++ b/src/sync_tcp.rs @@ -4,7 +4,7 @@ use std::{ io::{Read, Write}, mem, mem::MaybeUninit, - os::unix, + os::{unix, unix::io::RawFd}, }; const SOCKADDR_IN_SIZE: libc::socklen_t = mem::size_of::() as _; @@ -87,6 +87,12 @@ impl Debug for SyncTcpListener { } } +impl unix::io::AsRawFd for SyncTcpListener { + fn as_raw_fd(&self) -> RawFd { + self.fd + } +} + pub struct SyncTcpStream { fd: unix::io::RawFd, peer_sockaddr: libc::sockaddr_in, @@ -134,6 +140,12 @@ impl Debug for SyncTcpStream { } } +impl unix::io::AsRawFd for SyncTcpStream { + fn as_raw_fd(&self) -> RawFd { + self.fd + } +} + fn format_addr(addr: libc::sockaddr_in) -> String { let bytes = addr.sin_addr.s_addr.to_be_bytes(); format!(