src/server/webdav/webdav.h

changeset 415
d938228c382e
parent 373
f78a585e1a2f
child 481
31affbf33911
equal deleted inserted replaced
414:99a34860c105 415:d938228c382e
29 #ifndef WEBDAV_H 29 #ifndef WEBDAV_H
30 #define WEBDAV_H 30 #define WEBDAV_H
31 31
32 #include "../public/webdav.h" 32 #include "../public/webdav.h"
33 33
34 #include <ucx/map.h> 34 #include <cx/map.h>
35 #include <ucx/list.h> 35 #include <cx/list.h>
36 #include <ucx/buffer.h> 36 #include <cx/buffer.h>
37 #include <cx/string.h>
37 38
38 #ifdef __cplusplus 39 #ifdef __cplusplus
39 extern "C" { 40 extern "C" {
40 #endif 41 #endif
41 42
45 } WebdavType; 46 } WebdavType;
46 47
47 typedef struct DefaultWebdavData { 48 typedef struct DefaultWebdavData {
48 WebdavVFSProperties vfsproperties; 49 WebdavVFSProperties vfsproperties;
49 } DefaultWebdavData; 50 } DefaultWebdavData;
51
52 typedef struct WebdavPropfindRequestList WebdavPropfindRequestList;
53 struct WebdavPropfindRequestList {
54 WebdavPropfindRequest *propfind;
55 WebdavPropfindRequestList *next;
56 };
50 57
51 WebdavType* webdav_get_type(scstr_t dav_class); 58 WebdavType* webdav_get_type(cxstring dav_class);
52 59
53 void* webdav_init_backend(ServerConfiguration *cfg, pool_handle_t *pool, WebdavType *dav_class, WSConfigNode *config, int *error); 60 void* webdav_init_backend(ServerConfiguration *cfg, pool_handle_t *pool, WebdavType *dav_class, WSConfigNode *config, int *error);
54 61
55 int webdav_init(pblock *pb, Session *sn, Request *rq); 62 int webdav_init(pblock *pb, Session *sn, Request *rq);
56 63
60 * returns a buffer containing the request body 67 * returns a buffer containing the request body
61 * 68 *
62 * this function sets an http response code in case of an error 69 * this function sets an http response code in case of an error
63 * or missing request body 70 * or missing request body
64 */ 71 */
65 UcxBuffer* rqbody2buffer(Session *sn, Request *rq); 72 int rqbody2buffer(Session *sn, Request *rq, CxBuffer *buf);
66 73
67 74
68 int webdav_options(pblock *pb, Session *sn, Request *rq); 75 int webdav_options(pblock *pb, Session *sn, Request *rq);
69 76
70 int webdav_propfind(pblock *pb, Session *sn, Request *rq); 77 int webdav_propfind(pblock *pb, Session *sn, Request *rq);
72 int webdav_propfind_init( 79 int webdav_propfind_init(
73 WebdavBackend *dav, 80 WebdavBackend *dav,
74 WebdavPropfindRequest *propfind, 81 WebdavPropfindRequest *propfind,
75 const char *path, 82 const char *path,
76 const char *uri, 83 const char *uri,
77 UcxList **out_req); 84 WebdavPropfindRequestList **out_req);
78 85
79 int webdav_propfind_do( 86 int webdav_propfind_do(
80 WebdavBackend *dav, 87 WebdavBackend *dav,
81 WebdavPropfindRequest *propfind, 88 WebdavPropfindRequest *propfind,
82 WebdavResponse *response, 89 WebdavResponse *response,
121 WebdavProppatchRequest *request, 128 WebdavProppatchRequest *request,
122 WebdavResource *response, 129 WebdavResource *response,
123 VFSFile *file, 130 VFSFile *file,
124 WSBool commit); 131 WSBool commit);
125 132
126 UcxKey webdav_property_key(const char *ns, const char *name); 133 CxHashKey webdav_property_key(const char *ns, const char *name);
127 134
128 #ifdef __cplusplus 135 #ifdef __cplusplus
129 } 136 }
130 #endif 137 #endif
131 138

mercurial