From 807ecb11a610ddbe9c4a22c0068d8af825fa0672 Mon Sep 17 00:00:00 2001 From: Guy Zana <guy@cloudius-systems.com> Date: Sun, 28 Apr 2013 13:08:25 +0300 Subject: [PATCH] net: implement socketpair() --- bsd/sys/kern/uipc_syscalls_wrap.c | 13 +++++++++++++ bsd/uipc_syscalls.h | 1 + 2 files changed, 14 insertions(+) diff --git a/bsd/sys/kern/uipc_syscalls_wrap.c b/bsd/sys/kern/uipc_syscalls_wrap.c index e94d8d12c..8f50ec85c 100644 --- a/bsd/sys/kern/uipc_syscalls_wrap.c +++ b/bsd/sys/kern/uipc_syscalls_wrap.c @@ -7,6 +7,19 @@ #include "libc.h" +int socketpair(int domain, int type, int protocol, int sv[2]) +{ + int error; + + error = linux_socketpair(domain, type, protocol, sv); + if (error) { + errno = error; + return -1; + } + + return 0; +} + int accept4(int fd, struct sockaddr *restrict addr, socklen_t *restrict len, int flg) { diff --git a/bsd/uipc_syscalls.h b/bsd/uipc_syscalls.h index 59b1d2299..111c80bf7 100644 --- a/bsd/uipc_syscalls.h +++ b/bsd/uipc_syscalls.h @@ -53,5 +53,6 @@ int linux_recvfrom(int s, void* buf, size_t len, int flags, int linux_shutdown(int s, int how); int linux_setsockopt(int s, int level, int name, caddr_t val, int valsize); int linux_getsockopt(int s, int level, int name, void *val, socklen_t *valsize); +int linux_socketpair(int domain, int type, int protocol, int* rsv); #endif /* !UIPC_SYSCALLS_H */ -- GitLab