diff options
| author | Garrett D'Amore <garrett@damore.org> | 2018-03-15 08:40:17 -0700 |
|---|---|---|
| committer | Garrett D'Amore <garrett@damore.org> | 2018-03-17 08:49:12 -0700 |
| commit | 98f23e10cc1d65da6a7f6c7e4f5665d7afc27a86 (patch) | |
| tree | e3cc06524b26fd0773d1742de82a00862f95c5f6 /docs/man/nng_sockaddr.5.adoc | |
| parent | 91866ed9365ab89069c12da41c873c23d0ba1d19 (diff) | |
| download | nng-98f23e10cc1d65da6a7f6c7e4f5665d7afc27a86.tar.gz nng-98f23e10cc1d65da6a7f6c7e4f5665d7afc27a86.tar.bz2 nng-98f23e10cc1d65da6a7f6c7e4f5665d7afc27a86.zip | |
fixes #286 nng_pair0_open (and all others) need man page
fixes #279 consider restructuring man sections
This represents a rather significant rework, and major editing
effort, for the entire set of manual pages.
All of the pages now have a section number in their filename;
this assists in some other tooling, particularly ebook generation
as every link needs to be programmatically modified when combined
into an ebook.
Section 5 is introduced, and populated with pages for the main
types, and all options are now documented.
Numerous errors have been corrected, including rewriting certain
portions such as the header section of the surveyor protocol.
Much work has been done to facilitate index generation, although
certainly more work remains here.
Every internal link within these pages now resolves; there are no
more dead links. (This is required to generate Kindle format books.)
Diffstat (limited to 'docs/man/nng_sockaddr.5.adoc')
| -rw-r--r-- | docs/man/nng_sockaddr.5.adoc | 93 |
1 files changed, 93 insertions, 0 deletions
diff --git a/docs/man/nng_sockaddr.5.adoc b/docs/man/nng_sockaddr.5.adoc new file mode 100644 index 00000000..3d7b4fc2 --- /dev/null +++ b/docs/man/nng_sockaddr.5.adoc @@ -0,0 +1,93 @@ += nng_sockaddr(5) +// +// Copyright 2018 Staysail Systems, Inc. <info@staysail.tech> +// Copyright 2018 Capitar IT Group BV <info@capitar.com> +// +// This document 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. +// + +== NAME + +nng_sockaddr - socket address + +== SYNOPSIS + +[source, c] +---- +#include <nng/nng.h> + +typedef union nng_sockaddr { + uint16_t s_family; + nng_sockaddr_ipc s_ipc; + nng_sockaddr_inproc s_inproc; + nng_sockaddr_in s_in; + nng_sockaddr_in6 s_in6; + nng_sockaddr_zt s_zt; +} nng_sockaddr; + +enum sockaddr_family { + NNG_AF_UNSPEC = 0, + NNG_AF_INPROC = 1, + NNG_AF_IPC = 2, + NNG_AF_INET = 3, + NNG_AF_INET6 = 4, + NNG_AF_ZT = 5, +}; +---- + +== DESCRIPTION + +(((socket, address)))(((address, socket))) +An `nng_sockaddr` is a structure used for +representing the addresses used by underlying transports, such as TCP/IP +addresses, IPC paths, and so forth. + +**** +The name `sockaddr` is based on it's similarity with POSIX `struct sockaddr`, +but in the _nng_ library, these addreses are more closely affiliated with +instances of <<nng_pipe.5#,`nng_pipe`>> +than of <<nng_socket.5#,`nng_socket`>>. +The naming confusion is unfortunate. +**** + +This structure is actually a union, with different members for different +types of addreses. + +Every member structure has as its first element a `uint16_t` field +containing the "`((address family))`". +This overlaps the `s_family` member of the union, and indicates which +specific member should be used. + +The values of `s_family` are as follows: + +`NNG_AF_UNSPEC`:: + Invalid address, no other valid fields. +`NNG_AF_INPROC`:: + Address for intraprocess communication (<<nng_inproc.7#,nng_inproc(7)>>). + The `s_inproc` member is valid. +`NNG_AF_IPC`:: + Address for interprocess communication (<<nng_ipc.7#,nng_ipc(7)>>). + The `s_path` member is valid. +`NNG_AF_INET`:: + Address for TCP/IP (v4) communication. + The `s_in` member is valid. +`NNG_AF_INET6`:: + Address for TCP/IP (v6) communication. + The `s_in6` member is valid. +`NNG_AF_ZT`:: + Address for ZeroTier transport (<<nng_zerotier.7#,nng_zerotier(7)>>). + The `s_zt` member is valid. + +Please see the manual pages for each individual type for more information. + +== SEE ALSO + +<<nng_sockaddr_in.5#,nng_sockaddr_in(5)>>, +<<nng_sockaddr_in6.5#,nng_sockaddr_in6(5)>>, +<<nng_sockaddr_inproc.5#,nng_sockaddr_inproc(5)>>, +<<nng_sockaddr_ipc.5#,nng_sockaddr_ipc(5)>>, +<<nng_sockaddr_zt.5#,nng_sockaddr_zt(5)>>, +<<nng.7#,nng(7)>> |
