libidav/session.c

changeset 225
a297c2e28fa1
parent 222
7b73058d782e
child 238
b167226fb804
equal deleted inserted replaced
224:4b55f05f4e00 225:a297c2e28fa1
176 case CURLE_SSL_ISSUER_ERROR: sn->error = DAV_SSL_ERROR; break; 176 case CURLE_SSL_ISSUER_ERROR: sn->error = DAV_SSL_ERROR; break;
177 default: sn->error = DAV_ERROR; break; 177 default: sn->error = DAV_ERROR; break;
178 } 178 }
179 } 179 }
180 if(c != CURLE_OK) { 180 if(c != CURLE_OK) {
181 sn->errorstr = curl_easy_strerror(c); 181 dav_session_set_errstr(sn, curl_easy_strerror(c));
182 } else { 182 } else {
183 sn->errorstr = NULL; 183 dav_session_set_errstr(sn, NULL);
184 } 184 }
185 }
186
187 void dav_session_set_errstr(DavSession *sn, const char *str) {
188 if(sn->errorstr) {
189 dav_session_free(sn, sn->errorstr);
190 }
191 char *errstr = NULL;
192 if(str) {
193 errstr = dav_session_strdup(sn, str);
194 }
195 sn->errorstr = errstr;
185 } 196 }
186 197
187 void dav_session_destroy(DavSession *sn) { 198 void dav_session_destroy(DavSession *sn) {
188 // remove session from context 199 // remove session from context
189 UcxList *sessions = sn->context->sessions; 200 UcxList *sessions = sn->context->sessions;
215 226
216 void dav_session_free(DavSession *sn, void *ptr) { 227 void dav_session_free(DavSession *sn, void *ptr) {
217 ucx_mempool_free(sn->mp, ptr); 228 ucx_mempool_free(sn->mp, ptr);
218 } 229 }
219 230
220 char* dav_session_strdup(DavSession *sn, char *str) { 231 char* dav_session_strdup(DavSession *sn, const char *str) {
221 return sstrdup_a(sn->mp->allocator, sstr(str)).ptr; 232 return sstrdup_a(sn->mp->allocator, sstr((char*)str)).ptr;
222 } 233 }
223 234
224 235
225 char* dav_session_create_plain_href(DavSession *sn, char *path) { 236 char* dav_session_create_plain_href(DavSession *sn, char *path) {
226 if(!DAV_ENCRYPT_NAME(sn)) { 237 if(!DAV_ENCRYPT_NAME(sn)) {

mercurial