/*
Bacula® - The Network Backup Solution
- Copyright (C) 2001-2008 Free Software Foundation Europe e.V.
+ Copyright (C) 2001-2010 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.
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA
02110-1301, USA.
- Bacula® is a registered trademark of John Walker.
+ 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.
#include "jcr.h"
#include "bfile.h"
-#include "../filed/fd-plugins.h"
+#include "../filed/fd_plugins.h"
#ifdef HAVE_DIRENT_H
#include <dirent.h>
#endif
#include <sys/file.h>
+#if !defined(HAVE_WIN32) || defined(HAVE_MINGW)
+#include <sys/param.h>
+#endif
#if HAVE_UTIME_H
#include <utime.h>
#else
int readdir_r(DIR *dirp, struct dirent *entry, struct dirent **result);
#endif
-/*
- * Status codes returned by create_file()
- */
-enum {
- CF_SKIP = 1, /* skip file (not newer or something) */
- CF_ERROR, /* error creating file */
- CF_EXTRACT, /* file created, data to extract */
- CF_CREATED /* file created, no data to extract */
-};
-
-
/*
* Options saved int "options" of the include/exclude lists.
* They are directly jammed ito "flag" of ff packet
#define FO_ENHANCEDWILD (1<<23) /* Enhanced wild card processing */
#define FO_CHKCHANGES (1<<24) /* Check if file have been modified during backup */
#define FO_STRIPPATH (1<<25) /* Check for stripping path */
+#define FO_HONOR_NODUMP (1<<26) /* honor NODUMP flag */
+#define FO_XATTR (1<<27) /* Backup Extended Attributes */
struct s_included_file {
struct s_included_file *next;
int strip_path; /* strip path count */
char VerifyOpts[MAX_FOPTS]; /* verify options */
char AccurateOpts[MAX_FOPTS]; /* accurate mode options */
+ char BaseJobOpts[MAX_FOPTS]; /* basejob mode options */
alist regex; /* regex string(s) */
alist regexdir; /* regex string(s) for directories */
alist regexfile; /* regex string(s) for files */
alist opts_list; /* options list */
dlist name_list; /* filename list -- holds dlistString */
dlist plugin_list; /* plugin list -- holds dlistString */
+ char *ignoredir; /* ignore directories with this file */
};
/*
alist exclude_list;
};
-#ifdef HAVE_DARWIN_OS
struct HFSPLUS_INFO {
unsigned long length; /* Mandatory field */
char fndrinfo[32]; /* Finder Info */
off_t rsrclength; /* Size of resource fork */
};
-#endif
/*
* Definition of the find_files packet passed as the
char *top_fname; /* full filename before descending */
char *fname; /* full filename */
char *link; /* link if file linked */
+ char *object_name; /* Object name */
+ char *object; /* restore object */
POOLMEM *sys_fname; /* system filename */
POOLMEM *fname_save; /* save when stripping path */
POOLMEM *link_save; /* save when stripping path */
struct stat statp; /* stat packet */
int32_t FileIndex; /* FileIndex of this file */
int32_t LinkFI; /* FileIndex of main hard linked file */
+ int32_t object_index; /* Object index */
+ int32_t object_len; /* Object length */
+ int32_t object_compression; /* Type of compression for object */
struct f_link *linked; /* Set if this file is hard linked */
int type; /* FT_ type from above */
int ff_errno; /* errno */
bool null_output_device; /* using null output device */
bool incremental; /* incremental save */
char VerifyOpts[20];
+ char AccurateOpts[20];
+ char BaseJobOpts[20];
struct s_included_file *included_files_list;
struct s_excluded_file *excluded_files_list;
struct s_excluded_file *excluded_paths_list;
* To avoid clutter, we always include rsrc_bfd and volhas_attrlist */
BFILE rsrc_bfd; /* fd for resource forks */
bool volhas_attrlist; /* Volume supports getattrlist() */
-#ifdef HAVE_DARWIN_OS
struct HFSPLUS_INFO hfsinfo; /* Finder Info and resource fork size */
-#endif
};