diff options
Diffstat (limited to 'src/platform/windows/win_socketpair.c')
| -rw-r--r-- | src/platform/windows/win_socketpair.c | 57 |
1 files changed, 57 insertions, 0 deletions
diff --git a/src/platform/windows/win_socketpair.c b/src/platform/windows/win_socketpair.c new file mode 100644 index 00000000..0ed0443a --- /dev/null +++ b/src/platform/windows/win_socketpair.c @@ -0,0 +1,57 @@ +// +// Copyright 2023 Staysail Systems, Inc. <info@staysail.tech> +// +// This software is supplied under the terms of the MIT License, a +// copy of which should be located in the distribution where this +// file was obtained (LICENSE.txt). A copy of the license may also be +// found online at https://opensource.org/licenses/MIT. +// + +#include "core/nng_impl.h" + + +#ifdef NNG_HAVE_SOCKETPAIR_TODO +// TODO: Windows lacks socketpair. We can emulate it with an explcit +// implementation based on AF_UNIX. + +#include <errno.h> +#include <sys/socket.h> + +int +nni_socket_pair(int *fds) +{ + int rv; + rv = socketpair(PF_UNIX, SOCK_STREAM, 0, fds); + if (rv != 0) { + return (nni_plat_errno(errno)); + } + + return (0); +} +#else +int +nni_socket_pair(int fds[2]) +{ + NNI_ARG_UNUSED(fds); + return (NNG_ENOTSUP); +} + +// This is also the fdc transport. + +typedef struct nni_sfd_conn nni_sfd_conn; + +void +nni_sfd_close_fd(int fd) +{ + NNI_ARG_UNUSED(fd); +} + +int +nni_sfd_conn_alloc(nni_sfd_conn **cp, int fd) +{ + NNI_ARG_UNUSED(cp); + NNI_ARG_UNUSED(fd); + return (NNG_ENOTSUP); +} + +#endif |
