}
}
- bnet_fsend(fd, storaddr, store->address, store->SDDport, tls_need);
+ fd->fsend(storaddr, store->address, store->SDDport, tls_need);
if (!response(jcr, fd, OKstore, "Storage", DISPLAY_ERROR)) {
goto bail_out;
}
}
/* Send backup command */
- bnet_fsend(fd, backupcmd);
+ fd->fsend(backupcmd);
if (!response(jcr, fd, OKbackup, "backup", DISPLAY_ERROR)) {
goto bail_out;
}
set_jcr_job_status(jcr, JS_ErrorTerminated);
Dmsg1(400, "wait for sd. use=%d\n", jcr->use_count());
/* Cancel SD */
- if (jcr->store_bsock) {
- jcr->store_bsock->fsend("cancel Job=%s\n", jcr->Job);
- }
+ cancel_storage_daemon_job(jcr);
wait_for_storage_daemon_termination(jcr);
Dmsg1(400, "after wait for sd. use=%d\n", jcr->use_count());
return false;
if (is_bnet_error(fd)) {
Jmsg(jcr, M_FATAL, 0, _("Network error with FD during %s: ERR=%s\n"),
- job_type_to_str(jcr->JobType), bnet_strerror(fd));
+ job_type_to_str(jcr->JobType), fd->bstrerror());
+ }
+ fd->signal(BNET_TERMINATE); /* tell Client we are terminating */
+
+ /* Force cancel in SD if failing */
+ if (job_canceled(jcr) || !fd_ok) {
+ cancel_storage_daemon_job(jcr);
}
- bnet_sig(fd, BNET_TERMINATE); /* tell Client we are terminating */
/* Note, the SD stores in jcr->JobFiles/ReadBytes/JobBytes/Errors */
wait_for_storage_daemon_termination(jcr);
term_msg = _("*** Backup Error ***");
msg_type = M_ERROR; /* Generate error message */
if (jcr->store_bsock) {
- bnet_sig(jcr->store_bsock, BNET_TERMINATE);
+ jcr->store_bsock->signal(BNET_TERMINATE);
if (jcr->SD_msg_chan) {
pthread_cancel(jcr->SD_msg_chan);
}
case JS_Canceled:
term_msg = _("Backup Canceled");
if (jcr->store_bsock) {
- bnet_sig(jcr->store_bsock, BNET_TERMINATE);
+ jcr->store_bsock->signal(BNET_TERMINATE);
if (jcr->SD_msg_chan) {
pthread_cancel(jcr->SD_msg_chan);
}
" Rate: %.1f KB/s\n"
" Software Compression: %s\n"
" VSS: %s\n"
-" Encryption: %s\n"
+" Storage Encryption: %s\n"
" Volume name(s): %s\n"
" Volume Session Id: %d\n"
" Volume Session Time: %d\n"