diff -r 4e46c65711ef -r 938957a4eea7 dav/webdav.c --- a/dav/webdav.c Thu Aug 22 11:25:16 2013 +0200 +++ b/dav/webdav.c Thu Aug 22 12:45:12 2013 +0200 @@ -811,3 +811,21 @@ return 1; } } + +int dav_exists(DavResource *res) { + DavSession *sn = res->session; + char *url = util_concat_path(sn->base_url, res->path); + CURL *handle = sn->handle; + curl_easy_setopt(handle, CURLOPT_URL, url); + free(url); + + CURLcode ret = do_head_request(handle); + int status = 0; + curl_easy_getinfo (handle, CURLINFO_RESPONSE_CODE, &status); + if(ret == CURLE_OK && (status >= 200 && status < 300)) { + return 1; + } else { + session_set_error(sn, ret, status); + return 0; + } +}