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.11—133
xnu-1504.15.3—133
xnu-1504.3.12—133
xnu-1504.7.4—133
xnu-1504.9.17—133
xnu-1504.9.26—133
xnu-1504.9.37—133

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