summaryrefslogtreecommitdiff
path: root/sys/src/ape/lib/bsd/socket.c
diff options
context:
space:
mode:
authorcinap_lenrek <cinap_lenrek@gmx.de>2013-03-31 18:52:45 +0200
committercinap_lenrek <cinap_lenrek@gmx.de>2013-03-31 18:52:45 +0200
commitb6dc4ba5a44a2ed2a68266598ceb28b7a7d51af2 (patch)
treeb2af773db48a3606bd078055db925dbba6d4ffaa /sys/src/ape/lib/bsd/socket.c
parent9c7e1db701e0e80b42bb5990e2f6839d712bb984 (diff)
ape: initial IPv6 support, inet_pton()/inet_ntop(), getaddrinfo()/getnameinfo()
Diffstat (limited to 'sys/src/ape/lib/bsd/socket.c')
-rw-r--r--sys/src/ape/lib/bsd/socket.c13
1 files changed, 7 insertions, 6 deletions
diff --git a/sys/src/ape/lib/bsd/socket.c b/sys/src/ape/lib/bsd/socket.c
index d14b35386..3cf8c6632 100644
--- a/sys/src/ape/lib/bsd/socket.c
+++ b/sys/src/ape/lib/bsd/socket.c
@@ -125,6 +125,7 @@ socket(int domain, int stype, int protocol)
switch(domain){
case PF_INET:
+ case PF_INET6:
/* get a free network directory */
switch(stype){
case SOCK_DGRAM:
@@ -135,20 +136,20 @@ socket(int domain, int stype, int protocol)
net = "tcp";
cfd = open("/net/tcp/clone", O_RDWR);
break;
+ case SOCK_RDM:
+ net = "il";
+ cfd = open("/net/il/clone", O_RDWR);
+ break;
default:
errno = EPROTONOSUPPORT;
return -1;
}
- if(cfd < 0){
- _syserrno();
+ if(cfd < 0)
return -1;
- }
return _sock_data(cfd, net, domain, stype, protocol, 0);
case PF_UNIX:
- if(pipe(pfd) < 0){
- _syserrno();
+ if(pipe(pfd) < 0)
return -1;
- }
r = _sock_newrock(pfd[0]);
if(r == 0){
close(pfd[0]);