Sat, 18 Mar 2023 15:52:35 +0100
add libxattr
479
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
1 | /* |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
2 | * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS HEADER. |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
3 | * |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
4 | * Copyright 2023 Olaf Wintermann. All rights reserved. |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
5 | * |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
6 | * Redistribution and use in source and binary forms, with or without |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
7 | * modification, are permitted provided that the following conditions are met: |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
8 | * |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
9 | * 1. Redistributions of source code must retain the above copyright |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
10 | * notice, this list of conditions and the following disclaimer. |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
11 | * |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
12 | * 2. Redistributions in binary form must reproduce the above copyright |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
13 | * notice, this list of conditions and the following disclaimer in the |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
14 | * documentation and/or other materials provided with the distribution. |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
15 | * |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
16 | * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
17 | * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
18 | * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
19 | * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
20 | * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
21 | * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
22 | * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
23 | * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
24 | * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
25 | * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
26 | * POSSIBILITY OF SUCH DAMAGE. |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
27 | */ |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
28 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
29 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
30 | #include "xattrbackend.h" |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
31 | |
480 | 32 | #include "../util/util.h" |
33 | #include "../util/libxattr.h" | |
34 | ||
479
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
35 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
36 | static WebdavBackend webdav_xattr_backend = { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
37 | webdav_xattr_propfind_init, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
38 | webdav_xattr_propfind_do, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
39 | webdav_xattr_propfind_finish, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
40 | webdav_xattr_proppatch_do, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
41 | webdav_xattr_proppatch_finish, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
42 | NULL, // opt_mkcol |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
43 | NULL, // opt_mkcol_finish |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
44 | NULL, // opt_delete |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
45 | NULL, // opt_delete_finish |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
46 | WS_WEBDAV_PROPFIND_USE_VFS | WS_WEBDAV_PROPPATCH_USE_VFS, // settings |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
47 | NULL, // instance |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
48 | NULL // next |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
49 | }; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
50 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
51 | int webdav_init_xattr_backend(void) { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
52 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
53 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
54 | if(webdav_register_backend("xattr", webdav_xattr_init, webdav_xattr_create)) { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
55 | return 1; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
56 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
57 | return 0; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
58 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
59 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
60 | void* webdav_xattr_init(ServerConfiguration *cfg, pool_handle_t *pool, WSConfigNode *config) { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
61 | WebdavXAttrRepository *repo = pool_malloc(pool, sizeof(WebdavXAttrRepository)); |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
62 | if(!repo) { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
63 | return NULL; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
64 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
65 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
66 | // TODO: config |
480 | 67 | repo->xattr_name = "webdav_properties"; |
479
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
68 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
69 | return repo; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
70 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
71 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
72 | WebdavBackend* webdav_xattr_create(Session *sn, Request *rq, pblock *pb, void *initData) { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
73 | WebdavBackend *dav = pool_malloc(sn->pool, sizeof(WebdavBackend)); |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
74 | if(!dav) { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
75 | return NULL; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
76 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
77 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
78 | WebdavXAttrBackend *instance = pool_malloc(sn->pool, sizeof(WebdavXAttrBackend)); |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
79 | if(!instance) { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
80 | return NULL; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
81 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
82 | instance->repo = initData; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
83 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
84 | *dav = webdav_xattr_backend; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
85 | dav->instance = instance; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
86 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
87 | return dav; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
88 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
89 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
90 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
91 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
92 | /* -------------------- webdav backend imlementation ----------------------*/ |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
93 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
94 | int webdav_xattr_propfind_init( |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
95 | WebdavPropfindRequest *rq, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
96 | const char *path, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
97 | const char *href, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
98 | WebdavPList **outplist) |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
99 | { |
480 | 100 | // make sure the sys vfs is used, because currently only |
101 | // native sysfs xattr is supported | |
102 | if(rq->rq->vfs) { | |
103 | log_ereport(LOG_FAILURE, "webdav-propfind: xattr backend unsupported with non-native VFS"); | |
104 | return 1; | |
105 | } | |
106 | ||
107 | XAttrPropfind *xprop = pool_malloc(rq->sn->pool, sizeof(XAttrPropfind)); | |
108 | if(!xprop) { | |
109 | return 1; | |
110 | } | |
111 | rq->userdata = xprop; | |
112 | ||
113 | xprop->base_href = href; | |
114 | xprop->base_path = path; | |
115 | ||
479
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
116 | return 0; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
117 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
118 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
119 | int webdav_xattr_propfind_do( |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
120 | WebdavPropfindRequest *request, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
121 | WebdavResponse *response, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
122 | VFS_DIR parent, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
123 | WebdavResource *resource, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
124 | struct stat *s) |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
125 | { |
480 | 126 | Session *sn = request->sn; |
127 | Request *rq = request->rq; | |
128 | ||
129 | WebdavXAttrBackend *xdav = request->dav->instance; | |
130 | WebdavXAttrRepository *repo = xdav->repo; | |
131 | XAttrPropfind *xprop = request->userdata; | |
132 | ||
133 | const char *path; | |
134 | char *path_dp = NULL; | |
135 | if(!parent) { | |
136 | // use base path | |
137 | path = xprop->base_path; | |
138 | } else { | |
139 | size_t base_href_len = strlen(xprop->base_href); | |
140 | size_t base_path_len = strlen(xprop->base_path); | |
141 | char *res_path = resource->href + base_href_len; | |
142 | size_t res_path_len = strlen(res_path); | |
143 | ||
144 | path_dp = pool_malloc(sn->pool, base_path_len + res_path_len + 2); | |
145 | memcpy(path_dp, xprop->base_path, base_path_len); | |
146 | int s = 0; | |
147 | if(path_dp[base_path_len-1] != '/' && res_path[0] != '/') { | |
148 | path_dp[base_path_len] = '/'; | |
149 | s = 1; | |
150 | } | |
151 | memcpy(path_dp + base_path_len + s, res_path, res_path_len); | |
152 | path_dp[base_path_len + s + res_path_len] = 0; | |
153 | ||
154 | path = path_dp; | |
155 | } | |
156 | ||
157 | ssize_t xattr_data_len = 0; | |
158 | char *xattr_data = xattr_get_alloc( | |
159 | sn->pool, | |
160 | (libxattr_malloc_func)pool_malloc, | |
161 | (libxattr_free_func)pool_free, | |
162 | path, | |
163 | repo->xattr_name, | |
164 | &xattr_data_len); | |
165 | ||
166 | ||
479
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
167 | return 0; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
168 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
169 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
170 | int webdav_xattr_propfind_finish(WebdavPropfindRequest *rq) { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
171 | return 0; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
172 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
173 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
174 | int webdav_xattr_proppatch_do( |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
175 | WebdavProppatchRequest *request, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
176 | WebdavResource *response, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
177 | VFSFile *file, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
178 | WebdavPList **setInOut, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
179 | WebdavPList **removeInOut) |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
180 | { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
181 | return 0; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
182 | } |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
183 | |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
184 | int webdav_xattr_proppatch_finish( |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
185 | WebdavProppatchRequest *request, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
186 | WebdavResource *response, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
187 | VFSFile *file, |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
188 | WSBool commit) |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
189 | { |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
190 | return 0; |
2a42ba73ecdd
add new xattr based webdav backend (unimplemented)
Olaf Wintermann <olaf.wintermann@gmail.com>
parents:
diff
changeset
|
191 | } |