src/filed/accurate.c
static bool accurate_send_deleted_list(JCR *jcr)
{
   CurFile *elt;
   struct stat statc;
   int32_t LinkFIc;
   bctx_t bctx;

   memset(&bctx, 0, sizeof(bctx));
   bctx.jcr = jcr;
   bctx.data_stream = STREAM_UNIX_ATTRIBUTES;

   if (!jcr->accurate) {
      return true;
   }

   if (jcr->file_list == NULL) {
      return true;
   }

   bctx.ff_pkt = init_find_files();
   bctx.ff_pkt->type = FT_DELETED;

   foreach_htable(elt, jcr->file_list) {
      if (elt->seen || plugin_check_file(jcr, elt->fname)) {
         continue;
      }
      Dmsg2(dbglvl, "deleted fname=%s seen=%i\n", elt->fname, elt->seen);
      /* TODO: skip the decode and use directly the lstat field */
      decode_stat(elt->lstat, &statc, sizeof(statc), &LinkFIc); /* decode catalog stat */
      bctx.ff_pkt->fname = elt->fname;
      bctx.ff_pkt->statp.st_mtime = statc.st_mtime;
      bctx.ff_pkt->statp.st_ctime = statc.st_ctime;
      encode_and_send_attributes(bctx);
//    free(elt->fname);
   }

   term_find_files(bctx.ff_pkt);
   return true;
}
/* This function is called at the end of backup
 * We walk over all hash disk element, and we check
 * for elt.seen.
 */
This function is called at the end of backup
We walk over all hash disk element, and we check
for elt.seen.
This function is called at the end of backup We walk over all hash disk element and we check for elt . seen .
static bool accurate_send_deleted_list(JCR *jcr)
{
   CurFile *elt;
   struct stat statc;
   int32_t LinkFIc;
   bctx_t bctx;
   memset(&bctx, 0, sizeof(bctx));
   bctx.jcr = jcr;
   bctx.data_stream = STREAM_UNIX_ATTRIBUTES;
   if (!jcr->accurate) {
      return true;
   }
   if (jcr->file_list == NULL) {
      return true;
   }
   bctx.ff_pkt = init_find_files();
   bctx.ff_pkt->type = FT_DELETED;
   foreach_htable(elt, jcr->file_list) {
      if (elt->seen || plugin_check_file(jcr, elt->fname)) {
         continue;
      }
      Dmsg2(dbglvl, "deleted fname=%s seen=%i\n", elt->fname, elt->seen);
      decode_stat(elt->lstat, &statc, sizeof(statc), &LinkFIc); 
      bctx.ff_pkt->fname = elt->fname;
      bctx.ff_pkt->statp.st_mtime = statc.st_mtime;
      bctx.ff_pkt->statp.st_ctime = statc.st_ctime;
      encode_and_send_attributes(bctx);
   }
   term_find_files(bctx.ff_pkt);
   return true;
}
static bool accurate_send_deleted_list ( JCR * jcr ) { CurFile * elt ; struct stat statc ; int32_t LinkFIc ; bctx_t bctx ; memset ( & bctx , 0 , sizeof ( bctx ) ) ; bctx . jcr = jcr ; bctx . data_stream = STREAM_UNIX_ATTRIBUTES ; if ( ! jcr -> accurate ) { return true ; } if ( jcr -> file_list == NULL ) { return true ; } bctx . ff_pkt = init_find_files ( ) ; bctx . ff_pkt -> type = FT_DELETED ; foreach_htable ( elt , jcr -> file_list ) { if ( elt -> seen || plugin_check_file ( jcr , elt -> fname ) ) { continue ; } Dmsg2 ( dbglvl , " \n " , elt -> fname , elt -> seen ) ; decode_stat ( elt -> lstat , & statc , sizeof ( statc ) , & LinkFIc ) ; bctx . ff_pkt -> fname = elt -> fname ; bctx . ff_pkt -> statp . st_mtime = statc . st_mtime ; bctx . ff_pkt -> statp . st_ctime = statc . st_ctime ; encode_and_send_attributes ( bctx ) ; } term_find_files ( bctx . ff_pkt ) ; return true ; }
This function is called at the end of backup
 We walk over all hash disk element, and we check
 for elt.seen.
This function is called at the end of backup We walk over all hash disk element and we check for elt . seen .
/* TODO: skip the decode and use directly the lstat field */ /* decode catalog stat */ //    free(elt->fname);