summaryrefslogtreecommitdiff
path: root/docs/reference/src
diff options
context:
space:
mode:
authorGarrett D'Amore <garrett@damore.org>2024-03-31 10:16:46 -0700
committerGarrett D'Amore <garrett@damore.org>2024-03-31 10:18:28 -0700
commitf7787f8cc26b211f68dda3180a112ba3074ca638 (patch)
tree603157bd358b174715c26cac8e4854bb58103618 /docs/reference/src
parent1d549a3cc9c3f15378994e52bf53bf418ae762b4 (diff)
downloadnng-f7787f8cc26b211f68dda3180a112ba3074ca638.tar.gz
nng-f7787f8cc26b211f68dda3180a112ba3074ca638.tar.bz2
nng-f7787f8cc26b211f68dda3180a112ba3074ca638.zip
nng_socket_pair
Diffstat (limited to 'docs/reference/src')
-rw-r--r--docs/reference/src/SUMMARY.md1
-rw-r--r--docs/reference/src/refs.md2
-rw-r--r--docs/reference/src/tran/socket.md2
-rw-r--r--docs/reference/src/util/nng_socket_pair.md44
4 files changed, 48 insertions, 1 deletions
diff --git a/docs/reference/src/SUMMARY.md b/docs/reference/src/SUMMARY.md
index 42910b17..40a02f7d 100644
--- a/docs/reference/src/SUMMARY.md
+++ b/docs/reference/src/SUMMARY.md
@@ -115,6 +115,7 @@
- [nng_msleep](util/nng_msleep.md)
- [nng_random](util/nng_random.md)
- [nng_sleep_aio](util/nng_sleep_aio.md)
+ - [nng_socket_pair](util/nng_socket_pair.md)
- [nng_strdup](util/nng_strdup.md)
- [nng_strerror](util/nng_strerror.md)
- [nng_strfree](util/nng_strfree.md)
diff --git a/docs/reference/src/refs.md b/docs/reference/src/refs.md
index 2c7e5028..cb5c74f1 100644
--- a/docs/reference/src/refs.md
+++ b/docs/reference/src/refs.md
@@ -37,6 +37,7 @@
[ipc]: ../tran/ipc.md
[tls]: ../tran/tls.md
[tcp]: ../tran/tcp.md
+[sockfd]: ../tran/socket.md
<!-- Sockets -->
@@ -141,6 +142,7 @@
[nng_msleep]: ../util/nng_msleep.md
[nng_random]: ../util/nng_random.md
[nng_sleep_aio]: ../util/nng_sleep_aio.md
+[nng_socket_pair]: ../util/nng_socket_pair.md
[nng_strdup]: ../util/nng_strdup.md
[nng_strerror]: ../util/nng_strerror.md
[nng_strfree]: ../util/nng_strfree.md
diff --git a/docs/reference/src/tran/socket.md b/docs/reference/src/tran/socket.md
index 61de130c..0f6d9bbb 100644
--- a/docs/reference/src/tran/socket.md
+++ b/docs/reference/src/tran/socket.md
@@ -1,4 +1,4 @@
-BSD Socket transport (experimental)
+BSD Socket Transport (Experimental)
The {{i:_socket_ transport}} supports communication between
peers across arbitrary BSD sockets, such as those that are
diff --git a/docs/reference/src/util/nng_socket_pair.md b/docs/reference/src/util/nng_socket_pair.md
new file mode 100644
index 00000000..ac0fb76a
--- /dev/null
+++ b/docs/reference/src/util/nng_socket_pair.md
@@ -0,0 +1,44 @@
+# nng_socket_pair
+
+## NAME
+
+nng_socket_pair --- create a connected pair of BSD sockets
+
+## SYNOPSIS
+
+```c
+#include <nng/nng.h>
+#include <nng/supplemental/util/platform.h>
+
+int nng_socket_pair(int fds[2]);
+```
+
+## DESCRIPTION
+
+The `nng_socket_pair()` function creates a pair of connected BSD sockets.
+These sockets, which are returned in the _fds_ array, are suitable for
+use with the [BSD Socket][sockfd] transport.
+
+On POSIX platforms, this is a thin wrapper around the standard `socketpair()` function,
+using the {{i:`AF_UNIX`}} family and the `SOCK_STREAM` socket type.[^1]
+
+[^1]: At present only POSIX platforms implementing `socketpair()` support this function.
+
+> [!TIP]
+> This function may be useful for creating a shared connection between a parent process and
+> a child process on UNIX platforms, without requiring the processes use a shared filesystem or TCP connection.
+
+## RETURN VALUES
+
+This function returns 0 on success, and non-zero otherwise.
+
+## ERRORS
+
+- `NNG_ENOMEM`: Insufficient memory exists.
+- `NNG_ENOTSUP`: This platform does not support socket pairs.
+
+## SEE ALSO
+
+[BSD Socket Transport][sockfd]
+
+{{#include ../refs.md}}