application/davcontroller.c

changeset 56
294d5515583a
parent 54
3ca3acefc66a
child 58
0d25f15e2625
equal deleted inserted replaced
55:1ce14068ef31 56:294d5515583a
91 } 91 }
92 92
93 char *dav_path = util_concat_path(browser->repo_base, path); 93 char *dav_path = util_concat_path(browser->repo_base, path);
94 ui_set(browser->path, dav_path); 94 ui_set(browser->path, dav_path);
95 free(dav_path); 95 free(dav_path);
96 96
97 SessionAuthData *auth = cxMalloc(sn->mp->allocator, sizeof(SessionAuthData));
98 auth->obj = ui;
99 auth->cond = ui_condvar_create();
100 auth->sn = sn;
101 auth->user = repo->user.value.ptr ? cx_strdup_a(sn->mp->allocator, cx_strcast(repo->user.value)).ptr : NULL;
102 auth->password = NULL;
103 dav_session_set_authcallback(sn, jobthr_davbrowser_auth, auth);
104
97 davbrowser_query_path(ui, browser, path); 105 davbrowser_query_path(ui, browser, path);
106 }
107
108 // ------------------------------ davbrowser_auth ------------------------------
109
110 static int davbrowser_auth_dialog(void *data) {
111 SessionAuthData *auth = data;
112 auth_dialog(auth);
113 return 0;
114 }
115
116 void davbrowser_auth_set_user_pwd(SessionAuthData *auth, const char *user, const char *password) {
117 dav_session_free(auth->sn, auth->user);
118 dav_session_free(auth->sn, auth->password);
119 auth->user = user ? dav_session_strdup(auth->sn, user) : NULL;
120 auth->password = password ? dav_session_strdup(auth->sn, password) : NULL;
121 }
122
123 int jobthr_davbrowser_auth(DavSession *sn, void *data) {
124 SessionAuthData *auth = data;
125
126 ui_call_mainthread(davbrowser_auth_dialog, auth);
127 ui_condvar_wait(auth->cond);
128
129 if(auth->cond->intdata) {
130 dav_session_set_auth(sn, auth->user, auth->password);
131 }
132 dav_session_free(auth->sn, auth->password);
133 auth->password = NULL;
134
135 return 0;
98 } 136 }
99 137
100 138
101 // ------------------------------ davbrowser_query_path ------------------------------ 139 // ------------------------------ davbrowser_query_path ------------------------------
102 140

mercurial