- Figure out how to use ssh or stunnel to protect Bacula communications.
For 1.31 release:
+- Listing of Win32 restored files has ??????? for user.
- Do full check the command line args in update (e.g. VolStatus ...).
- In Win portable restore the directory is not create
27-Jun-2003 16:52 tibs-fd: kernsrestore.2003-06-27_16.52.20 Error:
For 1.32:
+- Allow multiple Storage specifications (or multiple names on
+ a single Storage specification) in the Job record. Thus a job
+ can be backed up to a number of storage devices.
- Add client name to cram-md5 challenge so Director can immediately
verify if it is the correct client.
- Implement ClientRunBeforeJob and ClientRunAfterJob.
- Add thread specific data to hold the jcr -- send error messages from
low level routines by accessing it and using Jmsg().
- Cancel waiting for Client connect in SD if FD goes away.
-- Testing Tibs job erred and hung director on Storage resource. This was
- because there were a whole pile of jobs hanging around in the SD
- waiting for a connection from the FD that was never coming.
-- Possibly update all client records at startup.
- Add Progress command that periodically reports the progress of
a job or all jobs.
disk only when the tape is full, then when a tape is hung move
it to tape.
- Implement a relocatable bacula.spec
-- Allow multiple Storage specifications (or multiple names on
- a single Storage specification) in the Job record. Thus a job
- can be backed up to a number of storage devices.
- Implement dump/print label to UA
- Add prefixlinks to where or not where absolute links to FD.
- Issue message to mount a new tape before the rewind.
- Pass prefix_links to FD.
- Fix restore list of volumes if Volume not selected.
- Complete (or turn off) the command line code in update.
+- Testing Tibs job erred and hung director on Storage resource. This was
+ because there were a whole pile of jobs hanging around in the SD
+ waiting for a connection from the FD that was never coming.
+- Possibly update all client records at startup.
dev->EndBlock = dev->block_num;
dev->EndFile = dev->file;
dev->block_num++;
- block->BlockNumber++;
/* Update jcr values */
if (dev->state & ST_TAPE) {
POOLMEM *buf; /* actual data buffer */
};
-#define block_is_empty(block) !((block)->read_len)
+#define block_is_empty(block) ((block)->read_len == 0)
#endif
continue;
}
Dmsg5(100, "Blk=%u blen=%u bVer=%d SessId=%u SessTim=%u\n",
- block->BlockNumber, block->block_len, block->BlockVer,
- block->VolSessionId, block->VolSessionTime);
+ block->BlockNumber, block->block_len, block->BlockVer,
+ block->VolSessionId, block->VolSessionTime);
if (verbose == 1) {
read_record_from_block(block, rec);
Pmsg7(-1, "Block: %u blen=%u First rec FI=%s SessId=%u SessTim=%u Strm=%s rlen=%d\n",
}
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",
+ Dmsg5(150, "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 */
}
}
if (!match_bsr_block(jcr->bsr, block)) {
- Dmsg5(100, "reject Blk=%u blen=%u bVer=%d SessId=%u SessTim=%u\n",
+ Dmsg5(150, "reject Blk=%u blen=%u bVer=%d SessId=%u SessTim=%u\n",
block->BlockNumber, block->block_len, block->BlockVer,
block->VolSessionId, block->VolSessionTime);
continue;
}
if (verbose) {
- Dmsg4(000, "Block: %d VI=%u VT=%u blen=%d\n", block->BlockNumber,
+ Pmsg4(000, "Block: %d VI=%u VT=%u blen=%d\n", block->BlockNumber,
block->VolSessionId, block->VolSessionTime, block->block_len);
}