src/server/plugins/postgresql/webdav.c

branch
webdav
changeset 303
ad9ba51c8634
parent 300
0e3f275b2492
child 306
e03737cea6e2
equal deleted inserted replaced
302:dfbd3a535eac 303:ad9ba51c8634
37 NULL, // opt_mkcol 37 NULL, // opt_mkcol
38 NULL, // opt_mkcol_finish 38 NULL, // opt_mkcol_finish
39 NULL, // opt_delete 39 NULL, // opt_delete
40 NULL, // opt_delete_finish 40 NULL, // opt_delete_finish
41 0, 41 0,
42 NULL,
42 NULL 43 NULL
43 }; 44 };
45
46 WebdavBackend* pg_webdav_create(Session *sn, Request *rq, pblock *pb) {
47 // resourcepool is required
48 char *resource_pool = pblock_findval("resourcepool", pb);
49 if(!resource_pool) {
50 log_ereport(LOG_MISCONFIG, "pg_webdav_create: missing resourcepool parameter");
51 return NULL;
52 }
53
54 // get the resource first (should only fail in case of misconfig)
55 ResourceData *resdata = resourcepool_lookup(sn, rq, resource_pool, 0);
56 if(!resdata) {
57 log_ereport(LOG_MISCONFIG, "postgresql webdav: resource pool %s not found", resource_pool);
58 return NULL;
59 }
60
61 return pg_webdav_create_from_resdata(sn, rq, resdata);
62 }
63
64 WebdavBackend* pg_webdav_create_from_resdata(Session *sn, Request *rq, ResourceData *resdata) {
65 WebdavBackend *webdav = pool_malloc(sn->pool, sizeof(WebdavBackend));
66 if(!webdav) {
67 return NULL;
68 }
69 *webdav = pg_webdav_backend;
70
71 PgWebdavBackend *instance = pool_malloc(sn->pool, sizeof(PgWebdavBackend));
72 if(instance) {
73 pool_free(sn->pool, webdav);
74 return NULL;
75 }
76 webdav->instance = instance;
77
78 instance->pg_resource = resdata;
79 instance->connection = resdata->data;
80
81 return webdav;
82 }
83
84 WebdavBackend* pg_webdav_prop_create(Session *sn, Request *rq, pblock *pb) {
85 return NULL;
86 }
87
44 88
45 int pg_dav_propfind_init( 89 int pg_dav_propfind_init(
46 WebdavPropfindRequest *rq, 90 WebdavPropfindRequest *rq,
47 const char *path, 91 const char *path,
48 WebdavPList **outplist) 92 WebdavPList **outplist)

mercurial