Kern's ToDo List
- 2 December 2002
+ 5 December 2002
Documentation to do: (a little bit at a time)
- Document running a test version.
Testing to do: (painful)
- that restore options work in FD.
-- that mod of restore options works.
- that console command line options work
- blocksize recognition code.
- Test new BSR code
- Put Bacula version somewhere in Job stream, probably Start Session Labels.
- Fix start/end blocks for File devices
- Make Job err if WriteBootstrap fails.
+- Test that mod of restore options works.
+- Test that week position schedule code works.
*/
int match_bsr(BSR *bsr, DEV_RECORD *rec, VOLUME_LABEL *volrec, SESSION_LABEL *sessrec)
{
- if (!bsr) {
- return 0;
+ int stat;
+
+ if (bsr) {
+ stat = match_all(bsr, rec, volrec, sessrec, 1);
+ } else {
+ stat = 0;
}
- return match_all(bsr, rec, volrec, sessrec, 1);
+// Dmsg1(000, "BSR returning %d\n", stat);
+ return stat;
}
/*
BSOCK *ds;
BSOCK *fd_sock = jcr->file_bsock;
int ok = TRUE;
+ int done = FALSE;
DEVICE *dev;
DEV_RECORD *rec;
DEV_BLOCK *block;
* Read records, apply BSR filtering, and return any that are
* matched.
*/
- for ( ;ok; ) {
+ for ( ;ok && !done; ) {
if (job_cancelled(jcr)) {
ok = FALSE;
break;
if (jcr->bsr) {
int stat = match_bsr(jcr->bsr, rec, &dev->VolHdr, &sessrec);
if (stat == -1) { /* no more possible matches */
- ok = FALSE;
+ done = TRUE;
break;
} else if (stat == 0) { /* no match */
Dmsg0(50, "BSR rejected record\n");
* out the data record
*/
ds->msg = hdr;
+ Dmsg5(400, "Send to FD: SessId=%u SessTim=%u FI=%d Strm=%d, len=%d\n",
+ rec->VolSessionId, rec->VolSessionTime, rec->FileIndex, rec->Stream,
+ rec->data_len);
if (!bnet_fsend(ds, rec_header, rec->VolSessionId, rec->VolSessionTime,
rec->FileIndex, rec->Stream, rec->data_len)) {
Dmsg1(30, ">filed: Error Hdr=%s\n", ds->msg);
uint32_t record, num_files = 0;
int verbose = FALSE;
int ok = TRUE;
+ int done = FALSE;
SESSION_LABEL sessrec;
block = new_block(dev);
rec = new_record();
- for ( ;ok; ) {
+ for ( ;ok && !done; ) {
if (job_cancelled(jcr)) {
ok = FALSE;
break;
if (jcr->bsr) {
int stat = match_bsr(jcr->bsr, rec, &dev->VolHdr, &sessrec);
if (stat == -1) { /* no more possible matches */
- ok = FALSE;
+ done = TRUE; /* all items found, stop */
break;
} else if (stat == 0) { /* no match */
if (verbose) {