libidav/session.c

branch
dav-2
changeset 922
42ecf0e5075a
parent 919
7f250903d903
equal deleted inserted replaced
921:3ffee649f0b1 922:42ecf0e5075a
38 #include "session.h" 38 #include "session.h"
39 #include "resource.h" 39 #include "resource.h"
40 #include "methods.h" 40 #include "methods.h"
41 #include "atomic.h" 41 #include "atomic.h"
42 42
43 DavSession* dav_session_new(DavContext *context, char *base_url) { 43 DavSession* dav_session_new(DavContext *context, const char *base_url) {
44 if(!base_url) { 44 if(!base_url) {
45 return NULL; 45 return NULL;
46 } 46 }
47 cxstring url = cx_str(base_url); 47 cxstring url = cx_str(base_url);
48 if(url.length == 0) { 48 if(url.length == 0) {
103 return sn; 103 return sn;
104 } 104 }
105 105
106 DavSession* dav_session_new_auth( 106 DavSession* dav_session_new_auth(
107 DavContext *context, 107 DavContext *context,
108 char *base_url, 108 const char *base_url,
109 char *user, 109 const char *user,
110 char *password) 110 const char *password)
111 { 111 {
112 DavSession *sn = dav_session_new(context, base_url); 112 DavSession *sn = dav_session_new(context, base_url);
113 if(!sn) { 113 if(!sn) {
114 return NULL; 114 return NULL;
115 } 115 }
169 curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf); 169 curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf);
170 free(upwdbuf); 170 free(upwdbuf);
171 } 171 }
172 } 172 }
173 173
174 void dav_session_set_baseurl(DavSession *sn, char *base_url) { 174 void dav_session_set_baseurl(DavSession *sn, const char *base_url) {
175 const CxAllocator *a = sn->mp->allocator; 175 const CxAllocator *a = sn->mp->allocator;
176 if(sn->base_url) { 176 cxFree(a, sn->base_url);
177 cxFree(a, sn->base_url);
178 }
179 177
180 cxstring url = cx_str(base_url); 178 cxstring url = cx_str(base_url);
181 if(url.ptr[url.length - 1] == '/') { 179 if(url.ptr[url.length - 1] == '/') {
182 cxmutstr url_m = cx_strdup_a(a, cx_str(base_url)); 180 cxmutstr url_m = cx_strdup_a(a, cx_str(base_url));
183 sn->base_url = url_m.ptr; 181 sn->base_url = url_m.ptr;

mercurial