use sc::syscall;
use crate::error::Result;
use crate::platform::{Fd, SocketAddressInet, SocketArgUnix};
#[inline]
pub fn connect_unix(sock_fd: Fd, socket_address: &SocketArgUnix) -> Result<()> {
let res = unsafe {
syscall!(
CONNECT,
sock_fd.0,
core::ptr::addr_of!(socket_address.addr),
socket_address.addr_len
)
};
bail_on_below_zero!(res, "`CONNECT` syscall failed");
Ok(())
}
#[inline]
pub fn connect_inet(sock_fd: Fd, addr: &SocketAddressInet) -> Result<()> {
let res = unsafe {
syscall!(
CONNECT,
sock_fd.0,
core::ptr::from_ref::<SocketAddressInet>(addr),
SocketAddressInet::LENGTH
)
};
bail_on_below_zero!(res, "`CONNECT` syscall failed");
Ok(())
}