112 } |
112 } |
113 dav_session_set_auth(sn, user, password); |
113 dav_session_set_auth(sn, user, password); |
114 return sn; |
114 return sn; |
115 } |
115 } |
116 |
116 |
117 void dav_session_set_auth(DavSession *sn, char *user, char *password) { |
117 void dav_session_set_auth(DavSession *sn, const char *user, const char *password) { |
118 if(user && password) { |
118 if(user && password) { |
119 size_t ulen = strlen(user); |
119 dav_session_set_auth_s(sn, cx_str(user), cx_str(password)); |
120 size_t plen = strlen(password); |
120 } |
121 size_t upwdlen = ulen + plen + 2; |
121 } |
|
122 |
|
123 void dav_session_set_auth_s(DavSession *sn, cxstring user, cxstring password) { |
|
124 if(user.length > 0 && password.length > 0) { |
|
125 size_t upwdlen = user.length + password.length + 2; |
122 char *upwdbuf = malloc(upwdlen); |
126 char *upwdbuf = malloc(upwdlen); |
123 snprintf(upwdbuf, upwdlen, "%s:%s", user, password); |
127 snprintf(upwdbuf, upwdlen, "%.*s:%.*s", (int)user.length, user.ptr, (int)password.length, password.ptr); |
124 curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf); |
128 curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf); |
125 free(upwdbuf); |
129 free(upwdbuf); |
126 } |
130 } |
127 } |
131 } |
128 |
132 |