diff --git a/src/runtime2/stdlib/internet.rs b/src/runtime2/stdlib/internet.rs index bb418c8ffb046d5ff9546bc8164832d58bdf2cae..a3d150a9efea7e821564ec0521e37461918cb2dc 100644 --- a/src/runtime2/stdlib/internet.rs +++ b/src/runtime2/stdlib/internet.rs @@ -9,6 +9,8 @@ use libc::{ }; use mio::{event, Interest, Registry, Token}; +use crate::runtime2::poll::{AsFileDescriptor, FileDescriptor}; + #[derive(Debug)] pub enum SocketError { Opening, @@ -83,6 +85,12 @@ impl Drop for SocketTcpClient { } } +impl AsFileDescriptor for SocketTcpClient { + fn as_file_descriptor(&self) -> FileDescriptor { + return self.socket_handle; + } +} + /// Raw socket receiver. Essentially a listener that accepts a single connection struct SocketRawRx { listen_handle: c_int, @@ -309,28 +317,4 @@ fn socket_family_from_ip(ip: IpAddr) -> libc::c_int { #[inline] fn htons(port: u16) -> u16 { return port.to_be(); -} - -mod tests { - use std::net::*; - use super::*; - - // #[test] @nocommit Remove this - // fn test_inet_thingo() { - // const SIZE: usize = 1024; - // - // let s = SocketTcpClient::new(IpAddr::V4(Ipv4Addr::new(142, 250, 179, 163)), 80).expect("connect"); - // s.send(b"GET / HTTP/1.1\r\n\r\n").expect("sending"); - // let mut total = Vec::::new(); - // let mut buffer = [0; SIZE]; - // let mut received = SIZE; - // - // while received > 0 { - // received = s.receive(&mut buffer).expect("receiving"); - // println!("DEBUG: Received {} bytes", received); - // total.extend_from_slice(&buffer[..received]); - // } - // let as_str = String::from_utf8_lossy(total.as_slice()); - // println!("Yay! Got {} bytes:\n{}", as_str.len(), as_str); - // } } \ No newline at end of file