MCPcopy Create free account
hub / github.com/bytecodealliance/rustix / connect

Function connect

src/backend/linux_raw/net/syscalls.rs:659–687  ·  view source on GitHub ↗
(fd: BorrowedFd<'_>, addr: &impl SocketAddrArg)

Source from the content-addressed store, hash-verified

657
658#[inline]
659pub(crate) fn connect(fd: BorrowedFd<'_>, addr: &impl SocketAddrArg) -> io::Result<()> {
660 // SAFETY: This passes the `addr_ptr` reference to the OS which reads the
661 // buffers only within the `addr_len` bound.
662 unsafe {
663 addr.with_sockaddr(|addr_ptr, addr_len| {
664 #[cfg(not(target_arch = "x86"))]
665 {
666 ret(syscall_readonly!(
667 __NR_connect,
668 fd,
669 raw_arg(addr_ptr as *mut _),
670 socklen_t(addr_len)
671 ))
672 }
673 #[cfg(target_arch = "x86")]
674 {
675 ret(syscall_readonly!(
676 __NR_socketcall,
677 x86_sys(SYS_CONNECT),
678 slice_just_addr::<ArgReg<'_, SocketArg>, _>(&[
679 fd.into(),
680 raw_arg(addr_ptr as *mut _),
681 socklen_t(addr_len)
682 ])
683 ))
684 }
685 })
686 }
687}
688
689#[inline]
690pub(crate) fn connect_unspec(fd: BorrowedFd<'_>) -> io::Result<()> {

Callers

nothing calls this directly

Calls 2

retFunction · 0.50
with_sockaddrMethod · 0.45

Tested by

no test coverage detected