bool ret = true;
CurFile *item;
- /* we store CurFile, fname and ctime/mtime in the same chunk */
- item = (CurFile *)jcr->file_list->hash_malloc(sizeof(CurFile)+len);
+ /* we store CurFile, fname and ctime/mtime in the same chunk
+ * we need one extra byte to handle an empty chksum
+ */
+ item = (CurFile *)jcr->file_list->hash_malloc(sizeof(CurFile)+len+3);
item->seen = 0;
/* TODO: see if we can optimize this part with memcpy instead of strcpy */
CurFile elt;
ff_pkt->delta_seq = 0;
+ ff_pkt->accurate_found = false;
if (!jcr->accurate && !jcr->rerunning) {
return true;
goto bail_out;
}
+ ff_pkt->accurate_found = true;
ff_pkt->delta_seq = elt.delta_seq;
- if (elt.seen) { /* file has been seen ? */
- Dmsg1(dbglvl, "accurate %s (already seen)\n", fname);
- goto bail_out;
- }
-
decode_stat(elt.lstat, &statc, sizeof(statc), &LinkFIc); /* decode catalog stat */
if (!jcr->rerunning && (jcr->getJobLevel() == L_FULL)) {
stat = true;
}
break;
-
+ case 'A': /* Always backup a file */
+ stat = true;
+ break;
/* TODO: cleanup and factorise this function with verify.c */
case '5': /* compare MD5 */
case '1': /* compare SHA1 */