#include <nng/nng.h> int nng_url_parse(nng_url **urlp, const char *str);
nng_url_parse - create URL structure from a string
nng_url_parse() function parses the string str containing an
RFC 3986 compliant URL, and creates
nng_url structure containing the results.
A pointer to the resulting structure is stored in urlp.
The structure may disposed of when no longer needed by calling
nng_url_parse() function also canonicalizes the results, as
The URL is parsed into the various components.
u_portmembers are converted to lower case.
Percent-encoded values for unreserved characters converted to their unencoded forms.
Additionally URL percent-encoded values for characters in the path and with numeric values larger than 127 (i.e. not ASCII) are decoded.
u_pathis 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
Path segments consisting of
..are resolved as per RFC 3986 184.108.40.206.
Further, empty path segments are removed, meaning that duplicate slash (
/) separators are removed from the path.
If a port was not specified, but the scheme defines a default port, then
u_portwill be filled in with the value of the default port.
This function returns 0 on success, and non-zero otherwise.
Insufficient free memory exists to allocate a message.
An invalid URL was supplied.