src/server/webdav/webdav.c

changeset 79
f48cea237ec3
parent 70
4e6e812c1d97
child 85
b62e77d8e80c
equal deleted inserted replaced
78:3578977d29a3 79:f48cea237ec3
538 538
539 539
540 540
541 /* WebDAV Default Backend */ 541 /* WebDAV Default Backend */
542 static PersistenceManager dav_file_backend = { 542 static PersistenceManager dav_file_backend = {
543 NULL, 543 dav_rq_propfind_begin,
544 NULL, 544 dav_rq_propfind_end,
545 dav_rq_propfind, 545 dav_rq_propfind,
546 dav_rq_proppatch, 546 dav_rq_proppatch,
547 0 547 0
548 }; 548 };
549 549
550 PersistenceManager* create_property_backend() { 550 PersistenceManager* create_property_backend() {
551 return &dav_file_backend; 551 return &dav_file_backend;
552 }
553
554 void dav_rq_propfind_begin(PersistenceManager *mgr, PropfindRequest *rq) {
555
556 }
557
558 void dav_rq_propfind_end(PersistenceManager *mgr, PropfindRequest *rq) {
559
552 } 560 }
553 561
554 void dav_rq_propfind(PersistenceManager *b, PropfindRequest *rq ,char *path) { 562 void dav_rq_propfind(PersistenceManager *b, PropfindRequest *rq ,char *path) {
555 struct stat st; 563 struct stat st;
556 if(stat(path, &st) != 0) { 564 if(stat(path, &st) != 0) {
631 /*---------------------------------- utils ----------------------------------*/ 639 /*---------------------------------- utils ----------------------------------*/
632 640
633 /* XmlNsMap */ 641 /* XmlNsMap */
634 642
635 XmlNsMap* xmlnsmap_create(pool_handle_t *pool) { 643 XmlNsMap* xmlnsmap_create(pool_handle_t *pool) {
636 XmlNsMap *map = malloc(sizeof(XmlNsMap)); 644 XmlNsMap *map = pool_malloc(pool, sizeof(XmlNsMap));
637 UcxMap *uxm = ucx_map_new(16); 645 UcxMap *uxm = ucx_map_new(16); // TODO: use pool for map
638 if(map == NULL || uxm == NULL) { 646 if(map == NULL || uxm == NULL) {
639 return NULL; 647 return NULL;
640 } 648 }
641 map->map = uxm; 649 map->map = uxm;
642 map->pool = pool; 650 map->pool = pool;
675 xmlns->nslen = newns.length; 683 xmlns->nslen = newns.length;
676 684
677 xmlns->prefix = pool_calloc(map->pool, 1, 8); 685 xmlns->prefix = pool_calloc(map->pool, 1, 8);
678 xmlns->prelen = snprintf(xmlns->prefix, 7, "x%d", map->num); 686 xmlns->prelen = snprintf(xmlns->prefix, 7, "x%d", map->num);
679 687
680 ucx_map_cstr_put(map->map, ns, xmlns); /* TODO: check return value */ 688 ucx_map_cstr_put(map->map, ns, xmlns); // TODO: check return value
681 map->num++; 689 map->num++;
682 return xmlns; 690 return xmlns;
683 } 691 }
684 692
685 XmlNs* xmlnsmap_get(XmlNsMap *map, char *ns) { 693 XmlNs* xmlnsmap_get(XmlNsMap *map, char *ns) {

mercurial