| 160 dav_session_set_auth_s(sn, cx_str(user), cx_str(password)); |
160 dav_session_set_auth_s(sn, cx_str(user), cx_str(password)); |
| 161 } |
161 } |
| 162 } |
162 } |
| 163 |
163 |
| 164 void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password) { |
164 void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password) { |
| |
165 dav_curl_set_auth(sn->handle, user, password); |
| |
166 } |
| |
167 |
| |
168 int dav_curl_set_auth(CURL *handle, cxstring user, cxstring password) { |
| 165 if(user.length > 0 && password.length > 0) { |
169 if(user.length > 0 && password.length > 0) { |
| 166 size_t upwdlen = user.length + password.length + 2; |
170 size_t upwdlen = user.length + password.length + 2; |
| 167 char *upwdbuf = malloc(upwdlen); |
171 char *upwdbuf = malloc(upwdlen); |
| |
172 if(!upwdbuf) { |
| |
173 return 1; |
| |
174 } |
| 168 snprintf(upwdbuf, upwdlen, "%.*s:%.*s", (int)user.length, user.ptr, (int)password.length, password.ptr); |
175 snprintf(upwdbuf, upwdlen, "%.*s:%.*s", (int)user.length, user.ptr, (int)password.length, password.ptr); |
| 169 curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf); |
176 curl_easy_setopt(handle, CURLOPT_USERPWD, upwdbuf); |
| 170 free(upwdbuf); |
177 free(upwdbuf); |
| 171 } |
178 return 0; |
| |
179 } |
| |
180 return -1; |
| 172 } |
181 } |
| 173 |
182 |
| 174 void dav_session_set_baseurl(DavSession *sn, const char *base_url) { |
183 void dav_session_set_baseurl(DavSession *sn, const char *base_url) { |
| 175 const CxAllocator *a = sn->mp->allocator; |
184 const CxAllocator *a = sn->mp->allocator; |
| 176 cxFree(a, sn->base_url); |
185 cxFree(a, sn->base_url); |