aboutsummaryrefslogtreecommitdiff
path: root/src/core/ngx_string.h
diff options
context:
space:
mode:
authorMaxim Dounin <mdounin@mdounin.ru>2011-10-11 17:56:51 +0000
committerMaxim Dounin <mdounin@mdounin.ru>2011-10-11 17:56:51 +0000
commit6226fe3512ca9364b1ec98519458e61eea9c5dff (patch)
tree7dea051f36d452e3475589b4f47335ee14b275de /src/core/ngx_string.h
parente3d6c5a33cd31a788c345e6c936852db0805bb6d (diff)
downloadnginx-6226fe3512ca9364b1ec98519458e61eea9c5dff.tar.gz
nginx-6226fe3512ca9364b1ec98519458e61eea9c5dff.zip
Autoindex: escape '?' in file names.
For files with '?' in their names autoindex generated links with '?' not escaped. This resulted in effectively truncated links as '?' indicates query string start. This is an updated version of the patch originally posted at [1]. It introduces generic NGX_ESCAPE_URI_COMPONENT which escapes everything but unreserved characters as per RFC 3986. This approach also renders unneeded special colon processing (as colon is percent-encoded now), it's dropped accordingly. [1] http://nginx.org/pipermail/nginx-devel/2010-February/000112.html Reported by Konstantin Leonov.
Diffstat (limited to 'src/core/ngx_string.h')
-rw-r--r--src/core/ngx_string.h13
1 files changed, 7 insertions, 6 deletions
diff --git a/src/core/ngx_string.h b/src/core/ngx_string.h
index 2030988d8..2b9c59a5e 100644
--- a/src/core/ngx_string.h
+++ b/src/core/ngx_string.h
@@ -189,12 +189,13 @@ size_t ngx_utf8_length(u_char *p, size_t n);
u_char *ngx_utf8_cpystrn(u_char *dst, u_char *src, size_t n, size_t len);
-#define NGX_ESCAPE_URI 0
-#define NGX_ESCAPE_ARGS 1
-#define NGX_ESCAPE_HTML 2
-#define NGX_ESCAPE_REFRESH 3
-#define NGX_ESCAPE_MEMCACHED 4
-#define NGX_ESCAPE_MAIL_AUTH 5
+#define NGX_ESCAPE_URI 0
+#define NGX_ESCAPE_ARGS 1
+#define NGX_ESCAPE_URI_COMPONENT 2
+#define NGX_ESCAPE_HTML 3
+#define NGX_ESCAPE_REFRESH 4
+#define NGX_ESCAPE_MEMCACHED 5
+#define NGX_ESCAPE_MAIL_AUTH 6
#define NGX_UNESCAPE_URI 1
#define NGX_UNESCAPE_REDIRECT 2