--- amanda-2.4.4/restore-src/amrestore.c 2004-11-19 08:17:15.000000000 -0500 +++ amanda-2.4.5/restore-src/amrestore.c 2004-11-19 13:12:30.000000000 -0500 @@ -24,7 +24,7 @@ * file named AUTHORS, in the root directory of this distribution. */ /* - * $Id: amrestore.c,v 1.28.2.4.4.3.2.10 2004/11/19 13:17:15 martinea Exp $ + * $Id: amrestore.c,v 1.28.2.4.4.3.2.8.2.3 2004/11/19 18:12:30 martinea Exp $ * * retrieves files from an amanda tape */ @@ -482,6 +482,7 @@ char *e; char *err; char *label = NULL; + int count_error; for(fd = 3; fd < FD_SETSIZE; fd++) { /* @@ -667,24 +668,28 @@ get_pname()); } - while(file.type == F_TAPESTART || file.type == F_DUMPFILE) { - amfree(filename); - filename = make_filename(&file); + count_error=0; + while(count_error < 10) { + if(file.type == F_TAPEEND) break; found_match = 0; - for(me = match_list; me; me = me->next) { - if(disk_match(&file,me->datestamp,me->hostname,me->diskname) != 0) { - found_match = 1; - break; + if(file.type == F_DUMPFILE) { + amfree(filename); + filename = make_filename(&file); + for(me = match_list; me; me = me->next) { + if(disk_match(&file,me->datestamp,me->hostname,me->diskname) != 0) { + found_match = 1; + break; + } + } + fprintf(stderr, "%s: %3d: %s ", + get_pname(), + file_number, + found_match ? "restoring" : "skipping"); + if(file.type != F_DUMPFILE) { + print_header(stderr, &file); + } else { + fprintf(stderr, "%s\n", filename); } - } - fprintf(stderr, "%s: %3d: %s ", - get_pname(), - file_number, - found_match ? "restoring" : "skipping"); - if(file.type != F_DUMPFILE) { - print_header(stderr, &file); - } else { - fprintf(stderr, "%s\n", filename); } if(found_match) { restore(&file, filename, isafile); @@ -718,6 +723,7 @@ if((tapedev = tape_open(tapename, 0)) < 0) { error("could not open %s: %s", tapename, strerror(errno)); } + count_error++; } else { /* * If the last read got something (even an error), we can @@ -726,6 +732,7 @@ if(tapefd_fsf(tapedev, 1) < 0) { error("could not fsf %s: %s", tapename, strerror(errno)); } + count_error=0; } file_number++; read_file_header(&file, isafile); --- amanda-2.4.4/server-src/amverify.sh.in 2004-10-04 07:47:06.000000000 -0400 +++ amanda-2.4.5/server-src/amverify.sh.in 2004-11-19 13:12:30.000000000 -0500 @@ -1,6 +1,6 @@ #! /bin/sh # -# $Id: amverify.sh.in,v 1.7.2.13.4.5.2.7 2004/10/04 11:47:06 martinea Exp $ +# $Id: amverify.sh.in,v 1.7.2.13.4.5.2.6.2.2 2004/11/19 18:12:30 martinea Exp $ # # (C) 1996 by ICEM Systems GmbH # Author: Axel Zinser (fifi AT icem DOT de) @@ -428,6 +428,7 @@ FILE=`grep restoring $TEMP/amrestore.out \ | sed 's/^.*restoring //'` EOF=`grep "reached end of tape" $TEMP/amrestore.out` + EOI=`grep "reached end of information" $TEMP/amrestore.out` # amrestore: 0: restoring sundae._mnt_sol1_usr.19961127.1 if [ X"$FILE" != X"" -a X"$RESULT" = X"0" ]; then report "Checked $FILE" @@ -436,6 +437,9 @@ elif [ -n "$EOF" ]; then report "End-of-Tape detected." break + elif [ -n "$EOI" ]; then + report "End-of-Information detected." + break else report "** Error detected ($FILE)" echo "$VOLUME ($FILE):" >>$DEFECTS