/* * Select a Storage resource from prompt list */ STORERES *select_storage_resource(UAContext *ua, bool autochanger_only) { STORERES *store; char name[MAX_NAME_LENGTH]; if (autochanger_only) { start_prompt(ua, _("The defined Autochanger Storage resources are:\n")); } else { start_prompt(ua, _("The defined Storage resources are:\n")); } LockRes(); foreach_res(store, R_STORAGE) { if (acl_access_ok(ua, Storage_ACL, store->name())) { if (autochanger_only && !store->autochanger) { continue; } else { add_prompt(ua, store->name()); } } } UnlockRes(); if (do_prompt(ua, _("Storage"), _("Select Storage resource"), name, sizeof(name)) < 0) { return NULL; } store = (STORERES *)GetResWithName(R_STORAGE, name); return store; }
/* * Open a connection to a SD. */ BSOCK *open_sd_bsock(UAContext *ua) { STORERES *store = ua->jcr->res.wstore; if (!ua->jcr->store_bsock) { ua->send_msg(_("Connecting to Storage daemon %s at %s:%d ...\n"), store->name(), store->address, store->SDport); if (!connect_to_storage_daemon(ua->jcr, 10, me->SDConnectTimeout, true)) { ua->error_msg(_("Failed to connect to Storage daemon.\n")); return NULL; } } return ua->jcr->store_bsock; }