diff options
author | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-03-31 18:52:45 +0200 |
---|---|---|
committer | cinap_lenrek <cinap_lenrek@gmx.de> | 2013-03-31 18:52:45 +0200 |
commit | b6dc4ba5a44a2ed2a68266598ceb28b7a7d51af2 (patch) | |
tree | b2af773db48a3606bd078055db925dbba6d4ffaa /sys/src/ape/lib/bsd/getsockname.c | |
parent | 9c7e1db701e0e80b42bb5990e2f6839d712bb984 (diff) |
ape: initial IPv6 support, inet_pton()/inet_ntop(), getaddrinfo()/getnameinfo()
Diffstat (limited to 'sys/src/ape/lib/bsd/getsockname.c')
-rw-r--r-- | sys/src/ape/lib/bsd/getsockname.c | 8 |
1 files changed, 4 insertions, 4 deletions
diff --git a/sys/src/ape/lib/bsd/getsockname.c b/sys/src/ape/lib/bsd/getsockname.c index aa22d3217..cdf149779 100644 --- a/sys/src/ape/lib/bsd/getsockname.c +++ b/sys/src/ape/lib/bsd/getsockname.c @@ -20,7 +20,6 @@ getsockname(int fd, struct sockaddr *addr, int *alen) { Rock *r; int i; - struct sockaddr_in *lip; struct sockaddr_un *lunix; r = _sock_findrock(fd, 0); @@ -31,14 +30,15 @@ getsockname(int fd, struct sockaddr *addr, int *alen) switch(r->domain){ case PF_INET: - lip = (struct sockaddr_in*)addr; - _sock_ingetaddr(r, lip, alen, "local"); + case PF_INET6: + _sock_ingetaddr(r, addr, alen, "local"); break; case PF_UNIX: lunix = (struct sockaddr_un*)&r->addr; i = &lunix->sun_path[strlen(lunix->sun_path)] - (char*)lunix; memmove(addr, lunix, i); - *alen = i; + if(alen != 0) + *alen = i; break; default: errno = EAFNOSUPPORT; |