# download.max_silent_tries = 5
##
+## Maximum time in seconds that you allow a transfer operation to take.
+##
+## This is useful for preventing your batch jobs from hanging for hours due
+## to slow networks or links going down. Limiting operations to less than a
+## few minutes risk aborting perfectly normal operations.
+##
+## Valid values: [0,3600]
+## Default value: 180
+##
+# download.transfer_timeout = 180
+
+##
## Whether to consider using a .delta.rpm when downloading a package
##
## Valid values: boolean
, download_min_download_speed ( 0 )
, download_max_download_speed ( 0 )
, download_max_silent_tries ( 5 )
+ , download_transfer_timeout ( 180 )
, commit_downloadMode ( DownloadDefault )
, solver_onlyRequires ( false )
, solver_allowVendorChange ( false )
{
str::strtonum(value, download_max_silent_tries);
}
+ else if ( entry == "download.transfer_timeout" )
+ {
+ str::strtonum(value, download_transfer_timeout);
+ if ( download_transfer_timeout < 0 ) download_transfer_timeout = 0;
+ else if ( download_transfer_timeout > 3600 ) download_transfer_timeout = 3600;
+ }
else if ( entry == "commit.downloadMode" )
{
commit_downloadMode.set( deserializeDownloadMode( value ) );
int download_min_download_speed;
int download_max_download_speed;
int download_max_silent_tries;
+ int download_transfer_timeout;
Option<DownloadMode> commit_downloadMode;
long ZConfig::download_max_silent_tries() const
{ return _pimpl->download_max_silent_tries; }
+ long ZConfig::download_transfer_timeout() const
+ { return _pimpl->download_transfer_timeout; }
+
DownloadMode ZConfig::commit_downloadMode() const
{ return _pimpl->commit_downloadMode; }
*/
long download_max_silent_tries() const;
+ /**
+ * Maximum time in seconds that you allow a transfer operation to take.
+ */
+ long download_transfer_timeout() const;
+
/** Whether to consider using a deltarpm when downloading a package.
* Config option <tt>download.use_deltarpm (true)</tt>
#include "zypp/thread/Once.h"
#include "zypp/Target.h"
#include "zypp/ZYppFactory.h"
+#include "zypp/ZConfig.h"
#include <cstdlib>
#include <sys/types.h>
#define DETECT_DIR_INDEX 0
#define CONNECT_TIMEOUT 60
-#define TRANSFER_TIMEOUT 60 * 3
#define TRANSFER_TIMEOUT_MAX 60 * 60
#define EXPLICITLY_NO_PROXY "_none_"
vol_settings.addHeader(distributionFlavorHeader());
vol_settings.addHeader("Pragma:");
- _settings.setTimeout(TRANSFER_TIMEOUT);
+ _settings.setTimeout(ZConfig::instance().download_transfer_timeout());
_settings.setConnectTimeout(CONNECT_TIMEOUT);
_settings.setUserAgentString(agentString());