- bstrftime(dt, sizeof(dt), jcr->jr.EndTime);
- Jmsg(jcr, M_INFO, 0, _("%s End Restore Job %s.\n\n"),
- dt, jcr->Job);
-
- Dmsg0(20, "Leaving restore_cleanup\n");
-}
-
-static int send_bootstrap_file(JCR *jcr)
-{
- FILE *bs;
- char buf[1000];
- BSOCK *fd = jcr->file_bsock;
- char *bootstrap = "bootstrap\n";
-
- Dmsg1(400, "send_bootstrap_file: %s\n", jcr->RestoreBootstrap);
- if (!jcr->RestoreBootstrap) {
- return 1;
- }
- bs = fopen(jcr->RestoreBootstrap, "r");
- if (!bs) {
- Jmsg(jcr, M_FATAL, 0, _("Could not open bootstrap file %s: ERR=%s\n"),
- jcr->RestoreBootstrap, strerror(errno));
- jcr->JobStatus = JS_ErrorTerminated;
- return 0;
+ msg_type = M_INFO; /* by default INFO message */
+ switch (TermCode) {
+ case JS_Terminated:
+ if (jcr->ExpectedFiles > jcr->jr.JobFiles) {
+ term_msg = _("Restore OK -- warning file count mismatch");
+ } else {
+ term_msg = _("Restore OK");
+ }
+ break;
+ case JS_FatalError:
+ case JS_ErrorTerminated:
+ term_msg = _("*** Restore Error ***");
+ msg_type = M_ERROR; /* Generate error message */
+ if (jcr->store_bsock) {
+ bnet_sig(jcr->store_bsock, BNET_TERMINATE);
+ if (jcr->SD_msg_chan) {
+ pthread_cancel(jcr->SD_msg_chan);
+ }
+ }
+ break;
+ case JS_Canceled:
+ term_msg = _("Restore Canceled");
+ if (jcr->store_bsock) {
+ bnet_sig(jcr->store_bsock, BNET_TERMINATE);
+ if (jcr->SD_msg_chan) {
+ pthread_cancel(jcr->SD_msg_chan);
+ }
+ }
+ break;
+ default:
+ term_msg = term_code;
+ sprintf(term_code, _("Inappropriate term code: %c\n"), TermCode);
+ break;