/*
Bacula® - The Network Backup Solution
- Copyright (C) 2000-2007 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.
#define JS_WaitPriority 'p' /* Waiting for higher priority jobs to finish */
#define JS_AttrDespooling 'a' /* SD despooling attributes */
#define JS_AttrInserting 'i' /* Doing batch insert file records */
+#define JS_DataDespooling 'l' /* Doing data despooling */
+#define JS_DataCommitting 'L' /* Committing data (last despool) */
/* Migration selection types */
enum {
struct FF_PKT;
struct B_DB;
struct ATTR_DBR;
+struct Plugin;
+struct save_pkt;
+
+#ifdef FILE_DAEMON
+class htable;
+struct TCHDB;
+
+struct CRYPTO_CTX {
+ bool pki_sign; /* Enable PKI Signatures? */
+ bool pki_encrypt; /* Enable PKI Encryption? */
+ DIGEST *digest; /* Last file's digest context */
+ X509_KEYPAIR *pki_keypair; /* Encryption key pair */
+ alist *pki_signers; /* Trusted Signers */
+ alist *pki_recipients; /* Trusted Recipients */
+ CRYPTO_SESSION *pki_session; /* PKE Public Keys + Symmetric Session Keys */
+ POOLMEM *pki_session_encoded; /* Cached DER-encoded copy of pki_session */
+ int32_t pki_session_encoded_size; /* Size of DER-encoded pki_session */
+ POOLMEM *crypto_buf; /* Encryption/Decryption buffer */
+};
+#endif
typedef void (JCR_free_HANDLER)(JCR *jcr);
B_DB *db_batch; /* database pointer for batch insert */
ATTR_DBR *ar; /* DB attribute record */
guid_list *id_list; /* User/group id to name list */
+ bool accurate; /* true if job is accurate */
+
+ void *plugin_ctx_list; /* list of contexts for plugins */
+ void *plugin_ctx; /* current plugin context */
+ Plugin *plugin; /* plugin instance */
+ save_pkt *plugin_sp; /* plugin save packet */
+ char *plugin_options; /* user set options for plugin */
/* Daemon specific part of JCR */
/* This should be empty in the library */
POOLMEM *rpool_source; /* Where migrate read pool came from */
POOLMEM *rstore_source; /* Where read storage came from */
POOLMEM *wstore_source; /* Where write storage came from */
+ POOLMEM *catalog_source; /* Where catalog came from */
int replace; /* Replace option */
int NumVols; /* Number of Volume used in pool */
int reschedule_count; /* Number of times rescheduled */
+ int FDVersion; /* File daemon version number */
int64_t spool_size; /* Spool size for this job */
bool spool_data; /* Spool data in SD */
bool acquired_resource_locks; /* set if resource locks acquired */
bool unlink_bsr; /* Unlink bsr file created */
bool VSS; /* VSS used by FD */
bool Encrypt; /* Encryption used by FD */
+ bool stats_enabled; /* Keep all job records in a table for long term statistics */
#endif /* DIRECTOR_DAEMON */
BSOCK *hb_bsock; /* duped SD socket */
BSOCK *hb_dir_bsock; /* duped DIR socket */
alist *RunScripts; /* Commands to run before and after job */
- bool pki_sign; /* Enable PKI Signatures? */
- bool pki_encrypt; /* Enable PKI Encryption? */
- DIGEST *digest; /* Last file's digest context */
- X509_KEYPAIR *pki_keypair; /* Encryption key pair */
- alist *pki_signers; /* Trusted Signers */
- alist *pki_recipients; /* Trusted Recipients */
- CRYPTO_SESSION *pki_session; /* PKE Public Keys + Symmetric Session Keys */
- uint8_t *pki_session_encoded; /* Cached DER-encoded copy of pki_session */
- int32_t pki_session_encoded_size; /* Size of DER-encoded pki_session */
- POOLMEM *crypto_buf; /* Encryption/Decryption buffer */
+ CRYPTO_CTX crypto; /* Crypto ctx */
DIRRES* director; /* Director resource */
bool VSS; /* VSS used by FD */
+#ifdef USE_TCHDB
+ TCHDB *file_list; /* Previous file list (accurate mode) */
+#else
+ htable *file_list; /* Previous file list (accurate mode) */
+#endif
#endif /* FILE_DAEMON */
/* Storage Daemon specific part of JCR */
JCR *next_dev; /* next JCR attached to device */
JCR *prev_dev; /* previous JCR attached to device */
+ char *dir_auth_key; /* Dir auth key */
pthread_cond_t job_start_wait; /* Wait for FD to start Job */
int type;
DCR *read_dcr; /* device context for reading */