Git-Url: http://git.frugalware.org/gitweb/gitweb.cgi?p=pacman-g2.git;a=commitdiff;h=7ce09c5120275cc65bf623042b5b695e8dce5a53
commit 7ce09c5120275cc65bf623042b5b695e8dce5a53 Author: Michel Hermier <herm...@frugalware.org> Date: Sat Nov 16 11:43:23 2013 +0100 libpacman: Add pacman_downloadstate_begin and remove PM_OPT_DLT0. diff --git a/doc/libpacman-changes.txt b/doc/libpacman-changes.txt index 99ddc6e..d6ac707 100644 --- a/doc/libpacman-changes.txt +++ b/doc/libpacman-changes.txt @@ -44,6 +44,8 @@ pmconflict_t: is now public and deprecate PM_CONFLICT. pmdb_t: is now public and deprecate PM_DB. +pacman_downloadstate_begin: Access to download start time. + pacman_downloadstate_resume: Access to resume download size. pacman_downloadstate_size: Access to final download size. diff --git a/lib/libpacman/handle.c b/lib/libpacman/handle.c index 49ff507..d36cff6 100644 --- a/lib/libpacman/handle.c +++ b/lib/libpacman/handle.c @@ -234,9 +234,6 @@ int _pacman_handle_set_option(pmhandle_t *ph, unsigned char val, unsigned long d case PM_OPT_DLFNM: pm_dlfnm = (char *)data; break; - case PM_OPT_DLT0: - pm_dlt0 = (struct timeval *)data; - break; case PM_OPT_DLT: pm_dlt = (struct timeval *)data; break; @@ -349,7 +346,6 @@ int _pacman_handle_get_option(pmhandle_t *ph, unsigned char val, long *data) case PM_OPT_OLDDELAY: *data = (long)ph->olddelay; break; case PM_OPT_LOGMASK: *data = pm_logmask; break; case PM_OPT_DLFNM: *data = (long)pm_dlfnm; break; - case PM_OPT_DLT0: *data = (long)pm_dlt0; break; case PM_OPT_DLT: *data = (long)pm_dlt; break; case PM_OPT_DLRATE: *data = (long)pm_dlrate; break; case PM_OPT_DLXFERED1: *data = (long)pm_dlxfered1; break; diff --git a/lib/libpacman/pacman.c b/lib/libpacman/pacman.c index 1ee8327..7b3fb1c 100644 --- a/lib/libpacman/pacman.c +++ b/lib/libpacman/pacman.c @@ -417,6 +417,19 @@ pmlist_t *pacman_db_getgrpcache(pmdb_t *db) * @{ */ +/** Get the download start time + * @param downloadstate pointer to the download state to get the informations from. + * @return the size of the file at the start of download resume of the file or ((off_t) -1) in case of error. + */ +int pacman_downloadstate_begin(const pmdownloadstate_t *downloadstate, struct timeval *timeval) +{ + ASSERT(downloadstate != NULL, return -1); + ASSERT(timeval != NULL, return -1); + + *timeval = downloadstate->dst_begin; + return 0; +} + /** Get the size at the start of the download resume * @param downloadstate pointer to the download state to get the informations from. * @return the size of the file at the start of download resume of the file or ((off_t) -1) in case of error. diff --git a/lib/libpacman/pacman.h b/lib/libpacman/pacman.h index 17dd85b..6e01375 100644 --- a/lib/libpacman/pacman.h +++ b/lib/libpacman/pacman.h @@ -118,7 +118,6 @@ enum { PM_OPT_NOPASSIVEFTP, PM_OPT_DLCB, PM_OPT_DLFNM, - PM_OPT_DLT0, PM_OPT_DLT, PM_OPT_DLRATE, PM_OPT_DLXFERED1, @@ -173,6 +172,7 @@ pmlist_t *pacman_db_test(pmdb_t *db); * Download states */ +int pacman_downloadstate_begin(const pmdownloadstate_t *downloadstate, struct timeval *timeval); off_t pacman_downloadstate_resume(const pmdownloadstate_t *downloadstate); off_t pacman_downloadstate_size(const pmdownloadstate_t *downloadstate); off_t pacman_downloadstate_tell(const pmdownloadstate_t *downloadstate); diff --git a/lib/libpacman/server.c b/lib/libpacman/server.c index cdfe5f4..adf5cde 100644 --- a/lib/libpacman/server.c +++ b/lib/libpacman/server.c @@ -48,7 +48,7 @@ pacman_trans_cb_download pm_dlcb = NULL; /* progress bar */ char *pm_dlfnm=NULL; -struct timeval *pm_dlt0=NULL, *pm_dlt=NULL; +struct timeval *pm_dlt=NULL; float *pm_dlrate=NULL; int *pm_dlxfered1=NULL; unsigned int *pm_dleta_h=NULL, *pm_dleta_m=NULL, *pm_dleta_s=NULL; @@ -377,9 +377,9 @@ int _pacman_downloadfiles_forreal(pmlist_t *servers, const char *localpath, downloadstate.dst_resume = 0; /* ETA setup */ - if(pm_dlt0 && pm_dlt && pm_dlrate && pm_dlxfered1 && pm_dleta_h && pm_dleta_m && pm_dleta_s) { - gettimeofday(pm_dlt0, NULL); - *pm_dlt = *pm_dlt0; + gettimeofday(&downloadstate.dst_begin, NULL); + if(pm_dlt && pm_dlrate && pm_dlxfered1 && pm_dleta_h && pm_dleta_m && pm_dleta_s) { + *pm_dlt = downloadstate.dst_begin; *pm_dlrate = 0; *pm_dlxfered1 = 0; *pm_dleta_h = 0; diff --git a/lib/libpacman/server.h b/lib/libpacman/server.h index 188f303..f56b533 100644 --- a/lib/libpacman/server.h +++ b/lib/libpacman/server.h @@ -45,6 +45,7 @@ typedef struct __pmserver_t { struct __pmdownloadstate_t { // FIXME: change int to off_t when the download backend will permit that. + struct timeval dst_begin; int dst_resume; int dst_size; int dst_tell; @@ -62,7 +63,7 @@ extern pacman_trans_cb_download pm_dlcb; /* progress bar */ extern char *pm_dlfnm; -extern struct timeval *pm_dlt0, *pm_dlt; +extern struct timeval *pm_dlt; extern float *pm_dlrate; extern int *pm_dlxfered1; extern unsigned int *pm_dleta_h, *pm_dleta_m, *pm_dleta_s; diff --git a/src/pacman-g2/download.c b/src/pacman-g2/download.c index d88f08d..b78cd9f 100644 --- a/src/pacman-g2/download.c +++ b/src/pacman-g2/download.c @@ -41,7 +41,7 @@ /* progress bar */ char sync_fnm[PM_DLFNM_LEN+1]; -struct timeval t0, t; +struct timeval t; float rate; int xfered1; unsigned int eta_h, eta_m, eta_s, remain, howmany; @@ -88,7 +88,7 @@ int log_progress(const pmdownloadstate_t *downloadstate) gettimeofday(&t1, NULL); if(xfered+offset == fsz) { - t = t0; + pacman_downloadstate_begin(downloadstate, &t); } timediff = t1.tv_sec-t.tv_sec + (float)(t1.tv_usec-t.tv_usec) / 1000000; diff --git a/src/pacman-g2/download.h b/src/pacman-g2/download.h index ddbd58b..257dd26 100644 --- a/src/pacman-g2/download.h +++ b/src/pacman-g2/download.h @@ -25,7 +25,7 @@ extern char sync_fnm[PM_DLFNM_LEN+1]; extern int offset; -extern struct timeval t0, t; +extern struct timeval t; extern float rate; extern int xfered1; extern unsigned int eta_h, eta_m, eta_s, remain, howmany; diff --git a/src/pacman-g2/pacman-g2.c b/src/pacman-g2/pacman-g2.c index 2cbd6ab..fd0c57c 100644 --- a/src/pacman-g2/pacman-g2.c +++ b/src/pacman-g2/pacman-g2.c @@ -575,10 +575,6 @@ int main(int argc, char *argv[]) ERR(NL, _("failed to set option DLFNM (%s)\n"), pacman_strerror(pm_errno)); cleanup(1); } - if(pacman_set_option(PM_OPT_DLT0, (long)&t0) == -1) { - ERR(NL, _("failed to set option DLT0 (%s)\n"), pacman_strerror(pm_errno)); - cleanup(1); - } if(pacman_set_option(PM_OPT_DLT, (long)&t) == -1) { ERR(NL, _("failed to set option DLT (%s)\n"), pacman_strerror(pm_errno)); cleanup(1); _______________________________________________ Frugalware-git mailing list Frugalware-git@frugalware.org http://frugalware.org/mailman/listinfo/frugalware-git