Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/usr.sbin/sysinst When retrying sets during extraction, reset...



details:   https://anonhg.NetBSD.org/src/rev/dc9c8826f73c
branches:  trunk
changeset: 1006751:dc9c8826f73c
user:      martin <martin%NetBSD.org@localhost>
date:      Sun Jan 26 14:37:29 2020 +0000

description:
When retrying sets during extraction, reset the relevant statistics
to avoid counting retried sets multiple times.

Reported by kim.

diffstat:

 usr.sbin/sysinst/util.c |  16 +++++++++++++---
 1 files changed, 13 insertions(+), 3 deletions(-)

diffs (45 lines):

diff -r c37542569f7a -r dc9c8826f73c usr.sbin/sysinst/util.c
--- a/usr.sbin/sysinst/util.c   Sun Jan 26 14:36:35 2020 +0000
+++ b/usr.sbin/sysinst/util.c   Sun Jan 26 14:37:29 2020 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: util.c,v 1.41 2020/01/20 21:26:35 martin Exp $ */
+/*     $NetBSD: util.c,v 1.42 2020/01/26 14:37:29 martin Exp $ */
 
 /*
  * Copyright 1997 Piermont Information Systems Inc.
@@ -1085,7 +1085,7 @@
 {
        distinfo *dist;
        int status;
-       int set;
+       int set, olderror, oldfound;
 
        /* Ensure mountpoint for distribution files exists in current root. */
        (void)mkdir("/mnt2", S_IRWXU| S_IRGRP|S_IXGRP | S_IROTH|S_IXOTH);
@@ -1115,6 +1115,10 @@
                if (set_status[set] != (SET_VALID | SET_SELECTED))
                        continue;
 
+               /* save stats, in case we will retry */
+               oldfound = tarstats.nfound;
+               olderror = tarstats.nerror;
+
                if (status != SET_OK) {
                        /* This might force a redraw.... */
                        clearok(curscr, 1);
@@ -1151,8 +1155,14 @@
 
                /* Try to extract this set */
                status = extract_file(dist, update);
-               if (status == SET_RETRY)
+               if (status == SET_RETRY) {
+                       /* do this set again */
                        dist--;
+                       /* and reset statistics to what we had before this
+                        * set */
+                       tarstats.nfound = oldfound;
+                       tarstats.nerror = olderror;
+               }
        }
 
 #ifdef MD_SET_EXTRACT_FINALIZE



Home | Main Index | Thread Index | Old Index