Syscall BSD#32
svc · unix #32
getsockname
Renvoie l'adresse locale liée à une socket.
Prototype
int getsockname(int fdes, caddr_t asa, socklen_t *alen);Retour: int
Arguments
| Name | Type | Dir | Description |
|---|---|---|---|
| fdes | int | - | |
| asa | caddr_t | - | |
| alen | socklen_t | - |
Historique des versions
| XNU tag | macOS | # |
|---|---|---|
| xnu-1456.1.26 | macOS 10.6 Snow Leopard | 32 |
| xnu-1486.2.11 | — | 32 |
| xnu-1504.15.3 | — | 32 |
| xnu-1504.3.12 | — | 32 |
| xnu-1504.7.4 | — | 32 |
| xnu-1504.9.17 | — | 32 |
| xnu-1504.9.26 | — | 32 |
| xnu-1504.9.37 | — | 32 |
Notes
Après un bind implicite (déclenché par connect sur une socket non liée) c'est le seul moyen de connaître le port éphémère choisi par le noyau. Pour AF_UNIX, le sockaddr_un retourné est tronqué à la limite de chemin de 104 octets imposée par le noyau. Les flux NetworkExtension peuvent réécrire l'adresse locale apparente quand le trafic est redirigé dans un tunnel, donc la valeur vue ici peut différer de la table de routage du noyau.
Détection
Non pertinent pour la sécurité en isolation. proc_pidfdinfo avec PROC_PIDFDSOCKETINFO renvoie les mêmes données sans nécessiter l'appel système.
API associées
getpeernamebindsocketsetsockopt