pub struct UnixSocket { /* private fields */ }
Expand description
A unix socket. The UnixSocket
is the public-facing API, which forwards API calls to the inner
state object.
Implementations§
source§impl UnixSocket
impl UnixSocket
pub fn new( status: FileStatus, socket_type: UnixSocketType, namespace: &Arc<AtomicRefCell<AbstractUnixNamespace>>, ) -> Arc<AtomicRefCell<Self>>
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 getsockname(&self) -> Result<Option<SockaddrUnix<sockaddr_un>>, Errno>
pub fn getpeername(&self) -> Result<Option<SockaddrUnix<sockaddr_un>>, 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>>, 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( &mut 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 pair( status: FileStatus, socket_type: UnixSocketType, namespace: &Arc<AtomicRefCell<AbstractUnixNamespace>>, cb_queue: &mut CallbackQueue, ) -> (Arc<AtomicRefCell<Self>>, Arc<AtomicRefCell<Self>>)
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
Auto Trait Implementations§
impl Freeze for UnixSocket
impl !RefUnwindSafe for UnixSocket
impl Send for UnixSocket
impl Sync for UnixSocket
impl Unpin for UnixSocket
impl !UnwindSafe for UnixSocket
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