#define JS_FatalError 'f' /* Fatal error */
#define JS_Differences 'D' /* Verify differences */
#define JS_Canceled 'A' /* canceled by user */
+#define JS_Incomplete 'I' /* Incomplete Job */
#define JS_WaitFD 'F' /* waiting on File daemon */
#define JS_WaitSD 'S' /* waiting on the Storage daemon */
#define JS_WaitMedia 'm' /* waiting for new media */
#define job_canceled(jcr) \
(jcr->JobStatus == JS_Canceled || \
jcr->JobStatus == JS_ErrorTerminated || \
- jcr->JobStatus == JS_FatalError)
+ jcr->JobStatus == JS_FatalError || \
+ jcr->JobStatus == JS_Incomplete \
+ )
#define job_waiting(jcr) \
(jcr->JobStatus == JS_WaitFD || \
struct Plugin;
struct save_pkt;
struct bpContext;
+struct xattr_private_data_t;
#ifdef FILE_DAEMON
class htable;
+struct acl_data_t;
+struct xattr_data_t;
struct CRYPTO_CTX {
bool pki_sign; /* Enable PKI Signatures? */
void init_mutex(void) {pthread_mutex_init(&mutex, NULL); };
void destroy_mutex(void) {pthread_mutex_destroy(&mutex); };
bool is_job_canceled() {return job_canceled(this); };
+ void set_JobLevel(int32_t JobLevel) { m_JobLevel = JobLevel; };
+ void setJobLevel(int32_t JobLevel) { m_JobLevel = JobLevel; };
+ void set_JobType(int32_t JobType) { m_JobType = JobType; };
+ void setJobType(int32_t JobType) { m_JobType = JobType; };
int32_t get_JobType() { return m_JobType; };
int32_t getJobType() { return m_JobType; };
int32_t get_JobLevel() { return m_JobLevel; };
};
const char *get_OperationName(); /* in lib/jcr.c */
const char *get_ActionName(bool past); /* in lib/jcr.c */
- void set_JobLevel(int32_t JobLevel); /* in lib/jcr.c */
- void setJobLevel(int32_t JobLevel); /* in lib/jcr.c */
- void set_JobType(int32_t JobType); /* in lib/jcr.c */
- void setJobType(int32_t JobType); /* in lib/jcr.c */
void setJobStatus(int JobStatus); /* in lib/jcr.c */
bool JobReads(); /* in lib/jcr.c */
bool stats_enabled; /* Keep all job records in a table for long term statistics */
bool no_maxtime; /* Don't check Max*Time for this JCR */
bool keep_sd_auth_key; /* Clear or not the SD auth key after connection*/
+ bool use_accurate_chksum; /* Use or not checksum option in accurate code */
#endif /* DIRECTOR_DAEMON */
/* File Daemon specific part of JCR */
uint32_t num_files_examined; /* files examined this job */
POOLMEM *last_fname; /* last file saved/verified */
- POOLMEM *acl_data; /* data with ACLs for backup/restore */
- uint32_t acl_data_len; /* length of acl data buffer */
- POOLMEM *xattr_data; /* data with Extended Attributes for backup/restore */
- uint32_t xattr_data_len; /* length of xattr_data buffer */
+ acl_data_t *acl_data; /* ACLs for backup/restore */
+ xattr_data_t *xattr_data; /* Extended Attributes for backup/restore */
int32_t last_type; /* type of last file saved/verified */
int incremental; /* set if incremental for SINCE */
utime_t mtime; /* begin time for SINCE */
alist *reserve_msgs; /* reserve fail messages */
bool write_part_after_job; /* Set to write part after job */
bool PreferMountedVols; /* Prefer mounted vols rather than new */
+ bool Resched; /* Job may be rescheduled */
/* Parmaters for Open Read Session */
BSR *bsr; /* Bootstrap record -- has everything */
/* The following routines are found in lib/jcr.c */
+extern int get_next_jobid_from_list(char **p, uint32_t *JobId);
extern bool init_jcr_subsystem(void);
extern JCR *new_jcr(int size, JCR_free_HANDLER *daemon_free_jcr);
extern JCR *get_jcr_by_id(uint32_t JobId);