Dear nginx developers,

The dav module of nginx was tested with client Nautilus 3.4.2 to implement a 
shared file system in operations office.

While testing the ngx_http_dav_module, found some conflicts that are described 
below:

1. In operations with MOVE method for files and/or directories: It was found a 
conflict with the destination header, because Nautilus client sends the URI 
with the user name, but the user name in the destination header is not 
supported by nginx, resulting in the following error.

acesses_log:
- - 192.168.12.229 - lcolina [27/Sep/2013:09:37:19 -0430] MOVE 
/data/imagenes/imagen2 HTTP/1.1 "400" 166 "-" "gvfs/1.12.3" "-" 

error_log:
2013/09/27 09:37:19 [debug] 18900#0: *145 http process request header line 
2013/09/27 09:37:19 [debug] 18900#0: *145 http header: "Host: webdav.org.ve" 
2013/09/27 09:37:19 [debug] 18900#0: *145 http header: "Destination: 
https://[email protected]/data/imagenes/imagen"; 
2013/09/27 09:37:19 [debug] 18900#0: *145 http header: "Overwrite: F"
2013/09/27 09:37:19 [error] 18900#0: *145 "Destination" URI 
"https://[email protected]/data/imagenes/imagen"; is handled by different 
repository than the source URI while sending to client, client: 192.168.12.229, 
server: webdav.org.ve, request: "MOVE /data/imagenes/imagen2 HTTP/1.1", host: 
"webdav.org.ve" 

I think this should be changed because according to the standard is optional 
URI that contains the user information. So nginx should be able to handle the 
URI with the user name or not. “The user information, if present, is followed 
by a commercial at-sign ("@") that delimits it from the host.”
This conflict is solved in line @@ -579,6 +578,16 @@ the patch below.

2. In operations with MOVE method for directories: It was found a conflict when 
rename a folder from Nautilus client,  the source path contains no final slash, 
resulting a bad request error because nginx requires source path with final 
slash.

acesses_log:
- - 192.168.12.229 - lcolina [27/Sep/2013:11:08:34 -0430] MOVE 
/data/repositorio HTTP/1.1 "400" 166 "-" "gvfs/1.12.3" "-" 

error_log:
2013/09/27 11:08:34 [debug] 27733#0: *146 http copy from: 
"/srv/data/repositorio" 
2013/09/27 11:08:34 [debug] 27733#0: *146 http copy to: 
"/srv/data/repositorio1" 
2013/09/27 11:08:34 [error] 27733#0: *146 "/data/repositorio" is collection 
while sending to client, client: 192.168.12.229, server: webdav.org.ve, 
request: "MOVE /data/repositorio HTTP/1.1", host: "webdav.org.ve" 
2013/09/27 11:08:34 [debug] 27733#0: *146 http finalize request: 400, 
"/data/repositorio?" a:1, c:1 
2013/09/27 11:08:34 [debug] 27733#0: *146 http special response: 400, 
"/data/repositorio?" 
2013/09/27 11:08:34 [debug] 27733#0: *146 http set discard body 
2013/09/27 11:08:34 [debug] 27733#0: *146 xslt filter header 
2013/09/27 11:08:34 [debug] 27733#0: *146 HTTP/1.1 400 Bad Request 

I think this should be changed because according to the standard not mandatory 
if the directory path contains final slash. So nginx should be able to handle 
the source path with final slash or not.
This conflict is solved in line @@ -736,10 +745,9 @@ the patch below.

3. In operations with DELETE method for directories: It was found a conflict 
when delete a folder from Nautilus client, the directory path to eliminate 
contains no final slash, causing a conflict because nginx requires source path 
with final slash, similar to the case number 2.

acesses_log:
- - 192.168.12.229 - lcolina [28/Sep/2013:04:03:29 -0430] DELETE 
/data/imagenes/Carpeta%20sin%20t%C3%ADtulo HTTP/1.1 "409" 160 "-" "gvfs/1.12.3" 
"-"


error_log:
2013/09/28 04:03:29 [debug] 13397#0: *211 http delete filename: 
"/srv/data/imagenes/Carpeta sin título"

2013/09/28 04:03:29 [error] 13397#0: *211 DELETE "/srv/data/imagenes/Carpeta 
sin título" failed (21: Is a directory) while sending to client, client: 
192.168.12.229, server: web

dav.org.ve, request: "DELETE /data/imagenes/Carpeta%20sin%20t%C3%ADtulo 
HTTP/1.1", host: "webdav.org.ve"

2013/09/28 04:03:29 [debug] 13397#0: *211 http finalize request: 409, 
"/data/imagenes/Carpeta sin título?" a:1, c:1

2013/09/28 04:03:29 [debug] 13397#0: *211 http special response: 409, 
"/data/imagenes/Carpeta sin título?"

2013/09/28 04:03:29 [debug] 13397#0: *211 http set discard body

2013/09/28 04:03:29 [debug] 13397#0: *211 xslt filter header

2013/09/28 04:03:29 [debug] 13397#0: *211 HTTP/1.1 409 Conflict


So I think nginx should be able to handle the directory path to eliminate with 
final slash or not.
This conflict is solved in line @@ -338,10 +338,9 @@ the patch below.

Best regards,

Laura Colina
Centro Nacional de Desarrollo e Investigación en Tecnologías Libres (CENDITEL)
Ministerio del Poder Popular para Ciencia, Tecnología e Innovación
República Bolivariana de Venezuela
_______________________________________________
nginx-devel mailing list
[email protected]
http://mailman.nginx.org/mailman/listinfo/nginx-devel

Reply via email to