Release Notes for Bacula 1.31
- Bacula code: Total files = 246 Total lines = 70,476 (*.h *.c *.in)
+ Bacula code: Total files = 250 Total lines = 74,253 (*.h *.c *.in)
Major Changes this Release:
- The database format has changed. Please see below.
and underscore.
- Added readline to depkgs (removed from depkgs1) and fixed configuration if
it is not installed in your system libraries.
+- Implemented generalized tape label formats including counter variables.
Other Changes this Release:
Item 2: Make the Storage daemon use intermediate file storage to buffer data.
-Deferred -- not necessary yet.
+Deferred -- not necessary yet -- possibly implement with Migration.
What: If data is coming into the SD too fast, buffer it to
disk if the user has configured this option.
Item 5: Implement Label templates
+Done
What: This is a mechanism whereby Bacula can automatically create
a tape label for new tapes according to a detailed specification
Item 9: Add SSL to daemon communications.
-Inprogress as of version 1.31.
What: This provides for secure communications between the daemons.
- That restoring a hard link that already exists works correctly.
Same for soft link.
- Make Pool resource handle Counter resources.
-
dir_send_job_status(jcr); /* update director */
- Dmsg0(90, "return from do_append_data()\n");
+ Dmsg1(100, "return from do_append_data() stat=%d\n", ok);
return ok ? 1 : 0;
}
break;
}
}
- if (bnet_stat != BNET_TERMINATE) {
- bnet_sig(bs, BNET_TERMINATE);
- }
+ bnet_sig(bs, BNET_TERMINATE);
free_jcr(jcr);
return NULL;
}
set_jcr_job_status(jcr, JS_Terminated);
bnet_fsend(dir, Job_end, jcr->Job, jcr->JobStatus, jcr->JobFiles,
edit_uint64(jcr->JobBytes, ec1));
-
bnet_sig(dir, BNET_EOD); /* send EOD to Director daemon */
return;
}
Dmsg1(120, "Append data: %s", fd->msg);
if (jcr->session_opened) {
Dmsg1(110, "<bfiled: %s", fd->msg);
+ jcr->JobType = JT_BACKUP;
if (do_append_data(jcr)) {
bnet_fsend(fd, OK_append);
- jcr->JobType = JT_BACKUP;
return 1;
} else {
bnet_suppress_error_messages(fd, 1); /* ignore errors at this point */
bnet_fsend(fd, NOT_opened);
return 0;
}
+ set_jcr_job_status(jcr, JS_Terminated);
return bnet_fsend(fd, OK_end);
}
}
/* Send final statistics to File daemon */
bnet_fsend(fd, OK_close, jcr->JobStatus);
- Dmsg1(160, ">filed: %s\n", fd->msg);
+ Dmsg1(120, ">filed: %s\n", fd->msg);
bnet_sig(fd, BNET_EOD); /* send EOD to File daemon */
jcr->JobId = JobId;
jcr->VolSessionId = newVolSessionId();
jcr->VolSessionTime = VolSessionTime;
- strcpy(jcr->Job, job);
+ bstrncpy(jcr->Job, job, sizeof(jcr->Job));
unbash_spaces(job_name);
- jcr->job_name = get_memory(strlen(job_name) + 1);
- strcpy(jcr->job_name, job_name);
+ jcr->job_name = get_pool_memory(PM_NAME);
+ pm_strcpy(&jcr->job_name, job_name);
unbash_spaces(client_name);
- jcr->client_name = get_memory(strlen(client_name) + 1);
- strcpy(jcr->client_name, client_name);
+ jcr->client_name = get_pool_memory(PM_NAME);
+ pm_strcpy(&jcr->client_name, client_name);
unbash_spaces(fileset_name);
- jcr->fileset_name = get_memory(strlen(fileset_name) + 1);
- strcpy(jcr->fileset_name, fileset_name);
+ jcr->fileset_name = get_pool_memory(PM_NAME);
+ pm_strcpy(&jcr->fileset_name, fileset_name);
jcr->JobType = JobType;
jcr->JobLevel = level;
jcr->no_attributes = no_attributes;
jcr->spool_attributes = spool_attributes;
- jcr->fileset_md5 = get_memory(strlen(fileset_md5) + 1);
- strcpy(jcr->fileset_md5, fileset_md5);
+ jcr->fileset_md5 = get_pool_memory(PM_NAME);
+ pm_strcpy(&jcr->fileset_md5, fileset_md5);
free_memory(job);
free_memory(job_name);
free_memory(client_name);