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 |