libidav/session.c

changeset 100
f4127c4d1018
parent 75
56962faf2b42
child 104
6fb4d24d9df9
equal deleted inserted replaced
88:4d6b03bd7034 100:f4127c4d1018
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;

mercurial