libidav/session.c

changeset 796
81e0f67386a6
parent 790
7110b37f2a6b
child 805
bff983370565
equal deleted inserted replaced
795:05647e862a17 796:81e0f67386a6
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

mercurial