| 34 #include "utils.h" |
34 #include "utils.h" |
| 35 #include "webdav.h" |
35 #include "webdav.h" |
| 36 #include "session.h" |
36 #include "session.h" |
| 37 #include "methods.h" |
37 #include "methods.h" |
| 38 #include <cx/buffer.h> |
38 #include <cx/buffer.h> |
| 39 #include <cx/utils.h> |
|
| 40 #include <cx/linked_list.h> |
39 #include <cx/linked_list.h> |
| 41 #include <cx/hash_map.h> |
40 #include <cx/hash_map.h> |
| 42 #include <cx/compare.h> |
41 #include <cx/compare.h> |
| 43 #include "davqlparser.h" |
42 #include "davqlparser.h" |
| 44 #include "davqlexec.h" |
43 #include "davqlexec.h" |
| 351 |
350 |
| 352 int dav_context_remove_session(DavContext *context, DavSession *sn) { |
351 int dav_context_remove_session(DavContext *context, DavSession *sn) { |
| 353 int ret = 0; |
352 int ret = 0; |
| 354 dav_context_lock(context); |
353 dav_context_lock(context); |
| 355 CxList *sessions = context->sessions; |
354 CxList *sessions = context->sessions; |
| 356 ssize_t i = cxListFind(sessions, sn); |
355 size_t i = cxListFind(sessions, sn); |
| 357 if(i >= 0) { |
356 if(cxListIndexValid(sessions, i)) { |
| 358 cxListRemove(sessions, i); |
357 cxListRemove(sessions, i); |
| 359 } else { |
358 } else { |
| 360 ret = 1; |
359 ret = 1; |
| 361 } |
360 } |
| 362 dav_context_unlock(context); |
361 dav_context_unlock(context); |