/* ua_label.c */
bool is_volume_name_legal(UAContext *ua, const char *name);
int get_num_drives_from_SD(UAContext *ua);
+void update_slots(UAContext *ua);
/* ua_output.c */
void prtit(void *ctx, const char *msg);
#include "bacula.h"
#include "dird.h"
-/* Imported functions */
-void update_slots(UAContext *ua);
-
-
-
/* Forward referenced functions */
static int update_volume(UAContext *ua);
static bool update_pool(UAContext *ua);
setlocale(LC_ALL, "");
bindtextdomain("bacula", LOCALEDIR);
textdomain("bacula");
+ init_stack_dump();
my_name_is(argc, argv, "bcopy");
init_msg(NULL, NULL);
setlocale(LC_ALL, "");
bindtextdomain("bacula", LOCALEDIR);
textdomain("bacula");
+ init_stack_dump();
working_directory = "/tmp";
my_name_is(argc, argv, "bextract");
setlocale(LC_ALL, "");
bindtextdomain("bacula", LOCALEDIR);
textdomain("bacula");
+ init_stack_dump();
working_directory = "/tmp";
my_name_is(argc, argv, "bls");
setlocale(LC_ALL, "");
bindtextdomain("bacula", LOCALEDIR);
textdomain("bacula");
+ init_stack_dump();
my_name_is(argc, argv, "bscan");
init_msg(NULL, NULL);
setlocale(LC_ALL, "");
bindtextdomain("bacula", LOCALEDIR);
textdomain("bacula");
+ init_stack_dump();
/* Sanity checks */
if (TAPE_BSIZE % B_DEV_BSIZE != 0 || TAPE_BSIZE / B_DEV_BSIZE == 0) {
if (!dev) {
exit(1);
}
+ if (dev->is_dvd()) {
+ Pmsg0(000, _("btape does not work with DVD storage.\n"));
+ usage();
+ exit(1);
+ }
+ if (!dev->is_tape()) {
+ Pmsg0(000, _("btape only works with tape storage.\n"));
+ usage();
+ exit(1);
+ }
dcr = jcr->dcr;
if (!open_the_device()) {
goto terminate;
/* 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);
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",
#undef VERSION
#define VERSION "1.39.23"
-#define BDATE "12 September 2006"
-#define LSMDATE "12Sep06"
+#define BDATE "13 September 2006"
+#define LSMDATE "13Sep06"
#define BYEAR "2006" /* year for copyright messages in progs */
/* Debug flags */
Technical notes on version 1.39
General:
+13Sep06
+kes Apply Richard Mortimer's patches for printing an error
+ message in btape when a DVD is used, and to initialize traceback.
+kes Added error message to btape when trying to access a file.
+kes Move prototype of update_slots() to protos.h.
12Sep06
kes Add JobErrors, JobFiles, SDJobFiles, SDJobErrors, SDJobStatus,
and FDJobStatus to the Director Python variables.