X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fstored%2Freserve.c;h=a7763839bf1a6bf084c6218d80821635e9b15a35;hb=22a5d43f2bf48e4d5c056dc17bd7cff90d84290e;hp=d10c0c04271e2cbf24aa0f79302e449d1bec7980;hpb=165798ab74f6a5b70d0084ee4ec36e7fb2c2a786;p=bacula%2Fbacula diff --git a/bacula/src/stored/reserve.c b/bacula/src/stored/reserve.c index d10c0c0427..a7763839bf 100644 --- a/bacula/src/stored/reserve.c +++ b/bacula/src/stored/reserve.c @@ -242,7 +242,7 @@ void free_unused_volume(DCR *dcr) if (vol->dcr == dcr && (vol->dev == NULL || strcmp(vol->vol_name, vol->dev->VolHdr.VolumeName) != 0)) { vol_list->remove(vol); - Dmsg1(100, "free_unused_olume %s\n", vol->vol_name); + Dmsg1(100, "free_unused_volume %s\n", vol->vol_name); free(vol->vol_name); free(vol); break; @@ -254,18 +254,27 @@ void free_unused_volume(DCR *dcr) /* * List Volumes -- this should be moved to status.c */ -void list_volumes(BSOCK *user) +void list_volumes(void sendit(const char *msg, int len, void *sarg), void *arg) { VOLRES *vol; + char *msg; + int len; + + msg = (char *)get_pool_memory(PM_MESSAGE); + P(vol_list_lock); for (vol=(VOLRES *)vol_list->first(); vol; vol=(VOLRES *)vol_list->next(vol)) { if (vol->dev) { - 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); } else { - bnet_fsend(user, "%s\n", vol->vol_name); + len = Mmsg(msg, "%s\n", vol->vol_name); + sendit(msg, len, arg); } } V(vol_list_lock); + + free_pool_memory(msg); } /* Create the Volume list */ @@ -902,7 +911,7 @@ static int can_reserve_drive(DCR *dcr, RCTX &rctx) /* 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); @@ -991,7 +1000,7 @@ static int can_reserve_drive(DCR *dcr, RCTX &rctx) return 1; } else { /* Drive Pool not suitable for us */ - Mmsg(jcr->errmsg, _("3609 JobId=%u wants Pool=\"%s\" but have Pool=\"%s\" on drive %s.\n"), + Mmsg(jcr->errmsg, _("3609 JobId=%u wants Pool=\"%s\" but has Pool=\"%s\" on drive %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", @@ -1046,7 +1055,7 @@ static void queue_reserve_message(JCR *jcr) /* * Send any reservation messages queued for this jcr */ -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) { int i; alist *msgs; @@ -1061,7 +1070,8 @@ void send_drive_reserve_messages(JCR *jcr, BSOCK *user) for (i=msgs->size()-1; i >= 0; i--) { msg = (char *)msgs->get(i); if (msg) { - bnet_fsend(user, " %s", msg); + sendit(" ", 3, arg); + sendit(msg, strlen(msg), arg); } else { break; }