Open chrysn opened 5 years ago
Replace it with NGX_ESCAPE_URI_PATH
throw errors when compile the source, so I checked the doc:
Then replace it with NGX_ESCAPE_URI_COMPONENT
, reconpile the module, and everything works fine now.
Why does issue is still open, if it was fixed in https://github.com/MkfsSion/nginx-dav-ext-module/commit/efbadc174a64c38b8df806685aa21aa0ed3120c6
?
@MkfsSion @chrysn
When files with brackets (
[
,]
) in their file names are listed, those characters are not escaped, causing some clients to ignore them. (This was previously pointed out as a bug in davfs2, but found to be on nginx-dav-ext-module's side).Characters not in
pchar
(fromSimple-ref
viapath-absolute
andsegment
) should be escaped per RFCs 4918 and 3986.A working solution is to replace, in the two calls to
ngx_escape_uri
inngx_http_dav_ext_module.c
,NGX_ESCAPE_URI
withNGX_ESCAPE_URI_PATH
, which is a new version that'd need to be introduced in ngx_string.[hc]. It leaves the slashes unharmed but escapes almost everything else (so it's a copy ofNGX_ESCAPE_ARGS
but with the slash left unescaped). I can't really propose that change to upstream before dav-ext-module acknowledges its use case, so: would that work for you?(This is a successor to #6, which started escaping but only solved the cases many more clients are sensitive to, but not all the cases of not being
pchar
.)