libidav/resource.c

branch
feature/dav-edit
changeset 713
a1c36a6410f6
parent 609
dc3d70848c7c
child 728
35a421f441d5
equal deleted inserted replaced
712:c62af832a0e2 713:a1c36a6410f6
1265 1265
1266 return create_resource(res, &status); 1266 return create_resource(res, &status);
1267 } 1267 }
1268 1268
1269 int dav_exists(DavResource *res) { 1269 int dav_exists(DavResource *res) {
1270 // TODO: reimplement with PROPFIND 1270 if(!dav_load_prop(res, NULL, 0)) {
1271
1272 DavSession *sn = res->session;
1273 CURL *handle = sn->handle;
1274 util_set_url(sn, dav_resource_get_href(res));
1275
1276 CURLcode ret = do_head_request(sn);
1277 long status = 0;
1278 curl_easy_getinfo (handle, CURLINFO_RESPONSE_CODE, &status);
1279 if(ret == CURLE_OK && (status >= 200 && status < 300)) {
1280 res->exists = 1; 1271 res->exists = 1;
1281 return 1; 1272 return 1;
1282 } else { 1273 } else {
1283 dav_session_set_error(sn, ret, status); 1274 if(res->session->error == DAV_NOT_FOUND) {
1284 if(status == 404) {
1285 res->exists = 0; 1275 res->exists = 0;
1286 } 1276 }
1287 return 0; 1277 return 0;
1288 } 1278 }
1289 } 1279 }

mercurial