X-Git-Url: https://git.wh0rd.org/?a=blobdiff_plain;f=dump%2Foptr.c;h=b8e6ff5e28cdeaf756b95c41572ba9007a2cd7dd;hb=43460f04f3920ae39f345a2fb39d000a890a4283;hp=ced42623819533dab97f7eab32f99c3bfd02b914;hpb=51b01afee9aa77a4ac099dcf7ce74d67deaf2d3e;p=dump.git diff --git a/dump/optr.c b/dump/optr.c index ced4262..b8e6ff5 100644 --- a/dump/optr.c +++ b/dump/optr.c @@ -2,7 +2,8 @@ * Ported to Linux's Second Extended File System as part of the * dump and restore backup suit * Remy Card , 1994-1997 - * Stelian Pop , 1999-2000 + * Stelian Pop , 1999-2000 + * Stelian Pop - AlcĂ´ve , 2000 */ /*- @@ -40,9 +41,10 @@ #ifndef lint static const char rcsid[] = - "$Id: optr.c,v 1.12 2000/11/10 11:48:31 stelian Exp $"; + "$Id: optr.c,v 1.21 2001/03/19 13:22:48 stelian Exp $"; #endif /* not lint */ +#include #include #include #include @@ -63,6 +65,7 @@ static const char rcsid[] = #include #include #include +#include #endif #include "dump.h" @@ -321,7 +324,7 @@ time_t tschedule = 0; void timeest(void) { - time_t tnow, deltat; + time_t tnow; #ifdef __linux__ (void) time4(&tnow); @@ -329,17 +332,13 @@ timeest(void) (void) time((time_t *) &tnow); #endif if (tnow >= tschedule) { + char *buf = mktimeest(tnow); tschedule = tnow + 300; - if (blockswritten < 500) - return; - if (blockswritten > tapesize) - tapesize = blockswritten; - deltat = tstart_writing - tnow + - (1.0 * (tnow - tstart_writing)) - / blockswritten * tapesize; - msg("%3.2f%% done, finished in %d:%02d\n", - (blockswritten * 100.0) / tapesize, - deltat / 3600, (deltat % 3600) / 60); + if (buf) { + fprintf(stderr, " DUMP: "); + fwrite(buf, strlen(buf), 1, stderr); + fflush(stderr); + } } } @@ -506,7 +505,7 @@ fstabsearch(const char *key) { register struct pfstab *pf; register struct fstab *fs; - char *rn; + const char *rn; for (pf = table; pf != NULL; pf = pf->pf_next) { fs = pf->pf_fstab; @@ -569,11 +568,14 @@ static void print_wmsg(char arg, int dumpme, const char *dev, int level, const char *mtpt, time_t ddate) { - char *date; + char *date = NULL; - if (ddate) + if (ddate) { + char *d; date = (char *)ctime(&ddate); - //date[16] = '\0'; /* blast away seconds and year */ + d = strchr(date, '\n'); + if (d) *d = '\0'; + } if (!dumpme && arg == 'w') return; @@ -584,10 +586,10 @@ print_wmsg(char arg, int dumpme, const char *dev, int level, mtpt ? mtpt : ""); if (ddate) - printf(" Level %c, Date %s\n", + printf("Level %c, Date %s\n", level, date); else - printf(" never\n"); + printf("never\n"); } /* @@ -627,8 +629,7 @@ lastdump(char arg) /* w ==> just what to do; W ==> most recent dumps */ sizeof(dtwalk->dd_name)) == 0) continue; lastname = dtwalk->dd_name; - if ((dt = dtwalk->dd_fstab) != NULL && - dt->fs_freq != 0) { + if ((dt = dtwalk->dd_fstab) != NULL) { /* Overload fs_freq as dump level and * fs_passno as date, because we can't * change struct fstab format. @@ -636,11 +637,11 @@ lastdump(char arg) /* w ==> just what to do; W ==> most recent dumps */ * filesystem needs to be dumped. */ dt->fs_passno = dtwalk->dd_ddate; - if (dtwalk->dd_ddate < - tnow - (dt->fs_freq * 86400)) - dt->fs_freq = -dtwalk->dd_level; + if (dt->fs_freq > 0 && (dtwalk->dd_ddate < + tnow - (dt->fs_freq * 86400))) + dt->fs_freq = -dtwalk->dd_level - 1; else - dt->fs_freq = dtwalk->dd_level; + dt->fs_freq = dtwalk->dd_level + 1; } } @@ -655,9 +656,9 @@ lastdump(char arg) /* w ==> just what to do; W ==> most recent dumps */ if (strncmp(dt->fs_vfstype, *type, sizeof(dt->fs_vfstype)) == 0) { const char *disk = get_device_name(dt->fs_spec); - print_wmsg(arg, dt->fs_freq < 0 || !dt->fs_passno, + print_wmsg(arg, dt->fs_freq < 0, disk ? disk : dt->fs_spec, - dt->fs_freq < 0 ? -dt->fs_freq : dt->fs_freq, + dt->fs_freq < 0 ? -dt->fs_freq - 1 : dt->fs_freq - 1, dt->fs_file, dt->fs_passno); }