14#ifndef ZYPP_MEDIA_CURLHELPER_H_INCLUDED
15#define ZYPP_MEDIA_CURLHELPER_H_INCLUDED
22#define CONNECT_TIMEOUT 60
23#define TRANSFER_TIMEOUT_MAX 60 * 60
24#define DETECT_DIR_INDEX 0
26#define EXPLICITLY_NO_PROXY "_none_"
28#undef CURLVERSION_AT_LEAST
29#define CURLVERSION_AT_LEAST(M,N,O) LIBCURL_VERSION_NUM >= ((((M)<<8)+(N))<<8)+(O)
39 if (
char *ptr = ::getenv(
"ZYPP_MEDIA_CURL_DEBUG"); ptr && *ptr )
80 void updateStats(
double dltotal = 0.0,
double dlnow = 0.0 );
102int log_curl(CURL *curl, curl_infotype info,
char *ptr,
size_t len,
void *max_lvl);
115const char * anonymousIdHeader();
121const char * distributionFlavorHeader();
130void curlEscape( std::string & str_r,
const char char_r,
const std::string & escaped_r );
Store and operate with byte count.
void fillSettingsFromUrl(const Url &url, media::TransferSettings &s)
Fills the settings structure using options passed on the url for example ?timeout=x&proxy=foo.
size_t log_redirects_curl(char *ptr, size_t size, size_t nmemb, void *userdata)
void globalInitCurlOnce()
zypp::Url propagateQueryParams(zypp::Url url_r, const zypp::Url &template_r)
std::string curlUnEscape(std::string text_r)
std::string curlEscapedPath(std::string path_r)
const char * agentString()
initialized only once, this gets the agent string which also includes the curl version
void fillSettingsSystemProxy(const Url &url, media::TransferSettings &s)
Reads the system proxy configuration and fills the settings structure proxy information.
Url clearQueryString(const Url &url)
void curlEscape(std::string &str_r, const char char_r, const std::string &escaped_r)
int log_curl(CURL *curl, curl_infotype info, char *ptr, size_t len, void *max_lvl)
int ZYPP_MEDIA_CURL_IPRESOLVE()
4/6 to force IPv4/v6
long ZYPP_MEDIA_CURL_DEBUG()
Long number for setting CURLOPT_DEBUGDATA.
TInt strtonum(const C_Str &str)
Parsing numbers from string.
Easy-to use interface to the ZYPP dependency resolver.
zypp::ByteCount _expectedFileSize
ProgressData(CURL *_curl, time_t _timeout=0, const zypp::Url &_url=zypp::Url(), zypp::ByteCount expectedFileSize_r=0, zypp::callback::SendReport< zypp::media::DownloadProgressReport > *_report=nullptr)
void updateStats(double dltotal=0.0, double dlnow=0.0)
int _dnlPercent
Percent completed or 0 if _dnlTotal is unknown.
time_t _timeRcv
Start of no-data timeout.
time_t _timeLast
Start last period(~1sec)
int reportProgress() const
double _drateLast
Download rate in last period.
double _dnlTotal
Bytes to download or 0 if unknown.
double _dnlNow
Bytes downloaded now.
double _drateTotal
Download rate so far.
zypp::callback::SendReport< zypp::media::DownloadProgressReport > * report
double _dnlLast
Bytes downloaded at period start.
time_t _timeStart
Start total stats.