Skip to content
Syscall BSD#133

svc · unix #133

sendto

Envoie un datagramme ou un segment de flux vers une adresse spécifiée.

Prototype

int sendto(int s, caddr_t buf, size_t len, int flags, caddr_t to, socklen_t tolen);

Retour: int

Arguments

NameTypeDirDescription
sint-
bufcaddr_t-
lensize_t-
flagsint-
tocaddr_t-
tolensocklen_t-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard133
xnu-1486.2.11133
xnu-1504.15.3133
xnu-1504.3.12133
xnu-1504.7.4133
xnu-1504.9.17133
xnu-1504.9.26133
xnu-1504.9.37133

Notes

Pour les sockets connectées, l'argument destination doit être NULL ou correspondre au pair existant. UDP sendto est le chemin habituel pour les sockets datagramme non connectées et déclenche la résolution de politique NECP à chaque appel sauf si la socket dispose d'un ID de politique en cache. Les apps sandboxées sans l'entitlement réseau correspondant sont rejetées au niveau NECP avant qu'aucun paquet ne quitte le noyau.

Détection

handleOutboundData de NEFilterDataProvider se déclenche pour chaque morceau sortant et constitue le tap principal. nettop -m route -p <pid> fournit une vue de compteurs grossière sans extension.

API associées

sendmsgsendmsg_xwriteconnectnecp_client_action