X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=bacula%2Fsrc%2Fdird%2Fua_cmds.c;h=481b51b0e3294762be72aa334c42abfb61a77294;hb=44566f589dd96e4414e38ec4bf7d76b22fbcd9aa;hp=9869bb281e92c78df6555c2f20cf81dd84f6258b;hpb=ea215608c5a258f63390eb3a0dc8a6ae49586824;p=bacula%2Fbacula diff --git a/bacula/src/dird/ua_cmds.c b/bacula/src/dird/ua_cmds.c index 9869bb281e..481b51b0e3 100644 --- a/bacula/src/dird/ua_cmds.c +++ b/bacula/src/dird/ua_cmds.c @@ -1301,6 +1301,7 @@ static void do_mount_cmd(UAContext *ua, const char *command) JCR *jcr = ua->jcr; char dev_name[MAX_NAME_LENGTH]; int drive; + int slot = -1; if (!open_db(ua)) { return; @@ -1313,6 +1314,9 @@ static void do_mount_cmd(UAContext *ua, const char *command) } set_wstorage(jcr, store); drive = get_storage_drive(ua, store); + if (strcmp(command, "mount") == 0) { + slot = get_storage_slot(ua, store); + } Dmsg3(120, "Found storage, MediaType=%s DevName=%s drive=%d\n", store->media_type, store->dev_name(), drive); @@ -1324,7 +1328,11 @@ static void do_mount_cmd(UAContext *ua, const char *command) sd = jcr->store_bsock; bstrncpy(dev_name, store->dev_name(), sizeof(dev_name)); bash_spaces(dev_name); - bnet_fsend(sd, "%s %s drive=%d", command, dev_name, drive); + if (slot > 0) { + bnet_fsend(sd, "%s %s drive=%d slot=%d", command, dev_name, drive, slot); + } else { + bnet_fsend(sd, "%s %s drive=%d", command, dev_name, drive); + } while (bnet_recv(sd) >= 0) { bsendmsg(ua, "%s", sd->msg); } @@ -1334,7 +1342,7 @@ static void do_mount_cmd(UAContext *ua, const char *command) } /* - * mount [storage=] [drive=nn] + * mount [storage=] [drive=nn] [slot=mm] */ static int mount_cmd(UAContext *ua, const char *cmd) { @@ -1578,9 +1586,8 @@ static int version_cmd(UAContext *ua, const char *cmd) } -/* A bit brain damaged in that if the user has not done - * a "use catalog xxx" command, we simply find the first - * catalog resource and open it. +/* + * Open the catalog database. */ bool open_db(UAContext *ua) { @@ -1588,19 +1595,10 @@ bool open_db(UAContext *ua) return true; } if (!ua->catalog) { - LockRes(); - ua->catalog = (CAT *)GetNextRes(R_CATALOG, NULL); - UnlockRes(); + ua->catalog = get_catalog_resource(ua); if (!ua->catalog) { bsendmsg(ua, _("Could not find a Catalog resource\n")); return false; - } else if (!acl_access_ok(ua, Catalog_ACL, ua->catalog->hdr.name)) { - bsendmsg(ua, _("You must specify a \"use \" command before continuing.\n")); - ua->catalog = NULL; - return false; - } else { - bsendmsg(ua, _("Using default Catalog name=%s DB=%s\n"), - ua->catalog->hdr.name, ua->catalog->db_name); } }