113 return 0; |
113 return 0; |
114 } |
114 } |
115 |
115 |
116 void get_file(CURL *curl, char *url, char *path) { |
116 void get_file(CURL *curl, char *url, char *path) { |
117 curl_easy_setopt(curl, CURLOPT_URL, url); |
117 curl_easy_setopt(curl, CURLOPT_URL, url); |
|
118 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0); |
118 |
119 |
119 FILE *out = fopen(path, "w"); |
120 FILE *out = fopen(path, "w"); |
120 |
121 |
121 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); |
122 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, fwrite); |
122 curl_easy_setopt(curl, CURLOPT_WRITEDATA, out); |
123 curl_easy_setopt(curl, CURLOPT_WRITEDATA, out); |
123 |
124 |
124 CURLcode res = curl_easy_perform(curl); |
125 CURLcode res = curl_easy_perform(curl); |
125 |
126 |
126 fclose(out); |
127 fclose(out); |
|
128 // handle some errors (http://curl.haxx.se/libcurl/c/libcurl-errors.html) |
|
129 switch(res) { |
|
130 case CURLE_OK: { |
|
131 return; |
|
132 } |
|
133 case CURLE_REMOTE_ACCESS_DENIED: { |
|
134 |
|
135 break; |
|
136 } |
|
137 case CURLE_SSL_CONNECT_ERROR: { |
|
138 |
|
139 break; |
|
140 } |
|
141 case CURLE_LOGIN_DENIED: { |
|
142 |
|
143 break; |
|
144 } |
|
145 case CURLE_REMOTE_FILE_NOT_FOUND: { |
|
146 |
|
147 break; |
|
148 } |
|
149 default: { |
|
150 |
|
151 break; |
|
152 } |
|
153 } |
|
154 |
|
155 unlink(path); |
127 } |
156 } |