385 } |
385 } |
386 |
386 |
387 return url.ptr; |
387 return url.ptr; |
388 } |
388 } |
389 |
389 |
390 char* util_get_url(DavSession *sn, char *href) { |
390 char* util_get_url(DavSession *sn, const char *href) { |
391 sstr_t base = sstr(sn->base_url); |
391 scstr_t base = scstr(sn->base_url); |
392 sstr_t href_str = sstr(href); |
392 scstr_t href_str = scstr(href); |
393 |
393 |
394 char *base_path = util_url_path(sn->base_url); |
394 char *base_path = util_url_path(sn->base_url); |
395 base.length -= strlen(base_path); |
395 base.length -= strlen(base_path); |
396 |
396 |
397 sstr_t url = sstrcat(2, base, href_str); |
397 sstr_t url = sstrcat(2, base, href_str); |
398 return url.ptr; |
398 return url.ptr; |
399 } |
399 } |
400 |
400 |
401 void util_set_url(DavSession *sn, char *href) { |
401 void util_set_url(DavSession *sn, const char *href) { |
402 char *url = util_get_url(sn, href); |
402 char *url = util_get_url(sn, href); |
403 curl_easy_setopt(sn->handle, CURLOPT_URL, url); |
403 curl_easy_setopt(sn->handle, CURLOPT_URL, url); |
404 free(url); |
404 free(url); |
405 } |
405 } |
406 |
406 |
482 66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, |
482 66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, |
483 66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, |
483 66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, |
484 66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, |
484 66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66,66, |
485 66,66,66,66,66,66 |
485 66,66,66,66,66,66 |
486 }; |
486 }; |
487 char* util_base64decode_len(char* in, int *outlen) { |
487 char* util_base64decode_len(const char* in, int *outlen) { |
488 /* code is mostly from wikibooks */ |
488 /* code is mostly from wikibooks */ |
489 |
489 |
490 size_t inlen = strlen(in); |
490 size_t inlen = strlen(in); |
491 size_t bufsize = (inlen*3) / 4; |
491 size_t bufsize = (inlen*3) / 4; |
492 char *outbuf = malloc(bufsize+1); |
492 char *outbuf = malloc(bufsize+1); |
493 *outlen = -1; |
493 *outlen = -1; |
494 |
494 |
495 unsigned char *out = (unsigned char*)outbuf; |
495 unsigned char *out = (unsigned char*)outbuf; |
496 |
496 |
497 char *end = in + inlen; |
497 const char *end = in + inlen; |
498 char iter = 0; |
498 char iter = 0; |
499 uint32_t buf = 0; |
499 uint32_t buf = 0; |
500 size_t len = 0; |
500 size_t len = 0; |
501 |
501 |
502 while (in < end) { |
502 while (in < end) { |