if (vol->dcr == dcr && (vol->dev == NULL ||
strcmp(vol->vol_name, vol->dev->VolHdr.VolumeName) != 0)) {
vol_list->remove(vol);
if (vol->dcr == dcr && (vol->dev == NULL ||
strcmp(vol->vol_name, vol->dev->VolHdr.VolumeName) != 0)) {
vol_list->remove(vol);
- bnet_fsend(user, "%s on device %s\n", vol->vol_name, vol->dev->print_name());
+ len = Mmsg(msg, "%s on device %s\n", vol->vol_name, vol->dev->print_name());
+ sendit(msg, len, arg);
* If there are multiple devices, the director sends us
* use_device for each device that it wants to use.
*/
* If there are multiple devices, the director sends us
* use_device for each device that it wants to use.
*/
- jcr->dirstore = New(alist(10, not_owned_by_alist));
+ dirstore = New(alist(10, not_owned_by_alist));
+// Dmsg2(000, "dirstore=%p JobId=%u\n", dirstore, jcr->JobId);
msgs = jcr->reserve_msgs = New(alist(10, not_owned_by_alist));
do {
Dmsg1(100, "<dird: %s", dir->msg);
msgs = jcr->reserve_msgs = New(alist(10, not_owned_by_alist));
do {
Dmsg1(100, "<dird: %s", dir->msg);
unbash_spaces(store_name);
unbash_spaces(media_type);
unbash_spaces(pool_name);
unbash_spaces(pool_type);
store = new DIRSTORE;
unbash_spaces(store_name);
unbash_spaces(media_type);
unbash_spaces(pool_name);
unbash_spaces(pool_type);
store = new DIRSTORE;
memset(store, 0, sizeof(DIRSTORE));
store->device = New(alist(10));
bstrncpy(store->name, store_name, sizeof(store->name));
memset(store, 0, sizeof(DIRSTORE));
store->device = New(alist(10));
bstrncpy(store->name, store_name, sizeof(store->name));
Dmsg5(110, "Storage=%s media_type=%s pool=%s pool_type=%s append=%d\n",
store->name, store->media_type, store->pool_name,
store->pool_type, store->append);
Dmsg5(110, "Storage=%s media_type=%s pool=%s pool_type=%s append=%d\n",
store->name, store->media_type, store->pool_name,
store->pool_type, store->append);
/*
* For each storage device that the user specified, we
* search and see if there is a resource for that device.
/*
* For each storage device that the user specified, we
* search and see if there is a resource for that device.
rctx.PreferMountedVols, rctx.exact_match, rctx.suitable_device,
rctx.autochanger_only);
ok = false;
rctx.PreferMountedVols, rctx.exact_match, rctx.suitable_device,
rctx.autochanger_only);
ok = false;
/* Check for prefer mounted volumes */
if (rctx.PreferMountedVols && !dev->VolHdr.VolumeName[0] && dev->is_tape()) {
/* Check for prefer mounted volumes */
if (rctx.PreferMountedVols && !dev->VolHdr.VolumeName[0] && dev->is_tape()) {
- Mmsg(jcr->errmsg, _("3606 JobId=%u wants mounted, but drive %s has no Volume.\n"),
+ Mmsg(jcr->errmsg, _("3606 JobId=%u prefers mounted drives, but drive %s has no Volume.\n"),
jcr->JobId, dev->print_name());
queue_reserve_message(jcr);
Dmsg1(110, "failed: want mounted -- no vol JobId=%u\n", jcr->JobId);
jcr->JobId, dev->print_name());
queue_reserve_message(jcr);
Dmsg1(110, "failed: want mounted -- no vol JobId=%u\n", jcr->JobId);
jcr->JobId, dcr->pool_name, dev->pool_name, dev->print_name());
queue_reserve_message(jcr);
Dmsg2(110, "failed: busy num_writers>0, can_append, pool=%s wanted=%s\n",
jcr->JobId, dcr->pool_name, dev->pool_name, dev->print_name());
queue_reserve_message(jcr);
Dmsg2(110, "failed: busy num_writers>0, can_append, pool=%s wanted=%s\n",
-void send_drive_reserve_messages(JCR *jcr, BSOCK *user)
+void send_drive_reserve_messages(JCR *jcr, void sendit(const char *msg, int len, void *sarg), void *arg)