Function riot_sys::sock_ip_send_aux

source ·
pub unsafe extern "C" fn sock_ip_send_aux(
    sock: *mut sock_ip_t,
    data: *const c_void,
    len: size_t,
    proto: u8,
    remote: *const sock_ip_ep_t,
    aux: *mut sock_ip_aux_tx_t
) -> ssize_t
Expand description

@brief Sends a message over IPv4/IPv6 to remote end point

@pre ((sock != NULL || remote != NULL)) && (if (len != 0): (data != NULL))

@param[in] sock A raw IPv4/IPv6 sock object. May be NULL. A sensible local end point should be selected by the implementation in that case. @param[in] data Pointer where the received data should be stored. May be NULL if len == 0. @param[in] len Maximum space available at @p data. @param[in] proto Protocol to use in the packet sent, in case sock == NULL. If sock != NULL this parameter will be ignored. @param[in] remote Remote end point for the sent data. May be NULL, if @p sock has a remote end point. sock_ip_ep_t::family may be AF_UNSPEC, if local end point of @p sock provides this information. @param[out] aux Auxiliary data for the transmission. May be NULL if not needed by the caller.

@return The number of bytes sent on success. @return -EAFNOSUPPORT, if remote != NULL and sock_ip_ep_t::family of @p remote is != AF_UNSPEC and not supported. @return -EINVAL, if sock_ip_ep_t::addr of @p remote is an invalid address. @return -EINVAL, if sock_ip_ep_t::netif of @p remote is not a valid interface or contradicts the local interface of @p sock. @return -EHOSTUNREACH, if @p remote or remote end point of @p sock is not reachable. @return -ENOMEM, if no memory was available to send @p data. @return -ENOTCONN, if remote == NULL, but @p sock has no remote end point. @return -EPROTOTYPE, if sock == NULL and @p proto is not by sock_ip_ep_t::family of @p remote.