dav/main.c

changeset 315
7db4dbf4e6f9
parent 309
8a474d2ad209
child 316
9d0505d80044
--- a/dav/main.c	Fri Sep 22 20:42:33 2017 +0200
+++ b/dav/main.c	Sat Sep 23 11:45:03 2017 +0200
@@ -176,7 +176,7 @@
     fprintf(
             stderr,
             "        remove-property [-pc] [-n <uri>] <url> <property>\n");
-    fprintf(stderr, "        lock [-pc] <url>\n");
+    fprintf(stderr, "        lock [-pc] [-T timeout] <url>\n");
     fprintf(stderr, "        unlock [-pc] [-L <lock>] <url>\n");
     fprintf(stderr, "        info [-pc] <url>\n");
     fprintf(stderr, "        date [url]\n");
@@ -201,6 +201,7 @@
     fprintf(stderr, "        -e         show extended flags\n");
     fprintf(stderr, "        -O         override resources\n");
     fprintf(stderr, "        -L <lock>  specificy lock token\n");
+    fprintf(stderr, "        -T <sec>   timeout in seconds\n");
     fprintf(stderr, "        -n <uri>   specify namespace uri\n");
     fprintf(stderr, "        -N         disable authentication prompt (all commands)\n");
     fprintf(stderr, "        -i         disable cert verification (all commands)\n");
@@ -1322,9 +1323,19 @@
         return -1;
     }
     
+    time_t timeout = 0;
+    char *timeoutstr = cmd_getoption(a, "timeout");
+    if(timeoutstr) {
+        if(!sstrcasecmp(sstr(timeoutstr), S("infinity"))) {
+            timeout = -1;
+        } else {
+            timeout = (time_t)atoi(timeoutstr); // TODO: use strtol
+        }
+    }
+    
     DavResource *res = dav_resource_new(sn, path);
     for(int i=0;i<2;i++) {
-        if(!dav_lock(res)) {
+        if(!dav_lock_t(res, timeout)) {
             break;
         }
         if(i == 0 && sn->error == DAV_UNAUTHORIZED && request_auth(repo, sn, a)) {

mercurial