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 } |