diff options
author | Dan McGee <dan@archlinux.org> | 2012-01-11 22:39:52 +0100 |
---|---|---|
committer | Dan McGee <dan@archlinux.org> | 2012-01-19 05:10:06 +0100 |
commit | b3612e9cc198f198b3806efa461bf6fc04dd4502 (patch) | |
tree | 85d6018836a02c4ed4cb1211d3ec73d34a2259c9 /lib/libalpm/handle.c | |
parent | 6e8ca48cbb22c328deab56b1740be04ea7ddba6e (diff) | |
download | pacman-b3612e9cc198f198b3806efa461bf6fc04dd4502.tar.gz pacman-b3612e9cc198f198b3806efa461bf6fc04dd4502.tar.xz |
Allow UseDelta option to specify a delta ratio
Rework the frontend and backend to allow passing a ratio value in for
UseDelta rather than having a hardcoded #define-d 0.7 value always used.
This is useful for those with fast connections, who would likely benefit
from tuning this ratio to lower values; it is also useful for general
testing purposes.
The libalpm API changes for this, but we do support the old config file
format with a no-value 'UseDelta' option; in this case we simply use the
old default of 0.7.
We clamp the ratio values to a sane range between 0.0 and 2.0, allowing
ratios above 1.0 for testing purposes.
Signed-off-by: Dan McGee <dan@archlinux.org>
Diffstat (limited to 'lib/libalpm/handle.c')
-rw-r--r-- | lib/libalpm/handle.c | 12 |
1 files changed, 8 insertions, 4 deletions
diff --git a/lib/libalpm/handle.c b/lib/libalpm/handle.c index 8e2e3c73..2187dca9 100644 --- a/lib/libalpm/handle.c +++ b/lib/libalpm/handle.c @@ -43,6 +43,7 @@ alpm_handle_t *_alpm_handle_new(void) alpm_handle_t *handle; CALLOC(handle, 1, sizeof(alpm_handle_t), return NULL); + handle->deltaratio = 0.0; return handle; } @@ -252,10 +253,10 @@ const char SYMEXPORT *alpm_option_get_arch(alpm_handle_t *handle) return handle->arch; } -int SYMEXPORT alpm_option_get_usedelta(alpm_handle_t *handle) +double SYMEXPORT alpm_option_get_deltaratio(alpm_handle_t *handle) { CHECK_HANDLE(handle, return -1); - return handle->usedelta; + return handle->deltaratio; } int SYMEXPORT alpm_option_get_checkspace(alpm_handle_t *handle) @@ -597,10 +598,13 @@ int SYMEXPORT alpm_option_set_arch(alpm_handle_t *handle, const char *arch) return 0; } -int SYMEXPORT alpm_option_set_usedelta(alpm_handle_t *handle, int usedelta) +int SYMEXPORT alpm_option_set_deltaratio(alpm_handle_t *handle, double ratio) { CHECK_HANDLE(handle, return -1); - handle->usedelta = usedelta; + if(ratio < 0.0 || ratio > 2.0) { + RET_ERR(handle, ALPM_ERR_WRONG_ARGS, -1); + } + handle->deltaratio = ratio; return 0; } |