+/*
+ Bacula® - The Network Backup Solution
+
+ Copyright (C) 2002-2008 Free Software Foundation Europe e.V.
+
+ The main author of Bacula is Kern Sibbald, with contributions from
+ many others, a complete list can be found in the file AUTHORS.
+ This program is Free Software; you can redistribute it and/or
+ modify it under the terms of version two of the GNU General Public
+ License as published by the Free Software Foundation and included
+ in the file LICENSE.
+
+ This program is distributed in the hope that it will be useful, but
+ WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with this program; if not, write to the Free Software
+ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
+ 02110-1301, USA.
+
+ Bacula® is a registered trademark of Kern Sibbald.
+ The licensor of Bacula is the Free Software Foundation Europe
+ (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
+ Switzerland, email:ftf@fsfeurope.org.
+*/
/*
* BootStrap record definition -- for restoring files.
*
* Version $Id$
*
*/
-/*
- Copyright (C) 2002-2006 Kern Sibbald
-
- This program is free software; you can redistribute it and/or
- modify it under the terms of the GNU General Public License
- version 2 as amended with additional clauses defined in the
- file LICENSE in the main source directory.
-
- This program is distributed in the hope that it will be useful,
- but WITHOUT ANY WARRANTY; without even the implied warranty of
- MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- the file LICENSE for additional details.
-
- */
#ifndef __BSR_H
#define __BSR_H 1
+#ifndef HAVE_REGEX_H
+#include "lib/bregex.h"
+#else
+#include <regex.h>
+#endif
+
/*
* List of Volume names to be read by Storage daemon.
* Formed by Storage daemon from BSR
VOL_LIST *next;
char VolumeName[MAX_NAME_LENGTH];
char MediaType[MAX_NAME_LENGTH];
- char storage[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */
+ char device[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */
int Slot;
uint32_t start_file;
};
BSR_VOLUME *next;
char VolumeName[MAX_NAME_LENGTH];
char MediaType[MAX_NAME_LENGTH];
- char storage[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */
+ char device[MAX_NAME_LENGTH]; /* ***FIXME*** use alist here */
int32_t Slot; /* Slot */
};
bool done; /* local done */
};
+struct BSR_VOLADDR {
+ BSR_VOLADDR *next;
+ uint64_t saddr; /* start address */
+ uint64_t eaddr; /* end address */
+ bool done; /* local done */
+};
struct BSR_FINDEX {
BSR_FINDEX *next;
};
struct BSR {
+ /* NOTE!!! next must be the first item */
BSR *next; /* pointer to next one */
+ BSR *prev; /* pointer to previous one */
BSR *root; /* root bsr */
bool reposition; /* set when any bsr is marked done */
bool mount_next_volume; /* set when next volume should be mounted */
bool done; /* set when everything found for this bsr */
bool use_fast_rejection; /* set if fast rejection can be used */
bool use_positioning; /* set if we can position the archive */
+ bool skip_file; /* skip all records for current file */
BSR_VOLUME *volume;
uint32_t count; /* count of files to restore this bsr */
uint32_t found; /* count of restored files this bsr */
BSR_VOLFILE *volfile;
BSR_VOLBLOCK *volblock;
+ BSR_VOLADDR *voladdr;
BSR_SESSTIME *sesstime;
BSR_SESSID *sessid;
BSR_JOBID *JobId;
BSR_JOBTYPE *JobType;
BSR_JOBLEVEL *JobLevel;
BSR_STREAM *stream;
+ char *fileregex; /* set if restore is filtered on filename */
+ regex_t *fileregex_re;
+ ATTR *attr; /* scratch space for unpacking */
};