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->handle = curl_easy_init(); |
66 sn->handle = curl_easy_init(); |
67 curl_easy_setopt(sn->handle, CURLOPT_FOLLOWLOCATION, 1L); |
67 curl_easy_setopt(sn->handle, CURLOPT_FOLLOWLOCATION, 1L); |
|
68 |
|
69 curl_easy_setopt(sn->handle, CURLOPT_SSL_VERIFYPEER, 0); // TODO: remove |
68 |
70 |
69 // set proxy |
71 // set proxy |
70 DavProxy *proxy = sstrprefix(url, S("https")) ? context->https_proxy |
72 DavProxy *proxy = sstrprefix(url, S("https")) ? context->https_proxy |
71 : context->http_proxy; |
73 : context->http_proxy; |
72 |
74 |
135 } |
137 } |
136 |
138 |
137 void dav_session_set_error(DavSession *sn, CURLcode c, int status) { |
139 void dav_session_set_error(DavSession *sn, CURLcode c, int status) { |
138 if(status > 0) { |
140 if(status > 0) { |
139 switch(status) { |
141 switch(status) { |
140 default: sn->error = DAV_ERROR; break; |
142 default: { |
|
143 switch(c) { |
|
144 default: sn->error = DAV_ERROR; |
|
145 } |
|
146 break; |
|
147 } |
141 case 401: sn->error = DAV_UNAUTHORIZED; break; |
148 case 401: sn->error = DAV_UNAUTHORIZED; break; |
142 case 403: sn->error = DAV_FORBIDDEN; break; |
149 case 403: sn->error = DAV_FORBIDDEN; break; |
143 case 404: sn->error = DAV_NOT_FOUND; break; |
150 case 404: sn->error = DAV_NOT_FOUND; break; |
144 case 405: sn->error = DAV_METHOD_NOT_ALLOWED; break; |
151 case 405: sn->error = DAV_METHOD_NOT_ALLOWED; break; |
145 case 409: sn->error = DAV_CONFLICT; break; |
152 case 409: sn->error = DAV_CONFLICT; break; |
146 } |
153 } |
147 } else { |
154 } else { |
148 sn->error = DAV_ERROR; |
155 switch(c) { |
|
156 case CURLE_UNSUPPORTED_PROTOCOL: sn->error = DAV_UNSUPPORTED_PROTOCOL; break; |
|
157 case CURLE_COULDNT_RESOLVE_PROXY: sn->error = DAV_COULDNT_RESOLVE_PROXY; break; |
|
158 case CURLE_COULDNT_RESOLVE_HOST: sn->error = DAV_COULDNT_RESOLVE_HOST; break; |
|
159 case CURLE_COULDNT_CONNECT: sn->error = DAV_COULDNT_CONNECT; break; |
|
160 case CURLE_OPERATION_TIMEDOUT: sn->error = DAV_TIMEOUT; break; |
|
161 case CURLE_SSL_CONNECT_ERROR: |
|
162 case CURLE_PEER_FAILED_VERIFICATION: |
|
163 case CURLE_SSL_ENGINE_NOTFOUND: |
|
164 case CURLE_SSL_ENGINE_SETFAILED: |
|
165 case CURLE_SSL_CERTPROBLEM: |
|
166 case CURLE_SSL_CIPHER: |
|
167 case CURLE_SSL_CACERT: |
|
168 case CURLE_SSL_CACERT_BADFILE: |
|
169 case CURLE_SSL_SHUTDOWN_FAILED: |
|
170 case CURLE_SSL_CRL_BADFILE: |
|
171 case CURLE_SSL_ISSUER_ERROR: sn->error = DAV_SSL_ERROR; break; |
|
172 default: sn->error = DAV_ERROR; break; |
|
173 } |
149 } |
174 } |
150 if(c != CURLE_OK) { |
175 if(c != CURLE_OK) { |
151 sn->errorstr = curl_easy_strerror(c); |
176 sn->errorstr = curl_easy_strerror(c); |
152 } else { |
177 } else { |
153 sn->errorstr = NULL; |
178 sn->errorstr = NULL; |