X-Git-Url: https://git.gag.com/?a=blobdiff_plain;f=restore-src%2Famrestore.c;h=dca74ba3c0c043fc753b9372a104b04e5bc0da02;hb=c9bb64dd8260123d77b6f7be0f051f450b193e66;hp=e1161ba755d96ef8c44ef4c297a9ba0b0eb7b039;hpb=9e3f8b799b5cfbbd61ce528e5a73794fc1bb8000;p=debian%2Famanda diff --git a/restore-src/amrestore.c b/restore-src/amrestore.c index e1161ba..dca74ba 100644 --- a/restore-src/amrestore.c +++ b/restore-src/amrestore.c @@ -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.8 2003/02/09 04:33:13 jrjackson 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 **argv; char *e; char *err; char *label = NULL; + int count_error; for(fd = 3; fd < FD_SETSIZE; fd++) { /* @@ -667,24 +668,28 @@ char **argv; 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 @@ char **argv; 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 @@ char **argv; 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);