X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fbaconfig.h;h=b5d5afb48d305fa3858e451bda72a2c0a3451089;hb=11dbfbdb399a69771a4deb77c23d072fbe6bbbd8;hp=53a6ac150838ce1e94c21e01b9c1d74364599fb2;hpb=e51802a614850c023e5b9e82142b140b5c87148a;p=bacula%2Fbacula diff --git a/bacula/src/baconfig.h b/bacula/src/baconfig.h index 53a6ac1508..b5d5afb48d 100644 --- a/bacula/src/baconfig.h +++ b/bacula/src/baconfig.h @@ -5,19 +5,32 @@ * Version $Id$ */ /* - Copyright (C) 2000-2005 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. - - */ + Bacula® - The Network Backup Solution + + Copyright (C) 2000-2006 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. + + 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 John Walker. + The licensor of Bacula is the Free Software Foundation Europe + (FSFE), Fiduciary Program, Sumatrastrasse 25, 8006 Zürich, + Switzerland, email:ftf@fsfeurope.org. +*/ #ifndef _BACONFIG_H @@ -30,6 +43,13 @@ #define TRUE 1 #define FALSE 0 +#ifndef MAX +#define MAX(a, b) ((a) > (b) ? (a) : (b)) +#endif +#ifndef MIN +#define MIN(a, b) ((a) < (b) ? (a) : (b)) +#endif + #ifdef HAVE_TLS #define have_tls 1 #else @@ -58,10 +78,41 @@ /* Allow printing of NULL pointers */ #define NPRT(x) (x)?(x):_("*None*") -#ifdef WIN32 -#undef ENABLE_NLS +#if defined(HAVE_WIN32) +void InitWinAPIWrapper(); + +#define OSDependentInit() InitWinAPIWrapper() + + +#if defined(BUILDING_DLL) +# define DLL_IMP_EXP _declspec(dllexport) +#elif defined(USING_DLL) +# define DLL_IMP_EXP _declspec(dllimport) +#else +# define DLL_IMP_EXP #endif +#if defined(USING_CATS) +# define CATS_IMP_EXP _declspec(dllimport) +#else +# define CATS_IMP_EXP +#endif + +#else + +#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 + +#endif + + #ifdef ENABLE_NLS #include #include @@ -72,6 +123,12 @@ #define N_(s) (s) #endif /* N_ */ #else /* !ENABLE_NLS */ + #undef _ + #undef N_ + #undef textdomain + #undef bindtextdomain + #undef setlocale + #ifndef _ #define _(s) (s) #endif @@ -89,6 +146,10 @@ #endif #endif /* ENABLE_NLS */ + +/* Use the following for strings not to be translated */ +#define NT_(s) (s) + /* This should go away! ****FIXME***** */ #define MAXSTRING 500 @@ -128,7 +189,7 @@ /* * Default network buffer size */ -#define DEFAULT_NETWORK_BUFFER_SIZE (32 * 1024) +#define DEFAULT_NETWORK_BUFFER_SIZE (64 * 1024) /* * Stream definitions. Once defined these must NEVER @@ -139,12 +200,16 @@ * * STREAM_UNIX_ATTRIBUTES * STREAM_UNIX_ATTRIBUTES_EX - * STREAM_MD5_SIGNATURE - * STREAM_SHA1_SIGNATURE + * 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 /* MD5 signature for the file */ +#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 */ @@ -152,7 +217,8 @@ #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 /* SHA1 signature for the file */ +#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 */ @@ -161,6 +227,15 @@ #define STREAM_UNIX_ATTRIBUTES_ACCESS_ACL 15 /* Standard ACL attributes on UNIX */ #define STREAM_UNIX_ATTRIBUTES_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_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 */ /* @@ -195,17 +270,11 @@ * 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 */ /* Definitions for upper part of type word (see above). */ #define AR_DATA_STREAM (1<<16) /* Data stream id present */ -/* - * Internal code for Signature types - */ -#define NO_SIG 0 -#define MD5_SIG 1 -#define SHA1_SIG 2 - /* * Tape label types -- stored in catalog */ @@ -216,6 +285,9 @@ /* 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 @@ -276,7 +348,13 @@ typedef int (INTHANDLER)(); #define MODE_RW 0666 #endif -#ifdef DEBUG_MUTEX +#if defined(HAVE_WIN32) +typedef int64_t boffset_t; +#else +typedef off_t boffset_t; +#endif + +#if defined(DEBUG_MUTEX) extern void _p(char *file, int line, pthread_mutex_t *m); extern void _v(char *file, int line, pthread_mutex_t *m); @@ -459,9 +537,17 @@ int m_msg(const char *file, int line, POOLMEM *&pool_buf, const char *fmt, ...) /* Use our strdup with smartalloc */ -#ifndef __WXGTK__ +#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 */ @@ -490,7 +576,7 @@ int m_msg(const char *file, int line, POOLMEM *&pool_buf, const char *fmt, ...) #define REPLACE_NEVER 'n' #define REPLACE_IFOLDER 'o' -/* This probably should be done on a machine by machine basic, but it works */ +/* This probably should be done on a machine by machine basis, but it works */ /* This is critical for the smartalloc routines to properly align memory */ #define ALIGN_SIZE (sizeof(double)) #define BALIGN(x) (((x) + ALIGN_SIZE - 1) & ~(ALIGN_SIZE -1)) @@ -546,20 +632,26 @@ extern "C" int getdomainname(char *name, int len); extern "C" int mknod ( const char *path, int mode, dev_t device ); #endif -#ifdef HAVE_CYGWIN -/* They don't really have it */ -#undef HAVE_GETDOMAINNAME -#endif +#if defined(HAVE_WIN32) +#define DEFAULT_CONFIGDIR "C:\\Documents and Settings\\All Users\\Application Data\\Bacula" + +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, "/\\"); } + +#else /* Define Winsock functions if we aren't on Windows */ -#if (!defined HAVE_WIN32) || (defined HAVE_CYGWIN) + #define WSA_Init() 0 /* 0 = success */ #define WSACleanup() 0 /* 0 = success */ -#endif -#ifdef HAVE_AIX_OS +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, '/'); } #endif + /* HP-UX 11 specific workarounds */ #ifdef HAVE_HPUX_OS @@ -572,7 +664,6 @@ extern int h_errno; */ extern "C" int getdomainname(char *name, int namelen); extern "C" int setdomainname(char *name, int namelen); -#define uLong unsigned long #endif /* HAVE_HPUX_OS */ @@ -583,12 +674,6 @@ extern "C" long gethostid(void); #endif -/* Added by KES to deal with Win32 systems */ -#ifndef S_ISWIN32 -#define S_ISWIN32 020000 -#endif - - /* Disabled because it breaks internationalisation... #undef HAVE_SETLOCALE #ifdef HAVE_SETLOCALE @@ -603,13 +688,4 @@ extern "C" long gethostid(void); #endif */ -/* Fake entry points if regex does not exist */ -#ifndef HAVE_REGEX_H -#define regcomp(x, y, z) 1 -#define regfree(x) -#define regerror(rc, preg, prbuf, len) bstrncpy(prbuf, "REGEX not available on this system.", len) -#define regex_t int -#define regmatch_t char -#endif - #endif /* _BACONFIG_H */