X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fdird_conf.h;h=020a086ffe1230cdf83c3406cfcbd7dde8d6a874;hb=6872bd694d98711846adaae124f19dfc88d8f2e0;hp=56efa2fb2dcc605acdf998a5d0527b1963ed4840;hpb=8e1a4eeb2bdc80c9ab45a822a8da1cfa0ece1a6d;p=bacula%2Fbacula diff --git a/bacula/src/dird/dird_conf.h b/bacula/src/dird/dird_conf.h index 56efa2fb2d..020a086ffe 100644 --- a/bacula/src/dird/dird_conf.h +++ b/bacula/src/dird/dird_conf.h @@ -6,19 +6,32 @@ * Version $Id$ */ /* - Copyright (C) 2000-2006 Kern Sibbald + Bacula® - The Network Backup Solution - 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. + Copyright (C) 2000-2006 Free Software Foundation Europe e.V. - 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. + 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. +*/ /* NOTE: #includes at the end of this file */ @@ -113,8 +126,13 @@ public: bool tls_enable; /* Enable TLS */ bool tls_require; /* Require TLS */ bool tls_verify_peer; /* TLS Verify Client Certificate */ + + /* Methods */ + char *name() const; }; +inline char *DIRRES::name() const { return hdr.name; } + /* * Device Resource * This resource is a bit different from the other resources @@ -143,8 +161,13 @@ public: char ChangerName[MAX_NAME_LENGTH]; char VolumeName[MAX_NAME_LENGTH]; char MediaType[MAX_NAME_LENGTH]; + + /* Methods */ + char *name() const; }; +inline char *DEVICE::name() const { return hdr.name; } + /* * Console ACL positions */ @@ -158,6 +181,7 @@ enum { Command_ACL, FileSet_ACL, Catalog_ACL, + Where_ACL, Num_ACL /* keep last */ }; @@ -179,8 +203,13 @@ public: bool tls_enable; /* Enable TLS */ bool tls_require; /* Require TLS */ bool tls_verify_peer; /* TLS Verify Client Certificate */ + + /* Methods */ + char *name() const; }; +inline char *CONRES::name() const { return hdr.name; } + /* * Catalog Resource @@ -197,8 +226,13 @@ public: char *db_user; char *db_name; int mult_db_connections; /* set if multiple connections wanted */ + + /* Methods */ + char *name() const; }; +inline char *CAT::name() const { return hdr.name; } + /* * Client Resource @@ -224,8 +258,14 @@ public: bool tls_enable; /* Enable TLS */ bool tls_require; /* Require TLS */ bool AutoPrune; /* Do automatic pruning? */ + + /* Methods */ + char *name() const; }; +inline char *CLIENT::name() const { return hdr.name; } + + /* * Store Resource * @@ -267,6 +307,41 @@ inline char *STORE::dev_name() const inline char *STORE::name() const { return hdr.name; } +/* + * This is a sort of "unified" store that has both the + * storage pointer and the text of where the pointer was + * found. + */ +class USTORE { +public: + STORE *store; + POOLMEM *store_source; + + /* Methods */ + USTORE() { store = NULL; store_source = get_pool_memory(PM_MESSAGE); + *store_source = 0; }; + ~USTORE() { destroy(); } + void set_source(const char *where); + void destroy(); +}; + +inline void USTORE::destroy() +{ + if (store_source) { + free_pool_memory(store_source); + store_source = NULL; + } +} + + +inline void USTORE::set_source(const char *where) +{ + if (!store_source) { + store_source = get_pool_memory(PM_MESSAGE); + } + pm_strcpy(store_source, where); +} + /* * Job Resource @@ -318,7 +393,6 @@ public: POOL *full_pool; /* Pool for Full backups */ POOL *inc_pool; /* Pool for Incremental backups */ POOL *diff_pool; /* Pool for Differental backups */ - POOL *next_pool; /* Next Pool for Migration */ char *selection_pattern; int selection_type; union { @@ -327,8 +401,13 @@ public: JOB *jobdefs; /* Job defaults */ alist *run_cmds; /* Run commands */ uint32_t NumConcurrentJobs; /* number of concurrent jobs running */ + + /* Methods */ + char *name() const; }; +inline char *JOB::name() const { return hdr.name; } + #undef MAX_FOPTS #define MAX_FOPTS 34 @@ -341,8 +420,10 @@ struct FOPTS { alist wild; /* wild card strings */ alist wilddir; /* wild card strings for directories */ alist wildfile; /* wild card strings for files */ + alist wildbase; /* wild card strings for files without '/' */ alist base; /* list of base names */ alist fstype; /* file system type limitation */ + alist drivetype; /* drive type limitation */ char *reader; /* reader program */ char *writer; /* writer program */ }; @@ -374,8 +455,12 @@ public: char MD5[30]; /* base 64 representation of MD5 */ bool ignore_fs_changes; /* Don't force Full if FS changed */ bool enable_vss; /* Enable Volume Shadow Copy */ + + /* Methods */ + char *name() const; }; +inline char *FILESET::name() const { return hdr.name; } /* * Schedule Resource @@ -401,8 +486,12 @@ public: COUNTER *WrapCounter; /* Wrap counter name */ CAT *Catalog; /* Where to store */ bool created; /* Created in DB */ + /* Methods */ + char *name() const; }; +inline char *COUNTER::name() const { return hdr.name; } + /* * Pool Resource * @@ -422,8 +511,8 @@ public: uint32_t MaxVolFiles; /* Maximum files on the Volume */ uint64_t MaxVolBytes; /* Maximum bytes on the Volume */ utime_t MigrationTime; /* Time to migrate to next pool */ - uint32_t MigrationHighBytes; /* When migration starts */ - uint32_t MigrationLowBytes; /* When migration stops */ + uint64_t MigrationHighBytes; /* When migration starts */ + uint64_t MigrationLowBytes; /* When migration stops */ POOL *NextPool; /* Next pool for migration */ alist *storage; /* Where is device -- list of Storage to be used */ bool use_catalog; /* maintain catalog for media */ @@ -434,8 +523,13 @@ public: bool recycle_current_volume; /* attempt recycle of current volume */ bool AutoPrune; /* default for pool auto prune */ bool Recycle; /* default for media recycle yes/no */ + + /* Methods */ + char *name() const; }; +inline char *POOL::name() const { return hdr.name; } +