/*
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 {
jcr->JobStatus == JS_ErrorTerminated || \
jcr->JobStatus == JS_FatalError)
+#define job_waiting(jcr) \
+ (jcr->JobStatus == JS_WaitFD || \
+ jcr->JobStatus == JS_WaitSD || \
+ jcr->JobStatus == JS_WaitMedia || \
+ jcr->JobStatus == JS_WaitMount || \
+ jcr->JobStatus == JS_WaitStoreRes || \
+ jcr->JobStatus == JS_WaitJobRes || \
+ jcr->JobStatus == JS_WaitClientRes|| \
+ jcr->JobStatus == JS_WaitMaxJobs || \
+ jcr->JobStatus == JS_WaitPriority || \
+ jcr->SDJobStatus == JS_WaitMedia || \
+ jcr->SDJobStatus == JS_WaitMount || \
+ jcr->SDJobStatus == JS_WaitMaxJobs)
+
+
+
#define foreach_jcr(jcr) \
for (jcr=jcr_walk_start(); jcr; (jcr=jcr_walk_next(jcr)) )
struct FF_PKT;
struct B_DB;
struct ATTR_DBR;
+struct Plugin;
+struct save_pkt;
+
+#ifdef FILE_DAEMON
+class htable;
+
+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);
time_t start_time; /* when job actually started */
time_t run_time; /* used for computing speed */
time_t end_time; /* job end time */
+ time_t wait_time; /* when job have started to wait */
POOLMEM *client_name; /* client name */
POOLMEM *RestoreBootstrap; /* Bootstrap file to restore */
POOLMEM *stime; /* start time for incremental/differential */
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;
+ 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_TCADB
+ TCADB *file_list; /* Previous file list (accurate mode) */
+ POOLMEM *hash_name;
+#else
+ htable *file_list; /* Previous file list (accurate mode) */
+#endif
#endif /* FILE_DAEMON */