Skip to content
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

NameTypeDirDescription
fdesint-
asacaddr_t-
alensocklen_t-

Historique des versions

XNU tagmacOS#
xnu-1456.1.26macOS 10.6 Snow Leopard32
xnu-1486.2.1132
xnu-1504.15.332
xnu-1504.3.1232
xnu-1504.7.432
xnu-1504.9.1732
xnu-1504.9.2632
xnu-1504.9.3732

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