156 |
156 |
157 void dav_session_destroy(DavSession *sn) { |
157 void dav_session_destroy(DavSession *sn) { |
158 // remove session from context |
158 // remove session from context |
159 UcxList *sessions = sn->context->sessions; |
159 UcxList *sessions = sn->context->sessions; |
160 ssize_t i = ucx_list_find(sessions, sn, ucx_ptrcmp, NULL); |
160 ssize_t i = ucx_list_find(sessions, sn, ucx_ptrcmp, NULL); |
161 if(i > 0) { |
161 if(i >= 0) { |
162 UcxList *elm = ucx_list_get(sessions, i); |
162 UcxList *elm = ucx_list_get(sessions, i); |
163 if(elm) { |
163 if(elm) { |
164 sn->context->sessions = ucx_list_remove(sessions, elm); |
164 sn->context->sessions = ucx_list_remove(sessions, elm); |
165 } |
165 } |
166 } |
166 } |
243 |
243 |
244 // create request buffer for propfind requests |
244 // create request buffer for propfind requests |
245 UcxBuffer *rqbuf = create_basic_propfind_request(); |
245 UcxBuffer *rqbuf = create_basic_propfind_request(); |
246 |
246 |
247 sstr_t remaining = sstrsubs(p, start); |
247 sstr_t remaining = sstrsubs(p, start); |
248 size_t nelm = 0; |
248 ssize_t nelm = 0; |
249 sstr_t *elms = sstrsplit(remaining, S("/"), &nelm); |
249 sstr_t *elms = sstrsplit(remaining, S("/"), &nelm); |
250 DavResource *res = root; |
250 DavResource *res = root; |
251 ucx_buffer_puts(pbuf, res->path); |
251 ucx_buffer_puts(pbuf, res->path); |
252 // iterate over all remaining path elements |
252 // iterate over all remaining path elements |
253 for(int i=0;i<nelm;i++) { |
253 for(int i=0;i<nelm;i++) { |