]> git.sur5r.net Git - bacula/bacula/blobdiff - bacula/src/stored/read.c
Add V: to bextract and bscan
[bacula/bacula] / bacula / src / stored / read.c
index 3434eb260c053f5d0ceee7ab38c10dbcdfbbf58c..b47362e48a6ff8d97466ca71de119809fea4f5c9 100644 (file)
@@ -141,6 +141,14 @@ int do_read_data(JCR *jcr)
         }
       }
 
+      if (!block_is_empty(block) && !match_bsr_block(jcr->bsr, block)) {
+         Dmsg5(100, "reject Blk=%u blen=%u bVer=%d SessId=%u SessTim=%u\n",
+           block->BlockNumber, block->block_len, block->BlockVer,
+           block->VolSessionId, block->VolSessionTime);
+        empty_block(block);          /* force read next block */
+        continue;
+      }
+
       for (rec->state=0; !is_block_empty(rec); ) {
 
         if (!read_record_from_block(block, rec)) {
@@ -188,11 +196,11 @@ int do_read_data(JCR *jcr)
         }
 
         if (block->block_read) {
-           if (++BlockNumber != block->BlockNumber) {
+           if (BlockNumber != block->BlockNumber) {
                Jmsg(jcr, M_ERROR, 0, _("Invalid block number. Expected %u, got %u\n"),
                    BlockNumber, block->BlockNumber);
            }
-           BlockNumber = block->BlockNumber;
+           BlockNumber = block->BlockNumber + 1;
            block->block_read = false;
         }