61 memcpy(url_str, base_url, url.length); |
61 memcpy(url_str, base_url, url.length); |
62 url_str[url.length] = '/'; |
62 url_str[url.length] = '/'; |
63 url_str[url.length + 1] = '\0'; |
63 url_str[url.length + 1] = '\0'; |
64 sn->base_url = url_str; |
64 sn->base_url = url_str; |
65 } |
65 } |
66 sn->context = context; |
|
67 sn->handle = curl_easy_init(); |
66 sn->handle = curl_easy_init(); |
68 //curl_easy_setopt(sn->handle, CURLOPT_VERBOSE, 1L); |
|
69 //curl_easy_setopt(sn->handle, CURLOPT_STDERR, stderr); |
|
70 curl_easy_setopt(sn->handle, CURLOPT_FOLLOWLOCATION, 1L); |
67 curl_easy_setopt(sn->handle, CURLOPT_FOLLOWLOCATION, 1L); |
71 |
68 |
72 // set proxy |
69 // set proxy |
73 DavProxy *proxy = sstrprefix(url, S("https")) ? context->https_proxy |
70 DavProxy *proxy = sstrprefix(url, S("https")) ? context->https_proxy |
74 : context->http_proxy; |
71 : context->http_proxy; |
92 } |
89 } |
93 |
90 |
94 // set url |
91 // set url |
95 curl_easy_setopt(sn->handle, CURLOPT_URL, base_url); |
92 curl_easy_setopt(sn->handle, CURLOPT_URL, base_url); |
96 |
93 |
|
94 // add to context |
97 context->sessions = ucx_list_append(context->sessions, sn); |
95 context->sessions = ucx_list_append(context->sessions, sn); |
|
96 sn->context = context; |
98 |
97 |
99 return sn; |
98 return sn; |
100 } |
99 } |
101 |
100 |
102 DavSession* dav_session_new_auth( |
101 DavSession* dav_session_new_auth( |
123 curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf); |
122 curl_easy_setopt(sn->handle, CURLOPT_USERPWD, upwdbuf); |
124 free(upwdbuf); |
123 free(upwdbuf); |
125 } |
124 } |
126 } |
125 } |
127 |
126 |
128 void dav_session_set_flags(DavSession *sn, uint32_t flags) { |
|
129 sn->flags = flags; |
|
130 } |
|
131 |
|
132 uint32_t dav_session_get_flags(DavSession *sn) { |
|
133 return sn->flags; |
|
134 } |
|
135 |
|
136 void dav_session_enable_encryption(DavSession *sn, DavKey *key, int flags) { |
127 void dav_session_enable_encryption(DavSession *sn, DavKey *key, int flags) { |
137 sn->key = key; |
128 sn->key = key; |
|
129 // TODO: review sanity |
138 if(flags != 0) { |
130 if(flags != 0) { |
139 sn->flags |= flags; |
131 sn->flags |= flags; |
140 } else { |
132 } else { |
141 sn->flags |= DAV_SESSION_ENCRYPT_CONTENT; |
133 sn->flags |= DAV_SESSION_ENCRYPT_CONTENT; |
142 } |
134 } |