dav/webdav.c

changeset 29
938957a4eea7
parent 27
e584c351b402
--- 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;
+    }
+}

mercurial