jcr->JobStatus == JS_ErrorTerminated || \
jcr->JobStatus == JS_FatalError)
+#define foreach_jcr(jcr) \
+ for ((jcr)=NULL; ((jcr)=get_next_jcr(jcr)); )
+
+
struct JCR;
typedef void (JCR_free_HANDLER)(JCR *jcr);
BSOCK *store_bsock; /* Storage connection socket */
BSOCK *file_bsock; /* File daemon connection socket */
JCR_free_HANDLER *daemon_free_jcr; /* Local free routine */
+ dlist *msg_queue; /* Queued messages */
+ bool dequeuing; /* dequeuing messages */
POOLMEM *errmsg; /* edited error message */
char Job[MAX_NAME_LENGTH]; /* Unique name of this Job */
uint32_t JobId; /* Director's JobId */
MSGS *jcr_msgs; /* Copy of message resource -- actually used */
uint32_t ClientId; /* Client associated with Job */
char *where; /* prefix to restore files to */
- int prefix_links; /* Prefix links with Where path */
+ bool prefix_links; /* Prefix links with Where path */
int cached_pnl; /* cached path length */
POOLMEM *cached_path; /* cached path */
STORE *store; /* Storage resource */
CLIENT *client; /* Client resource */
POOL *pool; /* Pool resource */
+ POOL *full_pool; /* Full backup pool resource */
+ POOL *inc_pool; /* Incremental backup pool resource */
+ POOL *dif_pool; /* Differential backup pool resource */
FILESET *fileset; /* FileSet resource */
CAT *catalog; /* Catalog resource */
MSGS *messages; /* Default message handler */
bool NewVol; /* set when new Volume mounted */
bool WroteVol; /* set when Volume written */
bool NewFile; /* set when EOF written */
+ bool ignore_label_errors; /* ignore Volume label errors */
int CurVol; /* Current Volume count */
uint32_t FileId; /* Last file id inserted */
extern void set_jcr_job_status(JCR *jcr, int JobStatus);
#ifdef DEBUG
-extern void b_free_jcr(char *file, int line, JCR *jcr);
+extern void b_free_jcr(const char *file, int line, JCR *jcr);
#define free_jcr(jcr) b_free_jcr(__FILE__, __LINE__, (jcr))
#else
extern void free_jcr(JCR *jcr);