Struct shadow_rs::host::descriptor::socket::inet::legacy_tcp::LegacyTcpSocket
source · pub struct LegacyTcpSocket { /* private fields */ }
Implementations§
source§impl LegacyTcpSocket
impl LegacyTcpSocket
pub fn new(status: FileStatus, host: &Host) -> Arc<AtomicRefCell<Self>>
sourcepub unsafe fn new_from_legacy(legacy_tcp: *mut TCP) -> Arc<AtomicRefCell<Self>>
pub unsafe fn new_from_legacy(legacy_tcp: *mut TCP) -> Arc<AtomicRefCell<Self>>
sourcepub fn canonical_handle(&self) -> usize
pub fn canonical_handle(&self) -> usize
Get a canonical handle for this socket. We use the address of the TCP
object so that the
rust socket and legacy socket have the same handle.
sourcepub fn as_legacy_tcp(&self) -> *mut TCP
pub fn as_legacy_tcp(&self) -> *mut TCP
Get the c::TCP
pointer.
sourcepub fn as_legacy_socket(&self) -> *mut LegacySocket
pub fn as_legacy_socket(&self) -> *mut LegacySocket
Get the c::TCP
pointer as a c::LegacySocket
pointer.
sourcepub fn as_legacy_file(&self) -> *mut LegacyFile
pub fn as_legacy_file(&self) -> *mut LegacyFile
Get the c::TCP
pointer as a c::LegacyFile
pointer.
pub fn status(&self) -> FileStatus
pub fn set_status(&mut self, status: FileStatus)
pub fn mode(&self) -> FileMode
pub fn has_open_file(&self) -> bool
pub fn supports_sa_restart(&self) -> bool
pub fn set_has_open_file(&mut self, val: bool)
pub fn push_in_packet( &mut self, packet: PacketRc, _cb_queue: &mut CallbackQueue, _recv_time: EmulatedTime, )
pub fn pull_out_packet( &mut self, _cb_queue: &mut CallbackQueue, ) -> Option<PacketRc>
pub fn peek_next_packet_priority(&self) -> Option<FifoPacketPriority>
pub fn has_data_to_send(&self) -> bool
pub fn getsockname(&self) -> Result<Option<SockaddrIn>, Errno>
pub fn getpeername(&self) -> Result<Option<SockaddrIn>, Errno>
pub fn address_family(&self) -> AddressFamily
pub fn close( &mut self, _cb_queue: &mut CallbackQueue, ) -> Result<(), SyscallError>
pub fn bind( socket: &Arc<AtomicRefCell<Self>>, addr: Option<&SockaddrStorage>, net_ns: &NetworkNamespace, rng: impl Rng, ) -> Result<(), SyscallError>
pub fn readv( &mut self, _iovs: &[IoVec], _offset: Option<off_t>, _flags: c_int, _mem: &mut MemoryManager, _cb_queue: &mut CallbackQueue, ) -> Result<ssize_t, SyscallError>
pub fn writev( &mut self, _iovs: &[IoVec], _offset: Option<off_t>, _flags: c_int, _mem: &mut MemoryManager, _cb_queue: &mut CallbackQueue, ) -> Result<ssize_t, SyscallError>
pub fn sendmsg( socket: &Arc<AtomicRefCell<Self>>, args: SendmsgArgs<'_>, mem: &mut MemoryManager, _net_ns: &NetworkNamespace, _rng: impl Rng, _cb_queue: &mut CallbackQueue, ) -> Result<ssize_t, SyscallError>
pub fn recvmsg( socket: &Arc<AtomicRefCell<Self>>, args: RecvmsgArgs<'_>, mem: &mut MemoryManager, _cb_queue: &mut CallbackQueue, ) -> Result<RecvmsgReturn, SyscallError>
pub fn ioctl( &mut self, request: IoctlRequest, arg_ptr: ForeignPtr<()>, memory_manager: &mut MemoryManager, ) -> SyscallResult
pub fn stat(&self) -> Result<stat, SyscallError>
pub fn listen( socket: &Arc<AtomicRefCell<Self>>, backlog: i32, net_ns: &NetworkNamespace, rng: impl Rng, _cb_queue: &mut CallbackQueue, ) -> Result<(), Errno>
pub fn connect( socket: &Arc<AtomicRefCell<Self>>, peer_addr: &SockaddrStorage, net_ns: &NetworkNamespace, rng: impl Rng, _cb_queue: &mut CallbackQueue, ) -> Result<(), SyscallError>
pub fn accept( &mut self, _net_ns: &NetworkNamespace, _rng: impl Rng, _cb_queue: &mut CallbackQueue, ) -> Result<OpenFile, SyscallError>
pub fn shutdown( &mut self, how: Shutdown, _cb_queue: &mut CallbackQueue, ) -> Result<(), SyscallError>
pub fn getsockopt( &self, level: c_int, optname: c_int, optval_ptr: ForeignPtr<()>, optlen: socklen_t, memory_manager: &mut MemoryManager, _cb_queue: &mut CallbackQueue, ) -> Result<socklen_t, SyscallError>
pub fn setsockopt( &mut self, level: c_int, optname: c_int, optval_ptr: ForeignPtr<()>, optlen: socklen_t, memory_manager: &MemoryManager, ) -> Result<(), SyscallError>
pub fn add_listener( &mut self, monitoring_state: FileState, monitoring_signals: FileSignals, filter: StateListenerFilter, notify_fn: impl Fn(FileState, FileState, FileSignals, &mut CallbackQueue) + Send + Sync + 'static, ) -> StateListenHandle
pub fn add_legacy_listener(&mut self, ptr: HostTreePointer<StatusListener>)
pub fn remove_legacy_listener(&mut self, ptr: *mut StatusListener)
pub fn state(&self) -> FileState
Trait Implementations§
Auto Trait Implementations§
impl Freeze for LegacyTcpSocket
impl RefUnwindSafe for LegacyTcpSocket
impl Send for LegacyTcpSocket
impl Sync for LegacyTcpSocket
impl Unpin for LegacyTcpSocket
impl UnwindSafe for LegacyTcpSocket
Blanket Implementations§
source§impl<T> BorrowMut<T> for Twhere
T: ?Sized,
impl<T> BorrowMut<T> for Twhere
T: ?Sized,
source§fn borrow_mut(&mut self) -> &mut T
fn borrow_mut(&mut self) -> &mut T
Mutably borrows from an owned value. Read more
source§impl<T> IntoEither for T
impl<T> IntoEither for T
source§fn into_either(self, into_left: bool) -> Either<Self, Self>
fn into_either(self, into_left: bool) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left
is true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read moresource§fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
fn into_either_with<F>(self, into_left: F) -> Either<Self, Self>
Converts
self
into a Left
variant of Either<Self, Self>
if into_left(&self)
returns true
.
Converts self
into a Right
variant of Either<Self, Self>
otherwise. Read more