-/*
- * General header file configurations that apply to
- * all daemons. System dependent stuff goes here.
- *
- * Version $Id$
- */
/*
Bacula® - The Network Backup Solution
- Copyright (C) 2000-2006 Free Software Foundation Europe e.V.
+ Copyright (C) 2000-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 plus additions
- that are listed in the file LICENSE.
+ 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
(FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich,
Switzerland, email:ftf@fsfeurope.org.
*/
+/*
+ * General header file configurations that apply to
+ * all daemons. System dependent stuff goes here.
+ *
+ * Version $Id$
+ */
#ifndef _BACONFIG_H
void InitWinAPIWrapper();
#define OSDependentInit() InitWinAPIWrapper()
+#define tape_open win32_tape_open
+#define tape_ioctl win32_tape_ioctl
+#define tape_read win32_tape_read
+#define tape_write win32_tape_write
+#define tape_close win32_tape_close
+#define IS_TAPE(x) (0)
+
+#define sbrk(x) 0
-#undef ENABLE_NLS
#if defined(BUILDING_DLL)
# define DLL_IMP_EXP _declspec(dllexport)
# define CATS_IMP_EXP
#endif
-#else
+#else /* HAVE_WIN32 */
#define DLL_IMP_EXP
#define CATS_IMP_EXP
#define OSDependentInit()
-#define tape_open open
-#define tape_ioctl ioctl
-#define tape_read read
-#define tape_write write
-#define tape_close ::close
+
+#if defined(USE_FAKETAPE)
+# define tape_open faketape_open
+# define tape_ioctl faketape_ioctl
+# define tape_read faketape_read
+# define tape_write faketape_write
+# define tape_close faketape_close
+# define IS_TAPE(x) (S_ISCHR(x) || S_ISREG(x))
+#else /* UNIX && !FAKETAPE */
+# define tape_open ::open
+# define tape_ioctl ::ioctl
+# define tape_read ::read
+# define tape_write ::write
+# define tape_close ::close
+# define IS_TAPE(x) S_ISCHR(x)
#endif
+#endif /* HAVE_WIN32 */
+
#ifdef ENABLE_NLS
#include <libintl.h>
#define N_(s) (s)
#endif /* N_ */
#else /* !ENABLE_NLS */
+ #undef _
+ #undef N_
+ #undef textdomain
+ #undef bindtextdomain
+ #undef setlocale
+
#ifndef _
#define _(s) (s)
#endif
#define setlocale(p, d)
#endif
#endif /* ENABLE_NLS */
+
+
/* Use the following for strings not to be translated */
#define NT_(s) (s)
* STREAM_SHA256_DIGEST
* STREAM_SHA512_DIGEST
*/
-#define STREAM_NONE 0 /* Reserved Non-Stream */
-#define STREAM_UNIX_ATTRIBUTES 1 /* Generic Unix attributes */
-#define STREAM_FILE_DATA 2 /* Standard uncompressed data */
-#define STREAM_MD5_SIGNATURE 3 /* deprecated */
-#define STREAM_MD5_DIGEST 3 /* MD5 digest for the file */
-#define STREAM_GZIP_DATA 4 /* GZip compressed file data */
+#define STREAM_NONE 0 /* Reserved Non-Stream */
+#define STREAM_UNIX_ATTRIBUTES 1 /* Generic Unix attributes */
+#define STREAM_FILE_DATA 2 /* Standard uncompressed data */
+#define STREAM_MD5_SIGNATURE 3 /* deprecated */
+#define STREAM_MD5_DIGEST 3 /* MD5 digest for the file */
+#define STREAM_GZIP_DATA 4 /* GZip compressed file data */
/* Extended Unix attributes with Win32 Extended data. Deprecated. */
-#define STREAM_UNIX_ATTRIBUTES_EX 5 /* Extended Unix attr for Win32 EX */
-#define STREAM_SPARSE_DATA 6 /* Sparse data stream */
-#define STREAM_SPARSE_GZIP_DATA 7
-#define STREAM_PROGRAM_NAMES 8 /* program names for program data */
-#define STREAM_PROGRAM_DATA 9 /* Data needing program */
-#define STREAM_SHA1_SIGNATURE 10 /* deprecated */
-#define STREAM_SHA1_DIGEST 10 /* SHA1 digest for the file */
-#define STREAM_WIN32_DATA 11 /* Win32 BackupRead data */
-#define STREAM_WIN32_GZIP_DATA 12 /* Gzipped Win32 BackupRead data */
-#define STREAM_MACOS_FORK_DATA 13 /* Mac resource fork */
-#define STREAM_HFSPLUS_ATTRIBUTES 14 /* Mac OS extra attributes */
+#define STREAM_UNIX_ATTRIBUTES_EX 5 /* Extended Unix attr for Win32 EX */
+#define STREAM_SPARSE_DATA 6 /* Sparse data stream */
+#define STREAM_SPARSE_GZIP_DATA 7
+#define STREAM_PROGRAM_NAMES 8 /* program names for program data */
+#define STREAM_PROGRAM_DATA 9 /* Data needing program */
+#define STREAM_SHA1_SIGNATURE 10 /* deprecated */
+#define STREAM_SHA1_DIGEST 10 /* SHA1 digest for the file */
+#define STREAM_WIN32_DATA 11 /* Win32 BackupRead data */
+#define STREAM_WIN32_GZIP_DATA 12 /* Gzipped Win32 BackupRead data */
+#define STREAM_MACOS_FORK_DATA 13 /* Mac resource fork */
+#define STREAM_HFSPLUS_ATTRIBUTES 14 /* Mac OS extra attributes */
/*** FIXME ***/
-#define STREAM_UNIX_ATTRIBUTES_ACCESS_ACL 15 /* Standard ACL attributes on UNIX */
-#define STREAM_UNIX_ATTRIBUTES_DEFAULT_ACL 16 /* Default ACL attributes on UNIX */
+#define STREAM_UNIX_ACCESS_ACL 15 /* Standard ACL attributes on UNIX */
+#define STREAM_UNIX_DEFAULT_ACL 16 /* Default ACL attributes on UNIX */
/*** FIXME ***/
#define STREAM_SHA256_DIGEST 17 /* SHA-256 digest for the file */
#define STREAM_SHA512_DIGEST 18 /* SHA-512 digest for the file */
#define STREAM_ENCRYPTED_FILE_GZIP_DATA 23 /* Encrypted, compressed data */
#define STREAM_ENCRYPTED_WIN32_GZIP_DATA 24 /* Encrypted, compressed Win32 BackupRead data */
#define STREAM_ENCRYPTED_MACOS_FORK_DATA 25 /* Encrypted, uncompressed Mac resource fork */
+#define STREAM_PLUGIN_NAME 26 /* Plugin "file" string */
+#define STREAM_PLUGIN_DATA 27 /* Plugin specific data */
/*
* NOTE!!! These are saved in the Attributes record on the tape, so
* do not change them. If need be, add to them.
*
- * This is stored as 32 bits on tape, but only FT_MASK bits are
+ * This is stored as 32 bits on the Volume, but only FT_MASK (16) bits are
* used for the file type. The upper bits are used to indicate
* additional optional fields in the attribute record.
*/
#define FT_NOOPEN 15 /* Could not open directory */
#define FT_RAW 16 /* Raw block device */
#define FT_FIFO 17 /* Raw fifo device */
-/* This directory packet is sent to the FD file processing routine so
+/* The DIRBEGIN packet is sent to the FD file processing routine so
* that it can filter packets, but otherwise, it is not used
* or saved */
#define FT_DIRBEGIN 18 /* Directory at beginning (not saved) */
#define FT_INVALIDFS 19 /* File system not allowed for */
#define FT_INVALIDDT 20 /* Drive type not allowed for */
+#define FT_REPARSE 21 /* Win NTFS reparse point */
+#define FT_PLUGIN 22 /* Plugin generated filename */
+#define FT_DELETED 23 /* Deleted file entry */
/* Definitions for upper part of type word (see above). */
#define AR_DATA_STREAM (1<<16) /* Data stream id present */
/* Size of File Address stored in STREAM_SPARSE_DATA. Do NOT change! */
#define SPARSE_FADDR_SIZE (sizeof(uint64_t))
+/* Size of crypto length stored at head of crypto buffer. Do NOT change! */
+#define CRYPTO_LEN_SIZE ((int)sizeof(uint32_t))
+
/* This is for dumb compilers/libraries like Solaris. Linux GCC
* does it correctly, so it might be worthwhile
#ifndef HAVE_WXCONSOLE
#undef strdup
#define strdup(buf) bad_call_on_strdup_use_bstrdup(buf)
+#else
+/* Groan, WxWidgets has its own way of doing NLS so cleanup */
+#ifndef ENABLE_NLS
+#undef _
+#undef setlocale
+#undef textdomain
+#undef bindtextdomain
+#endif
#endif
/* Use our fgets which handles interrupts */
extern "C" int getdomainname(char *name, int len);
#endif
-#ifdef HAVE_OSF1_OS
-extern "C" int mknod ( const char *path, int mode, dev_t device );
-#endif
#if defined(HAVE_WIN32)
#define DEFAULT_CONFIGDIR "C:\\Documents and Settings\\All Users\\Application Data\\Bacula"
+#define PathSeparator '\\'
inline bool IsPathSeparator(int ch) { return ch == '/' || ch == '\\'; }
inline char *first_path_separator(char *path) { return strpbrk(path, "/\\"); }
inline const char *first_path_separator(const char *path) { return strpbrk(path, "/\\"); }
+extern void pause_msg(const char *file, const char *func, int line, const char *msg);
+#define pause(msg) if (debug_level) pause_msg(__FILE__, __func__, __LINE__, (msg))
+
#else
+#define PathSeparator '/'
/* Define Winsock functions if we aren't on Windows */
#define WSA_Init() 0 /* 0 = success */
inline bool IsPathSeparator(int ch) { return ch == '/'; }
inline char *first_path_separator(char *path) { return strchr(path, '/'); }
inline const char *first_path_separator(const char *path) { return strchr(path, '/'); }
+#define pause(msg)
#endif
*/
extern "C" int getdomainname(char *name, int namelen);
extern "C" int setdomainname(char *name, int namelen);
-#define uLong unsigned long
#endif /* HAVE_HPUX_OS */
#ifdef HAVE_OSF1_OS
-#undef HAVE_CHFLAGS /* chflags is incorrectly detected */
extern "C" int fchdir(int filedes);
extern "C" long gethostid(void);
+extern "C" int mknod ( const char *path, int mode, dev_t device );
#endif