mirror of
https://github.com/cesanta/mongoose.git
synced 2026-10-20 11:19:56 +00:00
In certain files it was necessary to make tests work from public mongoose repo, so this commit makes things consistent. PUBLISHED_FROM=694454d0ff007229c65d524a2a2beaf126420f15
68 lines
1.9 KiB
C
68 lines
1.9 KiB
C
/*
|
|
* Copyright (c) 2014 Cesanta Software Limited
|
|
* All rights reserved
|
|
*/
|
|
|
|
/*
|
|
* === URI
|
|
*/
|
|
|
|
#ifndef CS_MONGOOSE_SRC_URI_H_
|
|
#define CS_MONGOOSE_SRC_URI_H_
|
|
|
|
#include "mg_net.h"
|
|
|
|
#ifdef __cplusplus
|
|
extern "C" {
|
|
#endif /* __cplusplus */
|
|
|
|
/*
|
|
* Parses an URI and fills string chunks with locations of the respective
|
|
* uri components within the input uri string. NULL pointers will be
|
|
* ignored.
|
|
*
|
|
* General syntax:
|
|
*
|
|
* [scheme://[user_info@]]host[:port][/path][?query][#fragment]
|
|
*
|
|
* Example:
|
|
*
|
|
* foo.com:80
|
|
* tcp://foo.com:1234
|
|
* http://foo.com:80/bar?baz=1
|
|
* https://user:pw@foo.com:443/blah
|
|
*
|
|
* `path` will include the leading slash. `query` won't include the leading `?`.
|
|
* `host` can contain embedded colons if surrounded by square brackets in order
|
|
* to support IPv6 literal addresses.
|
|
*
|
|
*
|
|
* Returns 0 on success, -1 on error.
|
|
*/
|
|
int mg_parse_uri(const struct mg_str uri, struct mg_str *scheme,
|
|
struct mg_str *user_info, struct mg_str *host,
|
|
unsigned int *port, struct mg_str *path, struct mg_str *query,
|
|
struct mg_str *fragment);
|
|
|
|
/*
|
|
* Assemble URI from parts. Any of the inputs can be NULL or zero-length mg_str.
|
|
*
|
|
* If normalize_path is true, path is normalized by resolving relative refs.
|
|
*
|
|
* Result is a heap-allocated string (uri->p must be free()d after use).
|
|
*
|
|
* Returns 0 on success, -1 on error.
|
|
*/
|
|
int mg_assemble_uri(const struct mg_str *scheme, const struct mg_str *user_info,
|
|
const struct mg_str *host, unsigned int port,
|
|
const struct mg_str *path, const struct mg_str *query,
|
|
const struct mg_str *fragment, int normalize_path,
|
|
struct mg_str *uri);
|
|
|
|
int mg_normalize_uri_path(const struct mg_str *in, struct mg_str *out);
|
|
|
|
#ifdef __cplusplus
|
|
}
|
|
#endif /* __cplusplus */
|
|
#endif /* CS_MONGOOSE_SRC_URI_H_ */
|