Syscall BSD#106
svc · unix #106
listen
Marque une socket en mode connexion comme passive, prête à accepter des connexions entrantes.
Prototype
int listen(int s, int backlog);Retour: int
Arguments
| Name | Type | Dir | Description |
|---|---|---|---|
| s | int | - | |
| backlog | int | - |
Historique des versions
| XNU tag | macOS | # |
|---|---|---|
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | 106 |
| xnu-1486.2.11 | — | 106 |
| xnu-1504.15.3 | — | 106 |
| xnu-1504.3.12 | — | 106 |
| xnu-1504.7.4 | — | 106 |
| xnu-1504.9.17 | — | 106 |
| xnu-1504.9.26 | — | 106 |
| xnu-1504.9.37 | — | 106 |
Notes
Sur macOS le backlog est plafonné par kern.ipc.somaxconn (défaut 128) et par so_qlimit propre à la socket. Le noyau crée deux files dans l'inpcb : une pour les connexions incomplètes et une pour les connexions complétées. Les sockets en écoute sur des ports TCP inférieurs à 1024 nécessitent toujours des privilèges élevés, et l'entitlement App Sandbox 'network.server' est obligatoire pour les démons sandboxés.
Détection
Aucun événement ES. Utilisez lsof -nP -iTCP -sTCP:LISTEN ou netstat -anvp tcp, et corrélez avec les sockets de service connues de launchd. NEFilterDataProvider voit les flux acceptés mais pas l'état listen lui-même.
API associées
socketbindacceptsetsockoptshutdown