jcr->unlock();
}
-static int cancel_file_daemon_job(UAContext *ua, const char *cmd, JCR *jcr)
+static bool cancel_file_daemon_job(UAContext *ua, const char *cmd, JCR *jcr)
{
+ CLIENT *old_client;
+
if (!jcr->client) {
Dmsg0(100, "No client to cancel\n");
- return 0;
+ return false;
}
+ old_client = ua->jcr->client;
ua->jcr->client = jcr->client;
if (!connect_to_file_daemon(ua->jcr, 10, FDConnectTimeout, 1)) {
ua->error_msg(_("Failed to connect to File daemon.\n"));
- return 0;
+ ua->jcr->client = old_client;
+ return false;
}
Dmsg0(100, "Connected to file daemon\n");
BSOCK *fd = ua->jcr->file_bsock;
}
fd->signal(BNET_TERMINATE);
free_bsock(ua->jcr->file_bsock);
- ua->jcr->client = NULL;
- return 1;
+ ua->jcr->client = old_client;
+ return true;
}
static bool cancel_sd_job(UAContext *ua, const char *cmd, JCR *jcr)
JOB_DBR jr;
int i;
USTORE store;
+ CLIENT *client;
if (!jcr->client) {
memset(&cr, 0, sizeof(cr));
}
if (acl_access_ok(ua, Client_ACL, cr.Name)) {
- jcr->client = (CLIENT *)GetResWithName(R_CLIENT, cr.Name);
+ client = (CLIENT *)GetResWithName(R_CLIENT, cr.Name);
+ if (client) {
+ jcr->client = client;
+ } else {
+ Jmsg1(jcr, M_FATAL, 0, _("Client resource \"%s\" does not exist.\n"), cr.Name);
+ goto bail_out;
+ }
+ } else {
+ goto bail_out;
}
}
if (jcr->run_next_pool_override) {
pm_strcpy(jcr->next_pool_source, _("Run NextPool override"));
pm_strcpy(jcr->pool_source, _("Run NextPool override"));
- source = _("Storage from Run NextPool override");
+ source = _("Run NextPool override");
} else if (jcr->job->next_pool) {
/* Use Job Next Pool */
jcr->next_pool = jcr->job->next_pool;
pm_strcpy(jcr->next_pool_source, _("Job's NextPool resource"));
pm_strcpy(jcr->pool_source, _("Job's NextPool resource"));
- source = _("Storage from Job's NextPool resource");
+ source = _("Job's NextPool resource");
} else {
/* Default to original pool->NextPool */
jcr->next_pool = opool->NextPool;
}
pm_strcpy(jcr->next_pool_source, _("Job Pool's NextPool resource"));
pm_strcpy(jcr->pool_source, _("Job Pool's NextPool resource"));
- source = _("Storage from Pool's NextPool resource");
+ source = _("Pool's NextPool resource");
}
/*
copy_rwstorage(jcr, job->pool->storage, _("Pool resource"));
}
jcr->client = job->client;
+ ASSERT2(jcr->client, "jcr->client==NULL!!!");
if (!jcr->client_name) {
jcr->client_name = get_pool_memory(PM_NAME);
}
pm_strcpy(jcr->client_name, jcr->client->name());
jcr->pool = job->pool;
pm_strcpy(jcr->pool_source, _("Job resource"));
- jcr->next_pool = job->pool->NextPool;
- pm_strcpy(jcr->next_pool_source, _("Job's NextPool resource"));
+ if (job->next_pool) {
+ /* Use Job's Next Pool */
+ jcr->next_pool = job->next_pool;
+ pm_strcpy(jcr->next_pool_source, _("Job's NextPool resource"));
+ } else {
+ /* Default to original pool->NextPool */
+ jcr->next_pool = job->pool->NextPool;
+ pm_strcpy(jcr->next_pool_source, _("Job Pool's NextPool resource"));
+ }
jcr->full_pool = job->full_pool;
jcr->inc_pool = job->inc_pool;
jcr->diff_pool = job->diff_pool;