From 4acc8b39d0a0dc8a1ade2289372aecc4164db95c Mon Sep 17 00:00:00 2001 From: Garrett D'Amore Date: Sun, 18 Mar 2018 21:38:51 -0700 Subject: man page updates for 0.7.0 --- man/v0.7.0/nng_url_parse.3.html | 666 ++++++++++++++++++++++++++++++++++++++++ 1 file changed, 666 insertions(+) create mode 100644 man/v0.7.0/nng_url_parse.3.html (limited to 'man/v0.7.0/nng_url_parse.3.html') diff --git a/man/v0.7.0/nng_url_parse.3.html b/man/v0.7.0/nng_url_parse.3.html new file mode 100644 index 00000000..e2f56e3e --- /dev/null +++ b/man/v0.7.0/nng_url_parse.3.html @@ -0,0 +1,666 @@ +--- +version: 0.7.0 +layout: refman +--- + + + + + + + +nng_url_parse(3) + + + + + + + +
+
+

SYNOPSIS

+
+
+
+
#include <nng/nng.h>
+
+int nng_url_parse(nng_url **urlp, const char *str);
+
+
+
+
+
+

DESCRIPTION

+
+
+

The nng_url_parse() function parses the string str containing an +RFC 3986 compliant URL, and creates +a structure containing the results. A pointer to the resulting structure +is stored in urlp.

+
+
+

The nng_url structure has at least the following members:

+
+
+
+
struct nng_url {
+    char *u_scheme;   // Scheme, such as "http"; always lower case.
+    char *u_rawurl;   // Unparsed URL, with minimal canonicalization.
+    char *u_userinfo; // Userinfo component, or NULL.
+    char *u_host;     // Full host, including port if present.
+    char *u_hostname; // Hostname only (or address), or empy string.
+    char *u_port;     // Port number, may be default or empty string.
+    char *u_path;     // Path if present, empty string otherwise.
+    char *u_query;    // Query info if present, NULL otherwise.
+    char *u_fragment; // Fragment if present, NULL otherwise.
+    char *u_requri;   // Request-URI (path[?query][#fragment])
+};
+
+
+
+

URL Canonicalization

+
+

The nng_url_parse() function also canonicalizes the results, as +follows:

+
+
+
    +
  1. +

    The URL is parsed into the various components.

    +
  2. +
  3. +

    The u_scheme, u_hostname, u_host, and u_port members are +converted to lower case.

    +
  4. +
  5. +

    Percent-encoded values for +unreserved characters +converted to their unencoded forms.

    +
  6. +
  7. +

    Additionally URL percent-encoded values for characters in the path +and with numeric values larger than 127 (i.e. not ASCII) are decoded.

    +
  8. +
  9. +

    The resulting u_path is checked for invalid UTF-8 sequences, consisting +of surrogate pairs, illegal byte sequences, or overlong encodings. +If this check fails, then the entire URL is considered invalid, and +the function returns NNG_EINVAL.

    +
  10. +
  11. +

    Path segments consisting of . and .. are resolved as per +RFC 3986 6.2.2.3.

    +
  12. +
  13. +

    Further, empty path segments are removed, meaning that duplicate +slash (/) separators are removed from the path.

    +
  14. +
  15. +

    If a port was not specified, but the scheme defines a default +port, then u_port will be filled in with the value of the default port.

    +
  16. +
+
+
+ + + + + +
+ + +Only the u_userinfo, u_query, and u_fragment members will ever be + NULL. The other members will be filled in with either default values + or the empty string if they cannot be determined from str. +
+
+
+
+
+
+

RETURN VALUES

+
+
+

This function returns 0 on success, and non-zero otherwise.

+
+
+
+
+

ERRORS

+
+
+
+
NNG_ENOMEM
+
+

Insufficient free memory exists to allocate a message.

+
+
NNG_EINVAL
+
+

An invalid URL was supplied.

+
+
+
+
+
+ +
+ + -- cgit v1.2.3-70-g09d2