diff options
| author | Joshua Oreman | 2009-12-30 04:36:04 +0100 |
|---|---|---|
| committer | Marty Connor | 2010-01-21 00:14:28 +0100 |
| commit | 3d9dd93a1452e28c728483b03e352691238491ed (patch) | |
| tree | 73a41396fd514d12dbd7bd69ebfc49810bf73c7c /src/core/settings.c | |
| parent | [settings] Add automagic "netX" settings block for last opened netdev (diff) | |
| download | ipxe-3d9dd93a1452e28c728483b03e352691238491ed.tar.gz ipxe-3d9dd93a1452e28c728483b03e352691238491ed.tar.xz ipxe-3d9dd93a1452e28c728483b03e352691238491ed.zip | |
[uri] Decode/encode URIs when parsing/unparsing
Currently, handling of URI escapes is ad-hoc; escaped strings are
stored as-is in the URI structure, and it is up to the individual
protocol to unescape as necessary. This is error-prone and expensive
in terms of code size. Modify this behavior by unescaping in
parse_uri() and escaping in unparse_uri() those fields that typically
handle URI escapes (hostname, user, password, path, query, fragment),
and allowing unparse_uri() to accept a subset of fields to print so
it can be easily used to generate e.g. the escaped HTTP path?query
request.
Signed-off-by: Joshua Oreman <oremanj@rwcr.net>
Signed-off-by: Marty Connor <mdc@etherboot.org>
Diffstat (limited to 'src/core/settings.c')
| -rw-r--r-- | src/core/settings.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/src/core/settings.c b/src/core/settings.c index fe67d6b72..2fefdb908 100644 --- a/src/core/settings.c +++ b/src/core/settings.c @@ -1085,7 +1085,7 @@ static int fetchf_uristring ( struct settings *settings, fetch_string_setting ( settings, setting, raw_buf, sizeof ( raw_buf ) ); - return uri_encode ( raw_buf, buf, len ); + return uri_encode ( raw_buf, buf, len, URI_FRAGMENT ); } } |
