]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/dird/ua_restore.c
Fix out of order volumes during restore.
[bacula/bacula] / bacula / src / dird / ua_restore.c
index a0fde9b6aaa643a0d0acd07a95499c50be0e34e2..37a88125742e2432273b701b0ae67101ae7abcfb 100644 (file)
@@ -46,48 +46,10 @@ extern char *uar_count_files,     *uar_jobids_fileindex;
 extern char *uar_jobid_fileindex_from_dir;
 
 
-struct NAME_LIST {
-   char **name;                       /* list of names */
-   int num_ids;                       /* ids stored */
-   int max_ids;                       /* size of array */
-   int num_del;                       /* number deleted */
-   int tot_ids;                       /* total to process */
-};
-
-
-/* Main structure for obtaining JobIds or Files to be restored */
-struct RESTORE_CTX {
-   utime_t JobTDate;
-   uint32_t TotalFiles;
-   uint32_t JobId;
-   char ClientName[MAX_NAME_LENGTH];
-   char last_jobid[20];
-   POOLMEM *JobIds;                   /* User entered string of JobIds */
-   STORE  *store;
-   JOB *restore_job;
-   POOL *pool;
-   int restore_jobs;
-   uint32_t selected_files;
-   char *where;
-   RBSR *bsr;
-   POOLMEM *fname;                    /* filename only */
-   POOLMEM *path;                     /* path only */
-   POOLMEM *query;
-   int fnl;                           /* filename length */
-   int pnl;                           /* path length */
-   bool found;
-   bool all;                          /* mark all as default */
-   NAME_LIST name_list;
-};
-
-
-#define MAX_ID_LIST_LEN 1000000
-
 
 /* Forward referenced functions */
 static int last_full_handler(void *ctx, int num_fields, char **row);
 static int jobid_handler(void *ctx, int num_fields, char **row);
-static int get_next_jobid_from_list(char **p, uint32_t *JobId);
 static int user_select_jobids_or_files(UAContext *ua, RESTORE_CTX *rx);
 static int fileset_handler(void *ctx, int num_fields, char **row);
 static void print_name_list(UAContext *ua, NAME_LIST *name_list);
@@ -178,7 +140,7 @@ int restore_cmd(UAContext *ua, const char *cmd)
          bsendmsg(ua, _("Unable to construct a valid BSR. Cannot continue.\n"));
          goto bail_out;
       }
-      if (!(selected_files = write_bsr_file(ua, rx.bsr))) {
+      if (!(selected_files = write_bsr_file(ua, rx))) {
          bsendmsg(ua, _("No files selected to be restored.\n"));
          goto bail_out;
       }
@@ -1131,7 +1093,7 @@ bail_out:
 
 
 /* Return next JobId from comma separated list */
-static int get_next_jobid_from_list(char **p, uint32_t *JobId)
+int get_next_jobid_from_list(char **p, JobId_t *JobId)
 {
    char jobid[30];
    char *q = *p;