X-Git-Url: https://git.gag.com/?p=debian%2Famanda;a=blobdiff_plain;f=server-src%2Famflush.c;h=481ff289966e4fe495da10b5d423bea40290b9de;hp=8403ac2c277c29ba82c3f6a65843137858887f83;hb=d28952249e392eb31bc8eecc53f6c477f30c617b;hpb=949b8910a5e23c4285d0b1aedacfc82a14dc97a5 diff --git a/server-src/amflush.c b/server-src/amflush.c index 8403ac2..481ff28 100644 --- a/server-src/amflush.c +++ b/server-src/amflush.c @@ -1,6 +1,7 @@ /* * Amanda, The Advanced Maryland Automatic Network Disk Archiver * Copyright (c) 1991-1998 University of Maryland at College Park + * Copyright (c) 2007-2012 Zmanda, Inc. All Rights Reserved. * All Rights Reserved. * * Permission to use, copy, modify, distribute, and sell this software and its @@ -44,6 +45,7 @@ static struct option long_options[] = { {"version" , 0, NULL, 1}, + {"exact-match" , 0, NULL, 2}, {NULL, 0, NULL, 0} }; @@ -100,6 +102,7 @@ main( char **config_options; find_result_t *holding_files; disklist_t holding_disklist = { NULL, NULL }; + gboolean exact_match = FALSE; /* * Configure program for internationalization: @@ -133,7 +136,8 @@ main( case 1 : printf("amflush-%s\n", VERSION); return(0); break; - + case 2 : exact_match = TRUE; + break; case 'b': batch = 1; break; case 'f': foreground = 1; @@ -161,7 +165,7 @@ main( } if(argc < 1) { - error(_("Usage: amflush [-b] [-f] [-s] [-D date]* [-o configoption]* [host [disk]* ]*")); + error(_("Usage: amflush [-b] [-f] [-s] [-D date]* [--exact-match] [-o configoption]* [host [disk]* ]*")); /*NOTREACHED*/ } @@ -191,7 +195,7 @@ main( * dumps will be filtered properly by match_disklist, setting the dp->todo * flag appropriately. */ - errstr = match_disklist(&diskq, argc-1, argv+1); + errstr = match_disklist(&diskq, exact_match, argc-1, argv+1); if (errstr) { g_printf(_("%s"),errstr); amfree(errstr); @@ -290,10 +294,19 @@ main( for(dp = diskq.head; dp != NULL; dp = dp->next) { if(dp->todo) { - char *qname; - qname = quote_string(dp->name); - log_add(L_DISK, "%s %s", dp->host->hostname, qname); - amfree(qname); + /* is it holding_list */ + for (holding_file=holding_list; holding_file != NULL; + holding_file = holding_file->next) { + dumpfile_t file; + holding_file_get_dumpfile((char *)holding_file->data, &file); + if (g_str_equal(dp->host->hostname, file.name) && + g_str_equal(dp->name, file.disk)) { + char *qname; + qname = quote_string(dp->name); + log_add(L_DISK, "%s %s", dp->host->hostname, qname); + amfree(qname); + } + } } }