12 #include <sys/socket.h>
13 #include <netinet/in.h>
19 getsockname(int fd, struct sockaddr *addr, int *alen)
23 struct sockaddr_in *lip;
24 struct sockaddr_un *lunix;
26 r = _sock_findrock(fd, 0);
34 lip = (struct sockaddr_in*)addr;
35 _sock_ingetaddr(r, lip, alen, "local");
38 lunix = (struct sockaddr_un*)&r->addr;
39 i = &lunix->sun_path[strlen(lunix->sun_path)] - (char*)lunix;
40 memmove(addr, lunix, i);