|
|
|
@ -8,6 +8,9 @@
|
|
|
|
|
#include <stdio.h> |
|
|
|
|
#include <assert.h> |
|
|
|
|
|
|
|
|
|
#include <unistd.h> |
|
|
|
|
#include <dirent.h> |
|
|
|
|
|
|
|
|
|
#ifdef HAVE_CONFIG_H |
|
|
|
|
#include "config.h" |
|
|
|
|
#endif |
|
|
|
@ -35,9 +38,7 @@
|
|
|
|
|
#include "stream.h" |
|
|
|
|
#include "stat_cache.h" |
|
|
|
|
|
|
|
|
|
#include "sys-files.h" |
|
|
|
|
#include "sys-mmap.h" |
|
|
|
|
#include "sys-strings.h" |
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* this is a webdav for a lighttpd plugin |
|
|
|
@ -371,6 +372,8 @@ SETDEFAULTS_FUNC(mod_webdav_set_defaults) {
|
|
|
|
|
return HANDLER_GO_ON; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
#define PATCH_OPTION(x) \ |
|
|
|
|
p->conf.x = s->x; |
|
|
|
|
static int mod_webdav_patch_connection(server *srv, connection *con, plugin_data *p) { |
|
|
|
|
size_t i, j; |
|
|
|
|
plugin_config *s = p->config_storage[0]; |
|
|
|
@ -592,11 +595,11 @@ static int webdav_delete_dir(server *srv, connection *con, plugin_data *p, physi
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(d.path, dst->path); |
|
|
|
|
PATHNAME_APPEND_SLASH(d.path); |
|
|
|
|
BUFFER_APPEND_SLASH(d.path); |
|
|
|
|
buffer_append_string(d.path, de->d_name); |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(d.rel_path, dst->rel_path); |
|
|
|
|
PATHNAME_APPEND_SLASH(d.rel_path); |
|
|
|
|
BUFFER_APPEND_SLASH(d.rel_path); |
|
|
|
|
buffer_append_string(d.rel_path, de->d_name); |
|
|
|
|
|
|
|
|
|
/* stat and unlink afterwards */ |
|
|
|
@ -751,19 +754,19 @@ static int webdav_copy_dir(server *srv, connection *con, plugin_data *p, physica
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(s.path, src->path); |
|
|
|
|
PATHNAME_APPEND_SLASH(s.path); |
|
|
|
|
BUFFER_APPEND_SLASH(s.path); |
|
|
|
|
buffer_append_string(s.path, de->d_name); |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(d.path, dst->path); |
|
|
|
|
PATHNAME_APPEND_SLASH(d.path); |
|
|
|
|
BUFFER_APPEND_SLASH(d.path); |
|
|
|
|
buffer_append_string(d.path, de->d_name); |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(s.rel_path, src->rel_path); |
|
|
|
|
PATHNAME_APPEND_SLASH(s.rel_path); |
|
|
|
|
BUFFER_APPEND_SLASH(s.rel_path); |
|
|
|
|
buffer_append_string(s.rel_path, de->d_name); |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(d.rel_path, dst->rel_path); |
|
|
|
|
PATHNAME_APPEND_SLASH(d.rel_path); |
|
|
|
|
BUFFER_APPEND_SLASH(d.rel_path); |
|
|
|
|
buffer_append_string(d.rel_path, de->d_name); |
|
|
|
|
|
|
|
|
|
if (-1 == stat(s.path->ptr, &st)) { |
|
|
|
@ -1394,10 +1397,10 @@ URIHANDLER_FUNC(mod_webdav_subrequest_handler) {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(d.path, dst->path); |
|
|
|
|
PATHNAME_APPEND_SLASH(d.path); |
|
|
|
|
BUFFER_APPEND_SLASH(d.path); |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(d.rel_path, dst->rel_path); |
|
|
|
|
PATHNAME_APPEND_SLASH(d.rel_path); |
|
|
|
|
BUFFER_APPEND_SLASH(d.rel_path); |
|
|
|
|
|
|
|
|
|
if (de->d_name[0] == '.' && de->d_name[1] == '\0') { |
|
|
|
|
/* don't append the . */ |
|
|
|
@ -1852,7 +1855,7 @@ URIHANDLER_FUNC(mod_webdav_subrequest_handler) {
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
buffer_copy_string_buffer(p->physical.path, p->physical.doc_root); |
|
|
|
|
PATHNAME_APPEND_SLASH(p->physical.path); |
|
|
|
|
BUFFER_APPEND_SLASH(p->physical.path); |
|
|
|
|
buffer_copy_string_buffer(p->physical.basedir, p->physical.path); |
|
|
|
|
|
|
|
|
|
/* don't add a second / */ |
|
|
|
|