summaryrefslogtreecommitdiff
path: root/src/mod_webdav.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/mod_webdav.c')
-rw-r--r--src/mod_webdav.c22
1 files changed, 15 insertions, 7 deletions
diff --git a/src/mod_webdav.c b/src/mod_webdav.c
index 0e7a682..3306c73 100644
--- a/src/mod_webdav.c
+++ b/src/mod_webdav.c
@@ -291,6 +291,7 @@ static int mod_webdav_patch_connection(server *srv, connection *con, plugin_data
PATCH(enabled);
PATCH(is_readonly);
+ PATCH(log_xml);
#ifdef USE_PROPPATCH
PATCH(sql);
@@ -1175,19 +1176,23 @@ URIHANDLER_FUNC(mod_webdav_subrequest_handler) {
d.rel_path = buffer_init();
while(NULL != (de = readdir(dir))) {
- if ((de->d_name[0] == '.' && de->d_name[1] == '\0') ||
- (de->d_name[0] == '.' && de->d_name[1] == '.' && de->d_name[2] == '\0')) {
+ if (de->d_name[0] == '.' && de->d_name[1] == '.' && de->d_name[2] == '\0') {
continue;
/* ignore the parent dir */
}
buffer_copy_string_buffer(d.path, dst->path);
BUFFER_APPEND_SLASH(d.path);
- buffer_append_string(d.path, de->d_name);
-
+
buffer_copy_string_buffer(d.rel_path, dst->rel_path);
BUFFER_APPEND_SLASH(d.rel_path);
- buffer_append_string(d.rel_path, de->d_name);
+
+ if (de->d_name[0] == '.' && de->d_name[1] == '\0') {
+ /* don't append the . */
+ } else {
+ buffer_append_string(d.path, de->d_name);
+ buffer_append_string(d.rel_path, de->d_name);
+ }
buffer_reset(prop_200);
buffer_reset(prop_404);
@@ -1247,6 +1252,9 @@ URIHANDLER_FUNC(mod_webdav_subrequest_handler) {
free(req_props);
}
+ buffer_free(prop_200);
+ buffer_free(prop_404);
+
buffer_append_string(b,"</D:multistatus>\n");
if (p->conf.log_xml) {
@@ -1531,10 +1539,10 @@ URIHANDLER_FUNC(mod_webdav_subrequest_handler) {
buffer_path_simplify(p->uri.path, p->tmp_buf);
/* we now have a URI which is clean. transform it into a physical path */
- buffer_copy_string_buffer(p->physical.doc_root, con->conf.document_root);
+ buffer_copy_string_buffer(p->physical.doc_root, con->physical.doc_root);
buffer_copy_string_buffer(p->physical.rel_path, p->uri.path);
- if (con->conf.force_lower_case) {
+ if (con->conf.force_lowercase_filenames) {
buffer_to_lower(p->physical.rel_path);
}