Go to the source code of this file.
Macros | |
#define | RFC1738_ESCAPE_CTRLS 1 |
#define | RFC1738_ESCAPE_UNSAFE 2 |
#define | RFC1738_ESCAPE_RESERVED 4 |
#define | RFC1738_ESCAPE_ALL (RFC1738_ESCAPE_UNSAFE|RFC1738_ESCAPE_RESERVED|RFC1738_ESCAPE_CTRLS) |
#define | RFC1738_ESCAPE_NOSPACE 128 |
#define | RFC1738_ESCAPE_NOPERCENT 256 |
#define | RFC1738_ESCAPE_UNESCAPED (RFC1738_ESCAPE_UNSAFE|RFC1738_ESCAPE_CTRLS|RFC1738_ESCAPE_NOPERCENT) |
#define | rfc1738_escape(x) rfc1738_do_escape(x, RFC1738_ESCAPE_UNSAFE|RFC1738_ESCAPE_CTRLS) |
#define | rfc1738_escape_part(x) rfc1738_do_escape(x, RFC1738_ESCAPE_ALL) |
#define | rfc1738_escape_unescaped(x) rfc1738_do_escape(x, RFC1738_ESCAPE_UNSAFE|RFC1738_ESCAPE_CTRLS|RFC1738_ESCAPE_NOPERCENT) |
Functions | |
char * | rfc1738_do_escape (const char *url, int flags) |
void | rfc1738_unescape (char *url) |
Macro Definition Documentation
◆ rfc1738_escape
#define rfc1738_escape | ( | x | ) | rfc1738_do_escape(x, RFC1738_ESCAPE_UNSAFE|RFC1738_ESCAPE_CTRLS) |
◆ RFC1738_ESCAPE_ALL
#define RFC1738_ESCAPE_ALL (RFC1738_ESCAPE_UNSAFE|RFC1738_ESCAPE_RESERVED|RFC1738_ESCAPE_CTRLS) |
◆ RFC1738_ESCAPE_CTRLS
◆ RFC1738_ESCAPE_NOPERCENT
◆ RFC1738_ESCAPE_NOSPACE
◆ rfc1738_escape_part
#define rfc1738_escape_part | ( | x | ) | rfc1738_do_escape(x, RFC1738_ESCAPE_ALL) |
◆ RFC1738_ESCAPE_RESERVED
◆ RFC1738_ESCAPE_UNESCAPED
#define RFC1738_ESCAPE_UNESCAPED (RFC1738_ESCAPE_UNSAFE|RFC1738_ESCAPE_CTRLS|RFC1738_ESCAPE_NOPERCENT) |
◆ rfc1738_escape_unescaped
#define rfc1738_escape_unescaped | ( | x | ) | rfc1738_do_escape(x, RFC1738_ESCAPE_UNSAFE|RFC1738_ESCAPE_CTRLS|RFC1738_ESCAPE_NOPERCENT) |
◆ RFC1738_ESCAPE_UNSAFE
Function Documentation
◆ rfc1738_do_escape()
char * rfc1738_do_escape | ( | const char * | url, |
int | flags | ||
) |
RFC 1738 URL-escaping
Public API is formed of a triplet of encode functions mapping to the rfc1738_do_encode() engine.
ASCII characters are split into four groups:
- SAFE Characters which are safe to occur in any URL. For example A,B,C
- CTRLS Binary control codes. Dangerous to include in URLs.
- UNSAFE Characters which are completely usafe to occur in any URL. For example; backspace, tab, space, newline.
- RESERVED Characters which are reserved for special meaning and may only occur in certain parts of a URL.
Returns a static buffer containing the RFC 1738 compliant, escaped version of the given url.
- Parameters
-
flags RFC1738_ESCAPE_CTRLS Encode the blatantly dangerous binary codes. flags RFC1738_ESCAPE_UNSAFE Encode printable unsafe characters (excluding CTRLs). flags RFC1738_ESCAPE_RESERVED Encode reserved characters. flags RFC1738_ESCAPE_ALL Encode all binary CTRL, unsafe and reserved characters. flags RFC1738_ESCAPE_NOSPACE Ignore the space whitespace character. flags RFC1738_ESCAPE_NOPERCENT Ignore the escaping delimiter ''.
Definition at line 56 of file rfc1738.c.
References NULL, RFC1738_ESCAPE_CTRLS, RFC1738_ESCAPE_NOPERCENT, RFC1738_ESCAPE_NOSPACE, RFC1738_ESCAPE_RESERVED, RFC1738_ESCAPE_UNSAFE, rfc1738_reserved_chars, rfc1738_unsafe_chars, xcalloc(), and xfree.
Referenced by AnyP::Uri::cleanup(), Ftp::Gateway::parseListing(), and TestRfc1738::testUrlEncode().
◆ rfc1738_unescape()
void rfc1738_unescape | ( | char * | url | ) |
Unescape a URL string according to RFC 1738 specification. String is unescaped in-place
Definition at line 146 of file rfc1738.c.
References fromhex().
Referenced by decode_pub_auth(), ftpReadType(), ftpTrySlashHack(), Ftp::Gateway::loginParser(), main(), Acl::UrlCheck::match(), Acl::UrlLoginCheck::match(), Acl::UrlPathCheck::match(), AnyP::Uri::parse(), parse_peer(), Helper::Reply::parseResponseKeys(), TestRfc1738::PercentZeroNullDecoding(), read_request(), and TestRfc1738::testUrlDecode().