Imported Upstream version 3.2.1
[debian/amanda] / server-src / amadmin.c
index 96e117b41195a1ca5e49288e1174b201c1639831..7930e0bd2dc86cef8d9d700e758530d47db522dc 100644 (file)
@@ -246,7 +246,7 @@ usage(void)
 {
     int i;
 
-    g_fprintf(stderr, _("\nUsage: %s <conf> <command> {<args>} [-o configoption]* ...\n"),
+    g_fprintf(stderr, _("\nUsage: %s [-o configoption]* <conf> <command> {<args>} ...\n"),
            get_pname());
     g_fprintf(stderr, _("    Valid <command>s are:\n"));
     for (i = 0; i < NCMDS; i++)
@@ -1164,15 +1164,37 @@ find(
 
     output_find = find_dump(&diskq); /* Add deleted dump to diskq */
     if(argc-(start_argc-1) > 0) {
+       find_result_t *afind = NULL;
+       find_result_t *afind_next = NULL;
+       find_result_t *new_output_find = NULL;
+       disk_t *dp;
+
        amfree(errstr);
-       free_find_result(&output_find);
        errstr = match_disklist(&diskq, argc-(start_argc-1),
                                        argv+(start_argc-1));
        if (errstr) {
            g_printf("%s", errstr);
            amfree(errstr);
        }
-       output_find = find_dump(NULL);
+       for (afind = output_find; afind; afind = afind_next) {
+           afind_next = afind->next;
+           dp = lookup_disk(afind->hostname, afind->diskname);
+           if (dp->todo) {
+               afind->next = new_output_find;
+               new_output_find = afind;
+           } else {
+               amfree(afind->timestamp);
+               amfree(afind->write_timestamp);
+               amfree(afind->hostname);
+               amfree(afind->diskname);
+               amfree(afind->label);
+               amfree(afind->status);
+               amfree(afind->dump_status);
+               amfree(afind->message);
+               amfree(afind);
+           }
+       }
+       output_find = new_output_find;
     } else if (errstr) {
        g_printf("%s", errstr);
        amfree(errstr);
@@ -1492,7 +1514,7 @@ holding(
                 amfree(dumpstr);
                dumpfile_free_data(&file);
             }
-            g_slist_free_full(file_list);
+            slist_free_full(file_list, g_free);
             break;
 
         case HOLDING_DELETE:
@@ -1510,7 +1532,7 @@ holding(
                     error(_("Could not delete '%s'"), (char *)li->data);
                 }
             }
-            g_slist_free_full(file_list);
+            slist_free_full(file_list, g_free);
             break;
     }
 }
@@ -2069,6 +2091,7 @@ disklist_one(
     sle_t *excl;
     identlist_t pp_scriptlist;
     estimatelist_t  estimates;
+    dumptype_t *dtype = lookup_dumptype(dp->dtype_name);
 
     hp = dp->host;
     ip = hp->netif;
@@ -2264,6 +2287,15 @@ disklist_one(
     g_printf("        skip-incr %s\n", (dp->skip_incr? "YES" : "NO"));
     g_printf("        skip-full %s\n", (dp->skip_full? "YES" : "NO"));
     g_printf("        allow-split %s\n", (dp->allow_split ? "YES" : "NO"));
+    if (dumptype_seen(dtype, DUMPTYPE_RECOVERY_LIMIT)) {
+       char **rl, **r1;
+       rl = val_t_display_strs(dumptype_getconf((dtype),
+                               DUMPTYPE_RECOVERY_LIMIT), 1);
+       for(r1 = rl; *r1 != NULL; r1++) {
+           g_printf("        recovery-limit %s\n", *r1);
+       free(*r1);
+       }
+    }
     g_printf("        spindle %d\n", dp->spindle);
     pp_scriptlist = dp->pp_scriptlist;
     while (pp_scriptlist != NULL) {
@@ -2272,10 +2304,8 @@ disklist_one(
     }
 
     {
-       dumptype_t *dtype;
        char **prop, **p1;;
 
-       dtype = lookup_dumptype(dp->dtype_name);
        prop = val_t_display_strs(dumptype_getconf((dtype), DUMPTYPE_PROPERTY),
                                  0);
        for(p1 = prop; *p1 != NULL; p1++) {