SocketPair createUnixSocketPair() { int fds[2]; FileDescriptor sockets[2]; if (syscalls::socketpair(AF_UNIX, SOCK_STREAM, 0, fds) == -1) { int e = errno; throw SystemException("Cannot create a Unix socket pair", e); } else { sockets[0] = fds[0]; sockets[1] = fds[1]; return SocketPair(sockets[0], sockets[1]); } }
SocketPair createUnixSocketPair(const char *file, unsigned int line) { int fds[2]; FileDescriptor sockets[2]; if (syscalls::socketpair(AF_UNIX, SOCK_STREAM, 0, fds) == -1) { int e = errno; throw SystemException("Cannot create a Unix socket pair", e); } else { sockets[0].assign(fds[0], file, line); sockets[1].assign(fds[1], file, line); return SocketPair(sockets[0], sockets[1]); } }