aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--docs/man/nng_msg_header.3.adoc58
-rw-r--r--docs/man/nng_msg_header_append.3.adoc58
-rw-r--r--docs/man/nng_msg_header_chop.3.adoc58
-rw-r--r--docs/man/nng_msg_header_clear.3.adoc42
-rw-r--r--docs/man/nng_msg_header_insert.3.adoc60
-rw-r--r--docs/man/nng_msg_header_len.3.adoc43
-rw-r--r--docs/man/nng_msg_header_trim.3.adoc59
-rw-r--r--docs/ref/SUMMARY.md1
-rw-r--r--docs/ref/api/msg/nng_msg_body.md2
-rw-r--r--docs/ref/api/msg/nng_msg_header.md94
10 files changed, 96 insertions, 379 deletions
diff --git a/docs/man/nng_msg_header.3.adoc b/docs/man/nng_msg_header.3.adoc
deleted file mode 100644
index eac45ffd..00000000
--- a/docs/man/nng_msg_header.3.adoc
+++ /dev/null
@@ -1,58 +0,0 @@
-= nng_msg_header(3)
-//
-// 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_msg_header - return message header
-
-== SYNOPSIS
-
-[source, c]
-----
-#include <nng/nng.h>
-
-void *nng_msg_header(nng_msg *msg);
-----
-
-== DESCRIPTION
-
-The `nng_msg_header()` function returns a pointer to the start of the header
-content of the message _msg_.
-
-NOTE: The message header contains protocol-specific header content. Most
-applications should not need to access this content, but it is available
-for raw mode sockets (set with the
-xref:nng_options.5.adoc#NNG_OPT_RAW[`NNG_OPT_RAW`] option.)
-
-NOTE: The value returned by this is invalidated by a call to any of the
-functions that modify the message or the header content.
-
-== RETURN VALUES
-
-Pointer to start of message header.
-
-== ERRORS
-
-None.
-
-== SEE ALSO
-
-[.text-left]
-xref:nng_msg_alloc.3.adoc[nng_msg_alloc(3)],
-xref:nng_msg_body.3.adoc[nng_msg_body(3)],
-xref:nng_msg_free.3.adoc[nng_msg_free(3)],
-xref:nng_msg_header_append.3.adoc[nng_msg_header_append(3)],
-xref:nng_msg_header_chop.3.adoc[nng_msg_header_chop(3)],
-xref:nng_msg_header_insert.3.adoc[nng_msg_header_insert(3)]
-xref:nng_msg_header_len.3.adoc[nng_msg_header_len(3)],
-xref:nng_msg_header_trim.3.adoc[nng_msg_header_trim(3)],
-xref:nng_msg.5.adoc[nng_msg(5)],
-xref:nng.7.adoc[nng(7)]
diff --git a/docs/man/nng_msg_header_append.3.adoc b/docs/man/nng_msg_header_append.3.adoc
deleted file mode 100644
index 16badf0b..00000000
--- a/docs/man/nng_msg_header_append.3.adoc
+++ /dev/null
@@ -1,58 +0,0 @@
-= nng_msg_header_append(3)
-//
-// 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_msg_header_append - append to message header
-
-== SYNOPSIS
-
-[source, c]
-----
-#include <nng/nng.h>
-
-int nng_msg_header_append(nng_msg *msg, const void *val, size_t size);
-int nng_msg_header_append_u16(nng_msg *msg, uint16_t val16);
-int nng_msg_header_append_u32(nng_msg *msg, uint32_t val32);
-int nng_msg_header_append_u64(nng_msg *msg, uint64_t val64);
-----
-
-== DESCRIPTION
-
-The `nng_msg_header_append()` family of functions appends data to
-the end of the headers of message _msg_, reallocating it if necessary.
-The first function appends _size_ bytes, copying them from _val_.
-
-The remaining functions append the value (such as _val32_) in
-network-byte order (big-endian).
-
-
-== RETURN VALUES
-
-These functions return 0 on success, and non-zero otherwise.
-
-== ERRORS
-
-[horizontal]
-`NNG_ENOMEM`:: Insufficient free memory exists.
-
-== SEE ALSO
-
-[.text-left]
-xref:nng_msg_alloc.3.adoc[nng_msg_alloc(3)],
-xref:nng_msg_header.3.adoc[nng_msg_header(3)],
-xref:nng_msg_header_chop.3.adoc[nng_msg_header_chop(3)],
-xref:nng_msg_header_insert.3.adoc[nng_msg_header_insert(3)],
-xref:nng_msg_header_len.3.adoc[nng_msg_header_len(3)],
-xref:nng_msg_header_trim.3.adoc[nng_msg_header_trim(3)],
-xref:nng_msg_free.3.adoc[nng_msg_free(3)],
-xref:nng_strerror.3.adoc[nng_strerror(3)],
-xref:nng.7.adoc[nng(7)]
diff --git a/docs/man/nng_msg_header_chop.3.adoc b/docs/man/nng_msg_header_chop.3.adoc
deleted file mode 100644
index 454e9e51..00000000
--- a/docs/man/nng_msg_header_chop.3.adoc
+++ /dev/null
@@ -1,58 +0,0 @@
-= nng_msg_header_chop(3)
-//
-// 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_msg_header_chop - remove data from end of message header
-
-== SYNOPSIS
-
-[source, c]
-----
-#include <nng/nng.h>
-
-int nng_msg_header_chop(nng_msg *msg, size_t size);
-int nng_msg_header_chop_u16(nng_msg *msg, uint16_t *val16);
-int nng_msg_header_chop_u32(nng_msg *msg, uint32_t *val32);
-int nng_msg_header_chop_u64(nng_msg *msg, uint64_t *val64);
-----
-
-== DESCRIPTION
-
-The `nng_msg_header_chop()` family of functions removes
-data from the end of the header of message _msg_.
-The first function removes _size_ bytes.
-The remaining functions remove 2, 4, or 8 bytes, and stores them in the value
-(such as _val32_),
-after converting them from network-byte order (big-endian) to native
-byte order.
-
-== RETURN VALUES
-
-These function return 0 on success, and non-zero otherwise.
-
-== ERRORS
-
-[horizontal]
-`NNG_EINVAL`:: The message header is too short to remove the requested data.
-
-== SEE ALSO
-
-[.text-left]
-xref:nng_msg_alloc.3.adoc[nng_msg_alloc(3)],
-xref:nng_msg_header.3.adoc[nng_msg_header(3)],
-xref:nng_msg_header_append.3.adoc[nng_msg_header_append(3)],
-xref:nng_msg_header_insert.3.adoc[nng_msg_header_insert(3)],
-xref:nng_msg_header_len.3.adoc[nng_msg_header_len(3)],
-xref:nng_msg_header_trim.3.adoc[nng_msg_header_trim(3)],
-xref:nng_msg_free.3.adoc[nng_msg_free(3)],
-xref:nng_strerror.3.adoc[nng_strerror(3)],
-xref:nng.7.adoc[nng(7)]
diff --git a/docs/man/nng_msg_header_clear.3.adoc b/docs/man/nng_msg_header_clear.3.adoc
deleted file mode 100644
index d00286ed..00000000
--- a/docs/man/nng_msg_header_clear.3.adoc
+++ /dev/null
@@ -1,42 +0,0 @@
-= nng_msg_header_clear(3)
-//
-// 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_msg_header_clear - clear message header
-
-== SYNOPSIS
-
-[source, c]
-----
-#include <nng/nng.h>
-
-void nng_msg_header_clear(nng_msg *msg);
-----
-
-== DESCRIPTION
-
-The `nng_msg_clear()` function resets the header length of _msg_ to zero.
-
-== RETURN VALUES
-
-None.
-
-== ERRORS
-
-None.
-
-== SEE ALSO
-
-[.text-left]
-xref:nng_msg_alloc.3.adoc[nng_msg_alloc(3)],
-xref:nng_msg_free.3.adoc[nng_msg_free(3)],
-xref:nng.7.adoc[nng(7)]
diff --git a/docs/man/nng_msg_header_insert.3.adoc b/docs/man/nng_msg_header_insert.3.adoc
deleted file mode 100644
index a2bf0d63..00000000
--- a/docs/man/nng_msg_header_insert.3.adoc
+++ /dev/null
@@ -1,60 +0,0 @@
-= nng_msg_header_insert(3)
-//
-// 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_msg_header_insert - prepend to message header
-
-== SYNOPSIS
-
-[source, c]
-----
-#include <nng/nng.h>
-
-int nng_msg_header_insert(nng_msg *msg, const void *val, size_t size);
-int nng_msg_header_insert_u16(nng_msg *msg, uint16_t val16);
-int nng_msg_header_insert_u32(nng_msg *msg, uint32_t val32);
-int nng_msg_header_insert_u64(nng_msg *msg, uint64_t val64);
-----
-
-== DESCRIPTION
-
-The `nng_msg_header_insert()` family of functions
-prepends data to the front of the headers of message _msg_, reallocating
-if necessary.
-The first function prepends _size_ bytes, copying them from _val_.
-The remaining functions prepend the specified value (such as _val32_) in
-network-byte order (big-endian).
-
-== RETURN VALUES
-
-These functions return 0 on success, and non-zero otherwise.
-
-== ERRORS
-
-[horizontal]
-`NNG_ENOMEM`:: Insufficient free memory exists.
-
-== SEE ALSO
-
-[.text-left]
-xref:nng_msg_alloc.3.adoc[nng_msg_alloc(3)],
-xref:nng_msg_header.3.adoc[nng_msg_header(3)],
-xref:nng_msg_header_append.3.adoc[nng_msg_header_append(3)],
-xref:nng_msg_header_chop.3.adoc[nng_msg_header_chop(3)],
-xref:nng_msg_header_len.3.adoc[nng_msg_header_len(3)],
-xref:nng_msg_header_trim.3.adoc[nng_msg_header_trim(3)],
-xref:nng_msg_free.3.adoc[nng_msg_free(3)],
-xref:nng_msg_capacity.3.adoc[nng_msg_capacity(3)],
-xref:nng_msg_reserve.3.adoc[nng_msg_reserve(3)],
-xref:nng_msg_realloc.3.adoc[nng_msg_realloc(3)],
-xref:nng_strerror.3.adoc[nng_strerror(3)],
-xref:nng.7.adoc[nng(7)]
diff --git a/docs/man/nng_msg_header_len.3.adoc b/docs/man/nng_msg_header_len.3.adoc
deleted file mode 100644
index 0a7b3613..00000000
--- a/docs/man/nng_msg_header_len.3.adoc
+++ /dev/null
@@ -1,43 +0,0 @@
-= nng_msg_header_len(3)
-//
-// 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_msg_header_len - return message header length
-
-== SYNOPSIS
-
-[source, c]
-----
-#include <nng/nng.h>
-
-size_t nng_msg_header_len(nng_msg *msg);
-----
-
-== DESCRIPTION
-
-The `nng_msg_header_len()` returns the length of message header of _msg_.
-
-== RETURN VALUES
-
-Length of message header.
-
-== ERRORS
-
-None.
-
-== SEE ALSO
-
-[.text-left]
-xref:nng_msg_alloc.3.adoc[nng_msg_alloc(3)],
-xref:nng_msg_header.3.adoc[nng_msg_header(3)],
-xref:nng_msg.5.adoc[nng_msg(5)],
-xref:nng.7.adoc[nng(7)]
diff --git a/docs/man/nng_msg_header_trim.3.adoc b/docs/man/nng_msg_header_trim.3.adoc
deleted file mode 100644
index 6df504ff..00000000
--- a/docs/man/nng_msg_header_trim.3.adoc
+++ /dev/null
@@ -1,59 +0,0 @@
-= nng_msg_header_trim(3)
-//
-// 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_msg_header_trim - remove data from start of message header
-
-== SYNOPSIS
-
-[source, c]
-----
-#include <nng/nng.h>
-
-int nng_msg_header_trim(nng_msg *msg, size_t size);
-int nng_msg_header_trim_u16(nng_msg *msg, uint16_t *val16);
-int nng_msg_header_trim_u32(nng_msg *msg, uint32_t *val32);
-int nng_msg_header_trim_u64(nng_msg *msg, uint64_t *val64);
-----
-
-== DESCRIPTION
-
-The `nng_msg_header_trim()` family of functions remove
-data from the start of the header of message _msg_.
-The first function removes _size_ bytes.
-The remaining functions removes 2, 4, or 8 bytes, and stores them in the
-value (such as _val32_),
-after converting them from network-byte order (big-endian) to native
-byte order.
-
-== RETURN VALUES
-
-This function returns 0 on success, and non-zero otherwise.
-
-== ERRORS
-
-[horizontal]
-`NNG_EINVAL`:: The message header is too short to remove the requested data.
-
-== SEE ALSO
-
-[.text-left]
-xref:nng_msg_alloc.3.adoc[nng_msg_alloc(3)],
-xref:nng_msg_header.3.adoc[nng_msg_header(3)],
-xref:nng_msg_header_append.3.adoc[nng_msg_header_append(3)],
-xref:nng_msg_header_chop.3.adoc[nng_msg_header_chop(3)],
-xref:nng_msg_header_insert.3.adoc[nng_msg_header_insert(3)],
-xref:nng_msg_header_len.3.adoc[nng_msg_header_len(3)],
-xref:nng_msg_free.3.adoc[nng_msg_free(3)],
-xref:nng_strerror.3.adoc[nng_strerror(3)],
-xref:nng_msg.5.adoc[nng_msg(5)],
-xref:nng.7.adoc[nng(7)]
diff --git a/docs/ref/SUMMARY.md b/docs/ref/SUMMARY.md
index 0415cad8..59614493 100644
--- a/docs/ref/SUMMARY.md
+++ b/docs/ref/SUMMARY.md
@@ -6,6 +6,7 @@
- [nng_msg](./api/msg/nng_msg.md)
- [nng_msg_body](./api/msg/nng_msg_body.md)
+ - [nng_msg_header](./api/msg/nng_msg_header.md)
- [Threading and Synchronization](./api/thr/index.md)
diff --git a/docs/ref/api/msg/nng_msg_body.md b/docs/ref/api/msg/nng_msg_body.md
index ff78e852..2942738a 100644
--- a/docs/ref/api/msg/nng_msg_body.md
+++ b/docs/ref/api/msg/nng_msg_body.md
@@ -94,7 +94,7 @@ end of the message body.
## RETURN VALUES
The `nng_msg_body` function returns a pointer to the start of the message body.
-The `nng_msg_len` function returns the length of the message in bytes.
+The `nng_msg_len` function returns the length of the message body in bytes.
The `nng_msg_clear` function does not return anything.
The remaining functions return zero on success, or a non-zero error value on failure.
diff --git a/docs/ref/api/msg/nng_msg_header.md b/docs/ref/api/msg/nng_msg_header.md
new file mode 100644
index 00000000..7c25347c
--- /dev/null
+++ b/docs/ref/api/msg/nng_msg_header.md
@@ -0,0 +1,94 @@
+# nng_msg_header
+
+## NAME
+
+nng_msg_header --- message header
+
+## SYNOPSIS
+
+```c
+#include <nng/nng.h>
+
+void *nng_msg_header(nng_msg *msg);
+size_t nng_msg_header_len(nng_msg *msg);
+void nng_msg_header_clear(nng_msg *msg);
+int nng_msg_header_append(nng_msg *msg, const void *val, size_t size);
+int nng_msg_header_append_u16(nng_msg *msg, uint16_t val16);
+int nng_msg_header_append_u32(nng_msg *msg, uint32_t val32);
+int nng_msg_header_append_u64(nng_msg *msg, uint64_t val64);
+int nng_msg_header_insert(nng_msg *msg, const void *val, size_t size);
+int nng_msg_header_insert_u16(nng_msg *msg, uint16_t val16);
+int nng_msg_header_insert_u32(nng_msg *msg, uint32_t val32);
+int nng_msg_header_insert_u64(nng_msg *msg, uint64_t val64);
+int nng_msg_header_chop(nng_msg *msg, size_t size);
+int nng_msg_header_chop_u16(nng_msg *msg, uint16_t *val16);
+int nng_msg_header_chop_u32(nng_msg *msg, uint32_t *val32);
+int nng_msg_header_chop_u64(nng_msg *msg, uint64_t *val64);
+int nng_msg_header_trim(nng_msg *msg, size_t size);
+int nng_msg_header_trim_u16(nng_msg *msg, uint16_t *val16);
+int nng_msg_header_trim_u32(nng_msg *msg, uint32_t *val32);
+int nng_msg_header_trim_u64(nng_msg *msg, uint64_t *val64);
+```
+
+## DESCRIPTION
+
+The {{i:header}} of a message contains protocol and transport-specific
+header content.
+Typically there is only a very limited amount of data stored in the message
+headers, in order to allow more room for the message body data. Headers
+should be considered overhead in the protocols where they appear.
+
+> [!TIP]
+> Most applications should not need to access the message header content
+> directly, unless they ar working with [raw mode][raw] sockets.
+
+The `nng_msg_header` function returns a pointer to the start of the header
+content of the message _msg_.
+
+> [!NOTE]
+> The value returned by this is invalidated by a call to any of the
+> functions that modify the message or the header content.
+
+### Clearing the Message Header
+
+The message headers can be entirely cleared using {{i:`nng_msg_header_clear`}}.
+The underlying buffers are left intact, and the bytes may remain at their original values, so
+this function should not be relied upon for zeroizing sensitive data.
+
+### Appending and Inserting Data
+
+Appending data to a message header is done by using the {{i:`nng_msg_header_append`}} functions,
+and inserting data in the header is done using the {{i:`nng_msg_header_insert`}} functions.
+
+These functions act just like the [`nng_msg_append`][nng_msg_body] and [`nng_msg_insert`][nng_msg_body]
+functions, except that they operate on the message header rather than the message body.
+
+### Consuming Data
+
+The {{i:`nng_msg_header_trim`}} functions remove data from the beginning of the message header,
+and the {{i:`nng_msg_header_chop`}} functions remove data from the end of the message header.
+
+These functions act just like the [`nng_msg_trim`][nng_msg_body] and [`nng_msg_chop`][nng_msg_body]
+functions, except that they operate the message header rather than the message body.
+
+## RETURN VALUES
+
+The `nng_msg_header` function returns a pointer to the start of the message header.
+The `nng_msg_header_len` function returns the length of the message header in bytes.
+The `nng_msg_header_clear` function does not return anything.
+The remaining functions return zero on success, or a non-zero error value on failure.
+
+## ERRORS
+
+- `NNG_ENOMEM`: Insufficient memory exists to grow the message.
+- `NNG_EINVAL`: The message body is too short to remove the requested data.
+
+## SEE ALSO
+
+[nng_msg][nng_msg],
+[nng_msg_body][nng_msg_body],
+[raw mode][raw]
+
+[nng_msg]: ./nng_msg.md
+[nng_msg_body]: ./nng_msg_body.md
+[raw]: TODO.md