diff options
Diffstat (limited to 'core/src/stored/dir_cmd.cc')
-rw-r--r-- | core/src/stored/dir_cmd.cc | 49 |
1 files changed, 25 insertions, 24 deletions
diff --git a/core/src/stored/dir_cmd.cc b/core/src/stored/dir_cmd.cc index 078b21d1b..2047de07e 100644 --- a/core/src/stored/dir_cmd.cc +++ b/core/src/stored/dir_cmd.cc @@ -50,7 +50,7 @@ #include "stored/device_control_record.h" #include "stored/sd_device_control_record.h" #include "stored/fd_cmds.h" -#include "stored/jcr_private.h" +#include "stored/stored_jcr_impl.h" #include "stored/job.h" #include "stored/label.h" #include "stored/ndmp_tape.h" @@ -259,7 +259,7 @@ void* HandleDirectorConnection(BareosSocket* dir) jcr->dir_bsock->SetJcr(jcr); // Initialize Start Job condition variable - errstat = pthread_cond_init(&jcr->impl->job_start_wait, NULL); + errstat = pthread_cond_init(&jcr->sd_impl->job_start_wait, NULL); if (errstat != 0) { BErrNo be; Jmsg1(jcr, M_FATAL, 0, @@ -269,7 +269,7 @@ void* HandleDirectorConnection(BareosSocket* dir) } // Initialize End Job condition variable - errstat = pthread_cond_init(&jcr->impl->job_end_wait, NULL); + errstat = pthread_cond_init(&jcr->sd_impl->job_end_wait, NULL); if (errstat != 0) { BErrNo be; Jmsg1(jcr, M_FATAL, 0, _("Unable to init job end cond variable: ERR=%s\n"), @@ -302,7 +302,7 @@ void* HandleDirectorConnection(BareosSocket* dir) found = false; for (i = 0; cmds[i].cmd; i++) { if (bstrncmp(cmds[i].cmd, dir->msg, strlen(cmds[i].cmd))) { - if ((!cmds[i].monitoraccess) && (jcr->impl->director->monitor)) { + if ((!cmds[i].monitoraccess) && (jcr->sd_impl->director->monitor)) { Dmsg1(100, "Command \"%s\" is invalid.\n", cmds[i].cmd); dir->fsend(invalid_cmd); dir->signal(BNET_EOD); @@ -517,13 +517,14 @@ static bool CancelCmd(JobControlRecord* cjcr) } } - oldStatus = jcr->JobStatus; - jcr->setJobStatus(status); + oldStatus = jcr->getJobStatus(); + jcr->setJobStatusWithPriorityCheck(status); Dmsg2(800, "Cancel JobId=%d %p\n", jcr->JobId, jcr); if (!jcr->authenticated && (oldStatus == JS_WaitFD || oldStatus == JS_WaitSD)) { - pthread_cond_signal(&jcr->impl->job_start_wait); /* wake waiting thread */ + pthread_cond_signal( + &jcr->sd_impl->job_start_wait); /* wake waiting thread */ } if (jcr->file_bsock) { @@ -533,23 +534,23 @@ static bool CancelCmd(JobControlRecord* cjcr) } else { if (oldStatus != JS_WaitSD) { // Still waiting for FD to connect, release it - pthread_cond_signal(&jcr->impl->job_start_wait); /* wake waiting job */ + pthread_cond_signal(&jcr->sd_impl->job_start_wait); /* wake waiting job */ Dmsg2(800, "Signal FD connect jid=%d %p\n", jcr->JobId, jcr); } } // If thread waiting on mount, wake him - if (jcr->impl->dcr && jcr->impl->dcr->dev - && jcr->impl->dcr->dev->waiting_for_mount()) { - pthread_cond_broadcast(&jcr->impl->dcr->dev->wait_next_vol); + if (jcr->sd_impl->dcr && jcr->sd_impl->dcr->dev + && jcr->sd_impl->dcr->dev->waiting_for_mount()) { + pthread_cond_broadcast(&jcr->sd_impl->dcr->dev->wait_next_vol); Dmsg1(100, "JobId=%u broadcast wait_device_release\n", (uint32_t)jcr->JobId); ReleaseDeviceCond(); } - if (jcr->impl->read_dcr && jcr->impl->read_dcr->dev - && jcr->impl->read_dcr->dev->waiting_for_mount()) { - pthread_cond_broadcast(&jcr->impl->read_dcr->dev->wait_next_vol); + if (jcr->sd_impl->read_dcr && jcr->sd_impl->read_dcr->dev + && jcr->sd_impl->read_dcr->dev->waiting_for_mount()) { + pthread_cond_broadcast(&jcr->sd_impl->read_dcr->dev->wait_next_vol); Dmsg1(100, "JobId=%u broadcast wait_device_release\n", (uint32_t)jcr->JobId); ReleaseDeviceCond(); @@ -573,7 +574,7 @@ static bool CancelCmd(JobControlRecord* cjcr) } } - pthread_cond_signal(&jcr->impl->job_end_wait); /* wake waiting job */ + pthread_cond_signal(&jcr->sd_impl->job_end_wait); /* wake waiting job */ jcr->MyThreadSendSignal(TIMEOUT_SIGNAL); dir->fsend(_("3000 JobId=%ld Job=\"%s\" marked to be %s.\n"), jcr->JobId, @@ -1319,14 +1320,14 @@ static inline bool GetBootstrapFile(JobControlRecord* jcr, BareosSocket* sock) } fclose(bs); Dmsg0(10, "=== end bootstrap file ===\n"); - jcr->impl->read_session.bsr + jcr->sd_impl->read_session.bsr = libbareos::parse_bsr(jcr, jcr->RestoreBootstrap); - if (!jcr->impl->read_session.bsr) { + if (!jcr->sd_impl->read_session.bsr) { Jmsg(jcr, M_FATAL, 0, _("Error parsing bootstrap file.\n")); goto bail_out; } if (debug_level >= 10) { - libbareos::DumpBsr(jcr->impl->read_session.bsr, true); + libbareos::DumpBsr(jcr->sd_impl->read_session.bsr, true); } /* If we got a bootstrap, we are reading, so create read volume list */ CreateRestoreVolumeList(jcr); @@ -1654,8 +1655,8 @@ static bool ReplicateCmd(JobControlRecord* jcr) storage_daemon_socket->SetSourceAddress(me->SDsrc_addr); if (!jcr->max_bandwidth) { - if (jcr->impl->director->max_bandwidth_per_job) { - jcr->max_bandwidth = jcr->impl->director->max_bandwidth_per_job; + if (jcr->sd_impl->director->max_bandwidth_per_job) { + jcr->max_bandwidth = jcr->sd_impl->director->max_bandwidth_per_job; } else if (me->max_bandwidth_per_job) { jcr->max_bandwidth = me->max_bandwidth_per_job; } @@ -1710,7 +1711,7 @@ static bool ReplicateCmd(JobControlRecord* jcr) connect_state(ReplicateCmdState::kAuthenticated); Dmsg0(110, "Authenticated with SD.\n"); - jcr->impl->remote_replicate = true; + jcr->sd_impl->remote_replicate = true; storage_daemon_socket.release(); /* jcr->store_bsock */ return dir->fsend(OK_replicate); @@ -1823,10 +1824,10 @@ static bool PluginoptionsCmd(JobControlRecord* jcr) } UnbashSpaces(plugin_options); - if (!jcr->impl->plugin_options) { - jcr->impl->plugin_options = new alist<const char*>(10, owned_by_alist); + if (!jcr->sd_impl->plugin_options) { + jcr->sd_impl->plugin_options = new alist<const char*>(10, owned_by_alist); } - jcr->impl->plugin_options->append(strdup(plugin_options)); + jcr->sd_impl->plugin_options->append(strdup(plugin_options)); // Send OK to Director return dir->fsend(OKpluginoptions); |