libidav/session.c

branch
dav-2
changeset 925
61a231a8d8f5
parent 922
42ecf0e5075a
equal deleted inserted replaced
924:e1f053ba2c10 925:61a231a8d8f5
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);

mercurial