57 char curl_errbuf[CURL_ERROR_SIZE];
59 this->stream = stream;
60 curl = curl_easy_init();
61 curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
62 curl_easy_setopt(curl, CURLOPT_ERRORBUFFER, curl_errbuf);
63 curl_easy_setopt(curl, CURLOPT_USERAGENT,
"Mozilla/5.0");
64 curl_easy_setopt(curl, CURLOPT_NOPROGRESS, 1L);
65 curl_easy_setopt(curl, CURLOPT_VERBOSE, 0L);
67 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
68 curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
69 curl_easy_setopt(curl, CURLOPT_WRITEFUNCTION, write_cb);
70 curl_easy_setopt(curl, CURLOPT_WRITEDATA,
this);
71 curl_easy_setopt(curl, CURLOPT_FAILONERROR, 1L);
72 int code = curl_easy_perform(curl);
73 curl_easy_cleanup(curl);
74 if (code != CURLE_OK) {
75 wxLogWarning(
"Failed to get '%s' [%s]\n", url, curl_errbuf);
77 error_msg = std::string(curl_errbuf);
101 char curl_errbuf[CURL_ERROR_SIZE] = {0};
102 double filesize = 0.0;
104 curl = curl_easy_init();
105 curl_easy_setopt(curl, CURLOPT_URL, url.c_str());
106 curl_easy_setopt(curl, CURLOPT_NOBODY, 1L);
107 curl_easy_setopt(curl, CURLOPT_FILETIME, 1L);
108 curl_easy_setopt(curl, CURLOPT_HEADERFUNCTION, throw_cb);
109 curl_easy_setopt(curl, CURLOPT_FOLLOWLOCATION, 1L);
110 curl_easy_setopt(curl, CURLOPT_HEADER, 0L);
112 curl_easy_setopt(curl, CURLOPT_SSL_VERIFYPEER, 0L);
114 int r = curl_easy_perform(curl);
116 r = curl_easy_getinfo(curl, CURLINFO_CONTENT_LENGTH_DOWNLOAD, &filesize);
118 curl_easy_cleanup(curl);
119 wxLogMessage(
"filesize %s: %d bytes\n", url.c_str(), (
int)filesize);
122 error_msg = std::string(curl_errbuf);
125 return (
long)filesize;