* - We execute the command
* - We continue or exit depending on the return status
*/
-void connection_request(void *arg)
+void *connection_request(void *arg)
{
BSOCK *bs = (BSOCK *)arg;
JCR *jcr;
if (bnet_recv(bs) <= 0) {
Emsg0(M_ERROR, 0, "Connection request failed.\n");
- return;
+ return NULL;
}
/*
*/
if (sscanf(bs->msg, "Hello Start Job %127s calling\n", name) == 1) {
handle_filed_connection(bs, name);
- return;
+ return NULL;
}
jcr = new_jcr(sizeof(JCR), stored_free_jcr); /* create Job Control Record */
if (!authenticate_director(jcr)) {
Jmsg(jcr, M_FATAL, 0, _("Unable to authenticate Director\n"));
free_jcr(jcr);
- return;
+ return NULL;
}
Dmsg0(90, "Message channel init completed.\n");
bnet_sig(bs, BNET_TERMINATE);
}
free_jcr(jcr);
- return;
+ return NULL;
}
/*
if (jcr->file_bsock) {
bnet_sig(jcr->file_bsock, BNET_TERMINATE);
}
+ /* If thread waiting on mount, wake him */
+ if (jcr->device && jcr->device->dev &&
+ (jcr->device->dev->dev_blocked == BST_WAITING_FOR_SYSOP ||
+ jcr->device->dev->dev_blocked == BST_UNMOUNTED ||
+ jcr->device->dev->dev_blocked == BST_UNMOUNTED_WAITING_FOR_SYSOP)) {
+ pthread_cond_signal(&jcr->device->dev->wait_next_vol);
+ }
bnet_fsend(dir, _("3000 Job %s marked to be cancelled.\n"), jcr->Job);
free_jcr(jcr);
}
bnet_fsend(dir, _("3001 Device %s is mounted with Volume %s\n"),
dev->dev_name, dev->VolHdr.VolName);
} else {
- bnet_fsend(dir, _("3905 Device %s open but no Bacula volume is mounted.\n"),
+ bnet_fsend(dir, _("3905 Device %s open but no Bacula volume is mounted.\n"
+ "Try unmounting and remounting the Volume.\n"),
dev->dev_name);
}
break;
bnet_fsend(dir, _("3001 Device %s is mounted with Volume %s\n"),
dev->dev_name, dev->VolHdr.VolName);
} else {
- bnet_fsend(dir, _("3905 Device %s open but no Bacula volume is mounted.\n"),
+ bnet_fsend(dir, _("3905 Device %s open but no Bacula volume is mounted.\n"
+ "Try unmounting and remounting the Volume.\n"),
dev->dev_name);
}
} else {
bnet_fsend(dir, _("3001 Device %s is mounted with Volume %s\n"),
dev->dev_name, dev->VolHdr.VolName);
} else {
- bnet_fsend(dir, _("3905 Device %s open but no Bacula volume is mounted.\n"),
+ bnet_fsend(dir, _("3905 Device %s open but no Bacula volume is mounted.\n"
+ "Try unmounting and remounting the Volume.\n"),
dev->dev_name);
}
}