X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fbaconfig.h;h=cbcd954ce0ad0c68f5d0a4967aed7d78e4e939ab;hb=845d411495e59b0206e1f440df8f4d71283539a2;hp=cfe2a3c40ff09974475b7d8b6a1dbc76bc8564ef;hpb=30d238311ef48dd185d65f62069f3d65839c5429;p=bacula%2Fbacula diff --git a/bacula/src/baconfig.h b/bacula/src/baconfig.h index cfe2a3c40f..cbcd954ce0 100644 --- a/bacula/src/baconfig.h +++ b/bacula/src/baconfig.h @@ -6,7 +6,7 @@ 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 + modify it under the terms of version three of the GNU Affero General Public License as published by the Free Software Foundation and included in the file LICENSE. @@ -15,7 +15,7 @@ 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 + You should have received a copy of the GNU Affero 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. @@ -58,6 +58,8 @@ #define ioctl_req_t int #endif +#define MANUAL_AUTH_URL "http://www.bacula.org/en/rel-manual/Bacula_Freque_Asked_Questi.html#SECTION003760000000000000000" + #ifdef PROTOTYPES # define __PROTO(p) p #else @@ -80,8 +82,9 @@ #if defined(HAVE_WIN32) -#define WIN32_REPARSE_POINT 1 -#define WIN32_MOUNT_POINT 2 +#define WIN32_REPARSE_POINT 1 /* Can be any number of "funny" directories except the next two */ +#define WIN32_MOUNT_POINT 2 /* Directory link to Volume */ +#define WIN32_JUNCTION_POINT 3 /* Directory link to a directory */ /* Reduce compiler warnings from Windows vss code */ #define uuid(x) @@ -166,6 +169,9 @@ void InitWinAPIWrapper(); /* Maximum Name length including EOS */ #define MAX_NAME_LENGTH 128 +/* Maximum escaped Name lenght including EOS 2*MAX_NAME_LENGTH+1 */ +#define MAX_ESCAPE_NAME_LENGTH 257 + /* Maximume number of user entered command args */ #define MAX_CMD_ARGS 30 @@ -198,154 +204,6 @@ void InitWinAPIWrapper(); */ #define DEFAULT_NETWORK_BUFFER_SIZE (64 * 1024) -/** - * Stream definitions. Once defined these must NEVER - * change as they go on the storage media. - * Note, the following streams are passed from the SD to the DIR - * so that they may be put into the catalog (actually only the - * stat packet part of the attr record is put in the catalog. - * - * STREAM_UNIX_ATTRIBUTES - * STREAM_UNIX_ATTRIBUTES_EX - * STREAM_MD5_DIGEST - * STREAM_SHA1_DIGEST - * 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_UNIX_ATTRIBUTES_EX 5 /* Extended Unix attr for Win32 EX - Deprecated */ -#define STREAM_SPARSE_DATA 6 /* Sparse data stream */ -#define STREAM_SPARSE_GZIP_DATA 7 /* Sparse gzipped data stream */ -#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_ACCESS_ACL 15 /* Standard ACL attributes on UNIX - Deprecated */ -#define STREAM_UNIX_DEFAULT_ACL 16 /* Default ACL attributes on UNIX - Deprecated */ -#define STREAM_SHA256_DIGEST 17 /* SHA-256 digest for the file */ -#define STREAM_SHA512_DIGEST 18 /* SHA-512 digest for the file */ -#define STREAM_SIGNED_DIGEST 19 /* Signed File Digest, ASN.1, DER Encoded */ -#define STREAM_ENCRYPTED_FILE_DATA 20 /* Encrypted, uncompressed data */ -#define STREAM_ENCRYPTED_WIN32_DATA 21 /* Encrypted, uncompressed Win32 BackupRead data */ -#define STREAM_ENCRYPTED_SESSION_DATA 22 /* Encrypted Session Data, ASN.1, DER Encoded */ -#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 */ - -/** - * Additional Stream definitions. Once defined these must NEVER - * change as they go on the storage media. - * - * The Stream numbers from 1000-1999 are reserved for ACL and extended attribute streams. - * Each different platform has its own stream id(s), if a platform supports multiple stream types - * it should supply different handlers for each type it supports and this should be called - * from the stream dispatch function. Currently in this reserved space we allocate the - * different acl streams from 1000 on and the different extended attributes streams from - * 1999 down. So the two naming spaces grows towards each other. - */ -#define STREAM_ACL_AIX_TEXT 1000 /* AIX specific string representation from acl_get */ -#define STREAM_ACL_DARWIN_ACCESS_ACL 1001 /* Darwin (OSX) specific acl_t string representation - * from acl_to_text (POSIX acl) - */ -#define STREAM_ACL_FREEBSD_DEFAULT_ACL 1002 /* FreeBSD specific acl_t string representation - * from acl_to_text (POSIX acl) for default acls. - */ -#define STREAM_ACL_FREEBSD_ACCESS_ACL 1003 /* FreeBSD specific acl_t string representation - * from acl_to_text (POSIX acl) for access acls. - */ -#define STREAM_ACL_HPUX_ACL_ENTRY 1004 /* HPUX specific acl_entry string representation - * from acltostr (POSIX acl) - */ -#define STREAM_ACL_IRIX_DEFAULT_ACL 1005 /* IRIX specific acl_t string representation - * from acl_to_text (POSIX acl) for default acls. - */ -#define STREAM_ACL_IRIX_ACCESS_ACL 1006 /* IRIX specific acl_t string representation - * from acl_to_text (POSIX acl) for access acls. - */ -#define STREAM_ACL_LINUX_DEFAULT_ACL 1007 /* Linux specific acl_t string representation - * from acl_to_text (POSIX acl) for default acls. - */ -#define STREAM_ACL_LINUX_ACCESS_ACL 1008 /* Linux specific acl_t string representation - * from acl_to_text (POSIX acl) for access acls. - */ -#define STREAM_ACL_TRU64_DEFAULT_ACL 1009 /* Tru64 specific acl_t string representation - * from acl_to_text (POSIX acl) for default acls. - */ -#define STREAM_ACL_TRU64_DEFAULT_DIR_ACL 1010 /* Tru64 specific acl_t string representation - * from acl_to_text (POSIX acl) for default acls. - */ -#define STREAM_ACL_TRU64_ACCESS_ACL 1011 /* Tru64 specific acl_t string representation - * from acl_to_text (POSIX acl) for access acls. - */ -#define STREAM_ACL_SOLARIS_ACLENT 1012 /* Solaris specific aclent_t string representation - * from acltotext or acl_totext (POSIX acl) - */ -#define STREAM_ACL_SOLARIS_ACE 1013 /* Solaris specific ace_t string representation from - * from acl_totext (NFSv4 or ZFS acl) - */ -#define STREAM_XATTR_OPENBSD 1993 /* OpenBSD specific extended attributes */ -#define STREAM_XATTR_SOLARIS_SYS 1994 /* Solaris specific extensible attributes or - * otherwise named extended system attributes. - */ -#define STREAM_XATTR_SOLARIS 1995 /* Solaris specific extented attributes */ -#define STREAM_XATTR_DARWIN 1996 /* Darwin (OSX) specific extended attributes */ -#define STREAM_XATTR_FREEBSD 1997 /* FreeBSD specific extended attributes */ -#define STREAM_XATTR_LINUX 1998 /* Linux specific extended attributes */ -#define STREAM_XATTR_NETBSD 1999 /* NetBSD specific extended attributes */ - -/** - * File type (Bacula defined). - * 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 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_MASK 0xFFFF /* Bits used by FT (type) */ -#define FT_LNKSAVED 1 /* hard link to file already saved */ -#define FT_REGE 2 /* Regular file but empty */ -#define FT_REG 3 /* Regular file */ -#define FT_LNK 4 /* Soft Link */ -#define FT_DIREND 5 /* Directory at end (saved) */ -#define FT_SPEC 6 /* Special file -- chr, blk, fifo, sock */ -#define FT_NOACCESS 7 /* Not able to access */ -#define FT_NOFOLLOW 8 /* Could not follow link */ -#define FT_NOSTAT 9 /* Could not stat file */ -#define FT_NOCHG 10 /* Incremental option, file not changed */ -#define FT_DIRNOCHG 11 /* Incremental option, directory not changed */ -#define FT_ISARCH 12 /* Trying to save archive file */ -#define FT_NORECURSE 13 /* No recursion into directory */ -#define FT_NOFSCHG 14 /* Different file system, prohibited */ -#define FT_NOOPEN 15 /* Could not open directory */ -#define FT_RAW 16 /* Raw block device */ -#define FT_FIFO 17 /* Raw fifo device */ -/** - * 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 */ -#define FT_BASE 24 /* Duplicate base file entry */ - -/* Definitions for upper part of type word (see above). */ -#define AR_DATA_STREAM (1<<16) /* Data stream id present */ - /** * Tape label types -- stored in catalog */ @@ -359,7 +217,7 @@ void InitWinAPIWrapper(); #define ON_PURGE_TRUNCATE 1 /* Size of File Address stored in STREAM_SPARSE_DATA. Do NOT change! */ -#define SPARSE_FADDR_SIZE (sizeof(uint64_t)) +#define OFFSET_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)) @@ -651,47 +509,56 @@ int m_msg(const char *file, int line, POOLMEM *&pool_buf, const char *fmt, ...) * OS Dependent defines * ============================================================= */ - -#ifndef HAVE_FSEEKO -/* Bad news. This OS cannot handle 64 bit fseeks and ftells */ -#define fseeko fseek -#define ftello ftell -#endif - #if defined (__digital__) && defined (__unix__) /* Tru64 - it does have fseeko and ftello , but since ftell/fseek are also 64 bit */ /* take this 'shortcut' */ #define fseeko fseek #define ftello ftell +#else +#ifndef HAVE_FSEEKO +/* Bad news. This OS cannot handle 64 bit fseeks and ftells */ +#define fseeko fseek +#define ftello ftell +#endif #endif - #ifdef HAVE_SUN_OS - /** - * On Solaris 2.5, threads are not timesliced by default, so we need to - * explictly increase the conncurrency level. - */ +/* + * On Solaris 2.5/2.6/7 and 8, threads are not timesliced by default, + * so we need to explictly increase the conncurrency level. + */ +#ifdef USE_THR_SETCONCURRENCY #include #define set_thread_concurrency(x) thr_setconcurrency(x) extern int thr_setconcurrency(int); #define SunOS 1 - #else +#define set_thread_concurrency(x) +#endif - -/** Not needed on most systems */ +#else +/* + * Not needed on most systems + */ #define set_thread_concurrency(x) #endif -#if defined(HAVE_DARWIN_OS) || defined(HAVE_OSF1_OS) +#ifdef HAVE_DARWIN_OS /* Apparently someone forgot to wrap getdomainname as a C function */ -extern "C" int getdomainname(char *name, int len); -#endif - - +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +int getdomainname(char *name, int len); +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* HAVE_DARWIN_OS */ #if defined(HAVE_WIN32) +/* + * Windows + */ #define DEFAULT_CONFIGDIR "C:\\Documents and Settings\\All Users\\Application Data\\Bacula" #define PathSeparator '\\' @@ -703,6 +570,9 @@ extern void pause_msg(const char *file, const char *func, int line, const char * #define pause(msg) if (debug_level) pause_msg(__FILE__, __func__, __LINE__, (msg)) #else +/* + * Unix/Linix + */ #define PathSeparator '/' /* Define Winsock functions if we aren't on Windows */ @@ -726,16 +596,28 @@ extern int h_errno; * the problem is no system headers declares the prototypes for these functions * this is done below */ -extern "C" int getdomainname(char *name, int namelen); -extern "C" int setdomainname(char *name, int namelen); +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +int getdomainname(char *name, int namelen); +int setdomainname(char *name, int namelen); +#ifdef __cplusplus +} +#endif /* __cplusplus */ #endif /* HAVE_HPUX_OS */ #ifdef HAVE_OSF1_OS -extern "C" int fchdir(int filedes); -extern "C" long gethostid(void); -extern "C" int mknod(const char *path, int mode, dev_t device ); -#endif +#ifdef __cplusplus +extern "C" { +#endif /* __cplusplus */ +int fchdir(int filedes); +long gethostid(void); +int getdomainname(char *name, int len); +#ifdef __cplusplus +} +#endif /* __cplusplus */ +#endif /* HAVE_OSF1_OS */ /** Disabled because it breaks internationalisation...