diff -r f78a585e1a2f -r 77506ec632a4 src/server/plugins/postgresql/webdav.c --- a/src/server/plugins/postgresql/webdav.c Sat Aug 13 15:56:51 2022 +0200 +++ b/src/server/plugins/postgresql/webdav.c Sun Aug 14 11:40:54 2022 +0200 @@ -296,10 +296,10 @@ return NULL; } - return pg_webdav_create_from_resdata(sn, rq, resdata); + return pg_webdav_create_from_resdata(sn, rq, repo, resdata); } -WebdavBackend* pg_webdav_create_from_resdata(Session *sn, Request *rq, ResourceData *resdata) { +WebdavBackend* pg_webdav_create_from_resdata(Session *sn, Request *rq, PgRepository *repo, ResourceData *resdata) { WebdavBackend *webdav = pool_malloc(sn->pool, sizeof(WebdavBackend)); if(!webdav) { return NULL; @@ -316,6 +316,9 @@ instance->pg_resource = resdata; instance->connection = resdata->data; + instance->repository = repo; + snprintf(instance->root_resource_id_str, 32, "%" PRId64, repo->root_resource_id); + return webdav; } @@ -384,6 +387,7 @@ int err = pg_resolve_path( pgdav->connection, path, + pgdav->root_resource_id_str, &parent_id, &resource_id, NULL, // OID @@ -869,6 +873,7 @@ int err = pg_resolve_path( pgdav->connection, path, + pgdav->root_resource_id_str, &parent_id, &resource_id, NULL, // OID