dav/main.c

changeset 68
f6d3db6113d3
parent 62
3b813c57c106
child 70
88092b88ec00
--- a/dav/main.c	Fri Dec 12 13:57:41 2014 +0100
+++ b/dav/main.c	Fri Dec 12 15:19:38 2014 +0100
@@ -41,6 +41,7 @@
 
 #include <libidav/utils.h>
 #include <libidav/crypto.h>
+#include <libidav/session.h>
 #include "config.h"
 #include "main.h"
 
@@ -50,7 +51,6 @@
     // nothing
 }
 
-#include <libidav/session.h>
 void test() {
     
 }
@@ -143,7 +143,8 @@
     fprintf(stderr, "        -a         show all files\n");
     fprintf(stderr, "        -l         print resources in long list format\n");
     fprintf(stderr, "        -t         print content type\n");
-    fprintf(stderr, "        -n <uri>   specify namespace uri");
+    fprintf(stderr, "        -n <uri>   specify namespace uri\n");
+    fprintf(stderr, "        -v         verbose output\n");
     fprintf(stderr, "\n");
     fprintf(stderr,
             "Instead of an url you can pass a repository name "
@@ -270,16 +271,27 @@
         return 1;
     }
     
-    if(plain) {
-        int flags = sn->flags;
-        dav_session_set_flags(sn, 0);
+    if (plain) {
+        sn->flags &= ~DAV_SESSION_FULL_ENCRYPTION;
     } else if(crypt) {
-        dav_session_set_flags(sn, DAV_SESSION_FULL_ENCRYPTION);
+        sn->flags |= DAV_SESSION_FULL_ENCRYPTION;
+    }
+    
+    if (cmd_getoption(a, "verbose")) {
+        curl_easy_setopt(sn->handle, CURLOPT_VERBOSE, 1L);
+        curl_easy_setopt(sn->handle, CURLOPT_STDERR, stderr);
     }
     
     return 0;
 }
 
+static DavSession* connect_to_repo(Repository *repo) {
+    DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
+    sn->flags = get_repository_flags(repo);
+    sn->key = dav_context_get_key(ctx, repo->default_key);
+    
+    return sn;
+}
 
 int cmd_list(CmdArgs *a) {
     if(a->argc != 1) {
@@ -289,12 +301,8 @@
     
     char *url = a->argv[0];
     char *path = NULL;
-    //char *base = NULL;
     Repository *repo = url2repo(url, &path);
-    //base = util_concat_path(repo->url, path);
-    DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
-    dav_session_set_flags(sn, get_repository_flags(repo));
-    sn->key = dav_context_get_key(ctx, repo->default_key);
+    DavSession *sn = connect_to_repo(repo);
     
     if(set_session_config(sn, a)) {
         return -1;
@@ -515,9 +523,7 @@
     char *url = a->argv[0];
     char *path = NULL;
     Repository *repo = url2repo(url, &path);
-    DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
-    dav_session_set_flags(sn, get_repository_flags(repo));
-    sn->key = dav_context_get_key(ctx, repo->default_key);
+    DavSession *sn = connect_to_repo(repo);
     
     if(set_session_config(sn, a)) {
         return -1;
@@ -638,9 +644,7 @@
     char *file = a->argv[1];
     char *path = NULL;
     Repository *repo = url2repo(url, &path);
-    DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
-    dav_session_set_flags(sn, get_repository_flags(repo));
-    sn->key = dav_context_get_key(ctx, repo->default_key);
+    DavSession *sn = connect_to_repo(repo);
     
     if(set_session_config(sn, a)) {
         return -1;
@@ -777,10 +781,7 @@
     
     char *url = a->argv[0];
     char *path = NULL;
-    Repository *repo = url2repo(url, &path);
-    DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
-    dav_session_set_flags(sn, get_repository_flags(repo));
-    sn->key = dav_context_get_key(ctx, repo->default_key);
+    DavSession *sn = connect_to_repo(url2repo(url, &path));
     
     if(set_session_config(sn, a)) {
         return -1;
@@ -810,10 +811,7 @@
     
     char *url = a->argv[0];
     char *path = NULL;
-    Repository *repo = url2repo(url, &path);
-    DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
-    dav_session_set_flags(sn, get_repository_flags(repo));
-    sn->key = dav_context_get_key(ctx, repo->default_key);
+    DavSession *sn = connect_to_repo(url2repo(url, &path));
     
     if(set_session_config(sn, a)) {
         return -1;
@@ -873,10 +871,7 @@
     } else if (a->argc == 1) {
         char *url = a->argv[0];
         char *path = NULL;
-        Repository *repo = url2repo(url, &path);
-        DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
-        dav_session_set_flags(sn, get_repository_flags(repo));
-        sn->key = dav_context_get_key(ctx, repo->default_key);
+        DavSession *sn = connect_to_repo(url2repo(url, &path));
 
         DavResource *res = dav_resource_new(sn, path);
         char *date = NULL;
@@ -903,10 +898,7 @@
     
     char *url = a->argv[0];
     char *path = NULL;
-    Repository *repo = url2repo(url, &path);
-    DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
-    dav_session_set_flags(sn, get_repository_flags(repo));
-    sn->key = dav_context_get_key(ctx, repo->default_key);
+    DavSession *sn = connect_to_repo(url2repo(url, &path));
     
     if(set_session_config(sn, a)) {
         return -1;
@@ -949,10 +941,7 @@
     
     char *url = a->argv[0];
     char *path = NULL;
-    Repository *repo = url2repo(url, &path);
-    DavSession *sn = dav_session_new_auth(ctx, repo->url, repo->user, repo->password);
-    dav_session_set_flags(sn, get_repository_flags(repo));
-    sn->key = dav_context_get_key(ctx, repo->default_key);
+    DavSession *sn = connect_to_repo(url2repo(url, &path));
     
     if(set_session_config(sn, a)) {
         return -1;

mercurial