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
| Name | Type | Dir | Description |
|---|---|---|---|
| s | int | - | |
| buf | caddr_t | - | |
| len | size_t | - | |
| flags | int | - | |
| to | caddr_t | - | |
| tolen | socklen_t | - |
Historique des versions
| XNU tag | macOS | # |
|---|---|---|
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | 133 |
| 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