diff options
Diffstat (limited to 'core/src/filed/dir_cmd.cc')
-rw-r--r-- | core/src/filed/dir_cmd.cc | 258 |
1 files changed, 135 insertions, 123 deletions
diff --git a/core/src/filed/dir_cmd.cc b/core/src/filed/dir_cmd.cc index a47ca928f..5a49052f5 100644 --- a/core/src/filed/dir_cmd.cc +++ b/core/src/filed/dir_cmd.cc @@ -36,7 +36,7 @@ #include "filed/evaluate_job_command.h" #include "filed/heartbeat.h" #include "filed/fileset.h" -#include "filed/jcr_private.h" +#include "filed/filed_jcr_impl.h" #include "filed/socket_server.h" #include "filed/restore.h" #include "filed/verify.h" @@ -68,7 +68,7 @@ extern bool restore_only_mode; /** * As Windows saves ACLs as part of the standard backup stream - * we just pretend here that is has implicit acl support. + * we just pretend here that is has fd_implicit acl support. */ #if defined(HAVE_ACL) || defined(HAVE_WIN32) const bool have_acl = true; @@ -302,7 +302,7 @@ static inline void CleanupFileset(JobControlRecord* jcr) findIncludeExcludeItem* incexe; findFOPTS* fo; - fileset = jcr->impl->ff->fileset; + fileset = jcr->fd_impl->ff->fileset; if (fileset) { // Delete FileSet Include lists for (int i = 0; i < fileset->include_list.size(); i++) { @@ -363,7 +363,7 @@ static inline void CleanupFileset(JobControlRecord* jcr) fileset->exclude_list.destroy(); free(fileset); } - jcr->impl->ff->fileset = nullptr; + jcr->fd_impl->ff->fileset = nullptr; } static inline bool AreMaxConcurrentJobsExceeded() @@ -382,7 +382,7 @@ static inline bool AreMaxConcurrentJobsExceeded() static JobControlRecord* NewFiledJcr() { JobControlRecord* jcr = new_jcr(FiledFreeJcr); - jcr->impl = new JobControlRecordPrivate; + jcr->fd_impl = new FiledJcrImpl; return jcr; } @@ -392,19 +392,19 @@ JobControlRecord* create_new_director_session(BareosSocket* dir) JobControlRecord* jcr{NewFiledJcr()}; jcr->dir_bsock = dir; - jcr->impl->ff = init_find_files(); + jcr->fd_impl->ff = init_find_files(); jcr->start_time = time(nullptr); - jcr->impl->RunScripts = new alist<RunScript*>(10, not_owned_by_alist); - jcr->impl->last_fname = GetPoolMemory(PM_FNAME); - jcr->impl->last_fname[0] = 0; + jcr->fd_impl->RunScripts = new alist<RunScript*>(10, not_owned_by_alist); + jcr->fd_impl->last_fname = GetPoolMemory(PM_FNAME); + jcr->fd_impl->last_fname[0] = 0; jcr->client_name = GetMemory(strlen(my_name) + 1); PmStrcpy(jcr->client_name, my_name); bstrncpy(jcr->Job, jobname, sizeof(jobname)); /* dummy */ - jcr->impl->crypto.pki_sign = me->pki_sign; - jcr->impl->crypto.pki_encrypt = me->pki_encrypt; - jcr->impl->crypto.pki_keypair = me->pki_keypair; - jcr->impl->crypto.pki_signers = me->pki_signers; - jcr->impl->crypto.pki_recipients = me->pki_recipients; + jcr->fd_impl->crypto.pki_sign = me->pki_sign; + jcr->fd_impl->crypto.pki_encrypt = me->pki_encrypt; + jcr->fd_impl->crypto.pki_keypair = me->pki_keypair; + jcr->fd_impl->crypto.pki_signers = me->pki_signers; + jcr->fd_impl->crypto.pki_recipients = me->pki_recipients; if (dir) { dir->SetJcr(jcr); } SetJcrInThreadSpecificData(jcr); @@ -436,7 +436,7 @@ void* process_director_commands(JobControlRecord* jcr, BareosSocket* dir) for (int i = 0; cmds[i].cmd; i++) { if (bstrncmp(cmds[i].cmd, dir->msg, strlen(cmds[i].cmd))) { found = true; /* indicate command found */ - if ((!cmds[i].monitoraccess) && (jcr->impl->director->monitor)) { + if ((!cmds[i].monitoraccess) && (jcr->fd_impl->director->monitor)) { Dmsg1(100, "Command \"%s\" is invalid.\n", cmds[i].cmd); dir->fsend(invalid_cmd); dir->signal(BNET_EOD); @@ -461,11 +461,12 @@ void* process_director_commands(JobControlRecord* jcr, BareosSocket* dir) if (jcr->store_bsock) { jcr->store_bsock->signal(BNET_TERMINATE); } // Run the after job - if (jcr->impl->RunScripts) { - RunScripts(jcr, jcr->impl->RunScripts, "ClientAfterJob", - (jcr->impl->director && jcr->impl->director->allowed_script_dirs) - ? jcr->impl->director->allowed_script_dirs - : me->allowed_script_dirs); + if (jcr->fd_impl->RunScripts) { + RunScripts( + jcr, jcr->fd_impl->RunScripts, "ClientAfterJob", + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_script_dirs) + ? jcr->fd_impl->director->allowed_script_dirs + : me->allowed_script_dirs); } if (jcr->JobId) { /* send EndJob if running a job */ @@ -474,7 +475,7 @@ void* process_director_commands(JobControlRecord* jcr, BareosSocket* dir) dir->fsend(EndJob, jcr->getJobStatus(), jcr->JobFiles, edit_uint64(jcr->ReadBytes, ed1), edit_uint64(jcr->JobBytes, ed2), jcr->JobErrors, - jcr->impl->enable_vss, jcr->impl->crypto.pki_encrypt); + jcr->fd_impl->enable_vss, jcr->fd_impl->crypto.pki_encrypt); Dmsg1(110, "End FD msg: %s\n", dir->msg); } @@ -486,7 +487,7 @@ void* process_director_commands(JobControlRecord* jcr, BareosSocket* dir) dir->signal(BNET_TERMINATE); FreePlugins(jcr); /* release instantiated plugins */ - FreeAndNullPoolMemory(jcr->impl->job_metadata); + FreeAndNullPoolMemory(jcr->fd_impl->job_metadata); // Clean up fileset CleanupFileset(jcr); @@ -878,14 +879,14 @@ static bool EstimateCmd(JobControlRecord* jcr) // See if we are allowed to run estimate cmds. if (!ValidateCommand( jcr, "estimate", - (jcr->impl->director && jcr->impl->director->allowed_job_cmds) - ? jcr->impl->director->allowed_job_cmds + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_job_cmds) + ? jcr->fd_impl->director->allowed_job_cmds : me->allowed_job_cmds)) { dir->fsend(_("2992 Bad estimate command.\n")); return 0; } - if (sscanf(dir->msg, Estimatecmd, &jcr->impl->listing) != 1) { + if (sscanf(dir->msg, Estimatecmd, &jcr->fd_impl->listing) != 1) { PmStrcpy(jcr->errmsg, dir->msg); Jmsg(jcr, M_FATAL, 0, _("Bad estimate command: %s\n"), jcr->errmsg); dir->fsend(_("2992 Bad estimate command.\n")); @@ -894,7 +895,8 @@ static bool EstimateCmd(JobControlRecord* jcr) MakeEstimate(jcr); - dir->fsend(OKest, edit_uint64_with_commas(jcr->impl->num_files_examined, ed1), + dir->fsend(OKest, + edit_uint64_with_commas(jcr->fd_impl->num_files_examined, ed1), edit_uint64_with_commas(jcr->JobBytes, ed2)); dir->signal(BNET_EOD); @@ -990,10 +992,11 @@ static bool RunbeforenowCmd(JobControlRecord* jcr) { BareosSocket* dir = jcr->dir_bsock; - RunScripts(jcr, jcr->impl->RunScripts, "ClientBeforeJob", - (jcr->impl->director && jcr->impl->director->allowed_script_dirs) - ? jcr->impl->director->allowed_script_dirs - : me->allowed_script_dirs); + RunScripts( + jcr, jcr->fd_impl->RunScripts, "ClientBeforeJob", + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_script_dirs) + ? jcr->fd_impl->director->allowed_script_dirs + : me->allowed_script_dirs); if (JobCanceled(jcr)) { dir->fsend(FailedRunScript); @@ -1037,7 +1040,7 @@ static bool RunafterCmd(JobControlRecord* jcr) script->when = SCRIPT_After; FreeMemory(cmd); - jcr->impl->RunScripts->append(script); + jcr->fd_impl->RunScripts->append(script); return dir->fsend(OKRunAfter); } @@ -1052,8 +1055,8 @@ static bool RunscriptCmd(JobControlRecord* jcr) // See if we are allowed to run runscript cmds. if (!ValidateCommand( jcr, "runscript", - (jcr->impl->director && jcr->impl->director->allowed_job_cmds) - ? jcr->impl->director->allowed_job_cmds + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_job_cmds) + ? jcr->fd_impl->director->allowed_job_cmds : me->allowed_job_cmds)) { dir->fsend(FailedRunScript); return 0; @@ -1085,7 +1088,7 @@ static bool RunscriptCmd(JobControlRecord* jcr) cmd->SetCommand(msg); cmd->Debug(); - jcr->impl->RunScripts->append(cmd); + jcr->fd_impl->RunScripts->append(cmd); FreePoolMemory(msg); @@ -1218,7 +1221,7 @@ static bool RestoreObjectCmd(JobControlRecord* jcr) // We still need to do this to detect a vss restore if (bstrcmp(rop.object_name, "job_metadata.xml")) { Dmsg0(100, "got job metadata\n"); - jcr->impl->got_metadata = true; + jcr->fd_impl->got_metadata = true; } GeneratePluginEvent(jcr, bEventRestoreObject, (void*)&rop); @@ -1244,7 +1247,7 @@ static inline int CountIncludeListFileEntries(JobControlRecord* jcr) findFILESET* fileset; findIncludeExcludeItem* incexe; - fileset = jcr->impl->ff->fileset; + fileset = jcr->fd_impl->ff->fileset; if (fileset) { for (int i = 0; i < fileset->include_list.size(); i++) { incexe = (findIncludeExcludeItem*)fileset->include_list.get(i); @@ -1278,13 +1281,13 @@ static bool FilesetCmd(JobControlRecord* jcr) if (!TermFileset(jcr)) { return false; } #if defined(WIN32_VSS) - jcr->impl->enable_vss + jcr->fd_impl->enable_vss = (vss && (CountIncludeListFileEntries(jcr) > 0)) ? true : false; #endif retval = dir->fsend(OKinc); GeneratePluginEvent(jcr, bEventEndFileSet); - CheckIncludeListShadowing(jcr, jcr->impl->ff->fileset); + CheckIncludeListShadowing(jcr, jcr->fd_impl->ff->fileset); return retval; } @@ -1389,7 +1392,7 @@ static bool LevelCmd(JobControlRecord* jcr) } if (sscanf(dir->msg, "level = since_utime %s mtime_only=%d prev_job=%127s", - buf, &mtime_only, jcr->impl->PrevJob) + buf, &mtime_only, jcr->fd_impl->PrevJob) != 3) { if (sscanf(dir->msg, "level = since_utime %s mtime_only=%d", buf, &mtime_only) @@ -1399,7 +1402,8 @@ static bool LevelCmd(JobControlRecord* jcr) } since_time = str_to_uint64(buf); /* this is the since time */ - Dmsg2(100, "since_time=%lld prev_job=%s\n", since_time, jcr->impl->PrevJob); + Dmsg2(100, "since_time=%lld prev_job=%s\n", since_time, + jcr->fd_impl->PrevJob); /* * Sync clocks by polling him for the time. We take 10 samples of his time * throwing out the first two. @@ -1445,9 +1449,11 @@ static bool LevelCmd(JobControlRecord* jcr) dir->signal(BNET_EOD); Dmsg2(100, "adj=%lld since_time=%lld\n", adj, since_time); - jcr->impl->incremental = true; /* set incremental or decremental backup */ - jcr->impl->since_time = since_time; /* set since time */ - GeneratePluginEvent(jcr, bEventSince, (void*)(time_t)jcr->impl->since_time); + jcr->fd_impl->incremental + = true; /* set incremental or decremental backup */ + jcr->fd_impl->since_time = since_time; /* set since time */ + GeneratePluginEvent(jcr, bEventSince, + (void*)(time_t)jcr->fd_impl->since_time); } else { Jmsg1(jcr, M_FATAL, 0, _("Unknown backup level: %s\n"), level); FreeMemory(level); @@ -1479,8 +1485,9 @@ static bool SessionCmd(JobControlRecord* jcr) Dmsg1(100, "SessionCmd: %s", dir->msg); if (sscanf(dir->msg, sessioncmd, jcr->VolumeName, &jcr->VolSessionId, - &jcr->VolSessionTime, &jcr->impl->StartFile, &jcr->impl->EndFile, - &jcr->impl->StartBlock, &jcr->impl->EndBlock) + &jcr->VolSessionTime, &jcr->fd_impl->StartFile, + &jcr->fd_impl->EndFile, &jcr->fd_impl->StartBlock, + &jcr->fd_impl->EndBlock) != 7) { PmStrcpy(jcr->errmsg, dir->msg); Jmsg(jcr, M_FATAL, 0, _("Bad session command: %s\n"), jcr->errmsg); @@ -1516,7 +1523,7 @@ static void SetStorageAuthKeyAndTlsPolicy(JobControlRecord* jcr, * restore */ Dmsg0(5, "set multi_restore=true\n"); - jcr->impl->multi_restore = true; + jcr->fd_impl->multi_restore = true; free(jcr->sd_auth_key); } @@ -1559,8 +1566,8 @@ static bool StorageCmd(JobControlRecord* jcr) // TODO: see if we put limit on restore and backup... if (!jcr->max_bandwidth) { - if (jcr->impl->director->max_bandwidth_per_job) { - jcr->max_bandwidth = jcr->impl->director->max_bandwidth_per_job; + if (jcr->fd_impl->director->max_bandwidth_per_job) { + jcr->max_bandwidth = jcr->fd_impl->director->max_bandwidth_per_job; } else if (me->max_bandwidth_per_job) { jcr->max_bandwidth = me->max_bandwidth_per_job; } @@ -1622,7 +1629,7 @@ static void LogFlagStatus(JobControlRecord* jcr, int flag, const char* flag_text) { - findFILESET* fileset = jcr->impl->ff->fileset; + findFILESET* fileset = jcr->fd_impl->ff->fileset; bool found = false; if (fileset) { for (int i = 0; i < fileset->include_list.size() && !found; i++) { @@ -1656,7 +1663,7 @@ static inline void ClearFlagInFileset(JobControlRecord* jcr, findFILESET* fileset; bool cleared_flag = false; - fileset = jcr->impl->ff->fileset; + fileset = jcr->fd_impl->ff->fileset; if (fileset) { for (int i = 0; i < fileset->include_list.size(); i++) { findIncludeExcludeItem* incexe @@ -1686,7 +1693,7 @@ static inline void ClearCompressionFlagInFileset(JobControlRecord* jcr) { findFILESET* fileset; - fileset = jcr->impl->ff->fileset; + fileset = jcr->fd_impl->ff->fileset; if (fileset) { for (int i = 0; i < fileset->include_list.size(); i++) { findIncludeExcludeItem* incexe @@ -1742,7 +1749,7 @@ static inline bool GetWantedCryptoCipher(JobControlRecord* jcr, * Walk the fileset and check for the FO_FORCE_ENCRYPT flag and any forced * crypto cipher. */ - fileset = jcr->impl->ff->fileset; + fileset = jcr->fd_impl->ff->fileset; if (fileset) { for (int i = 0; i < fileset->include_list.size(); i++) { findIncludeExcludeItem* incexe @@ -1762,7 +1769,7 @@ static inline bool GetWantedCryptoCipher(JobControlRecord* jcr, } // See if pki_encrypt is already set for this Job. - if (!jcr->impl->crypto.pki_encrypt) { + if (!jcr->fd_impl->crypto.pki_encrypt) { if (!me->pki_keypair_file) { Jmsg(jcr, M_FATAL, 0, _("Fileset contains cipher settings but PKI Key Pair is not " @@ -1771,8 +1778,8 @@ static inline bool GetWantedCryptoCipher(JobControlRecord* jcr, } // Enable encryption and signing for this Job. - jcr->impl->crypto.pki_sign = true; - jcr->impl->crypto.pki_encrypt = true; + jcr->fd_impl->crypto.pki_sign = true; + jcr->fd_impl->crypto.pki_encrypt = true; } wanted_cipher = (crypto_cipher_t)fo->Encryption_cipher; @@ -1794,7 +1801,7 @@ static inline bool GetWantedCryptoCipher(JobControlRecord* jcr, * See if FO_FORCE_ENCRYPT is set and encryption is not configured for the * filed. */ - if (force_encrypt && !jcr->impl->crypto.pki_encrypt) { + if (force_encrypt && !jcr->fd_impl->crypto.pki_encrypt) { Jmsg(jcr, M_FATAL, 0, _("Fileset forces encryption but encryption is not configured\n")); return false; @@ -1829,14 +1836,14 @@ static bool BackupCmd(JobControlRecord* jcr) // See if we are allowed to run backup cmds. if (!ValidateCommand( jcr, "backup", - (jcr->impl->director && jcr->impl->director->allowed_job_cmds) - ? jcr->impl->director->allowed_job_cmds + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_job_cmds) + ? jcr->fd_impl->director->allowed_job_cmds : me->allowed_job_cmds)) { goto cleanup; } #if defined(WIN32_VSS) - if (jcr->impl->enable_vss) { VSSInit(jcr); } + if (jcr->fd_impl->enable_vss) { VSSInit(jcr); } #endif if (sscanf(dir->msg, "backup FileIndex=%ld\n", &FileIndex) == 1) { @@ -1880,7 +1887,7 @@ static bool BackupCmd(JobControlRecord* jcr) jcr->setJobStatusWithPriorityCheck(JS_Blocked); jcr->setJobType(JT_BACKUP); - Dmsg1(100, "begin backup ff=%p\n", jcr->impl->ff); + Dmsg1(100, "begin backup ff=%p\n", jcr->fd_impl->ff); if (sd == nullptr) { Jmsg(jcr, M_FATAL, 0, _("Cannot contact Storage daemon\n")); @@ -1898,18 +1905,18 @@ static bool BackupCmd(JobControlRecord* jcr) // Expect to receive back the Ticket number if (BgetMsg(sd) >= 0) { Dmsg1(110, "<stored: %s", sd->msg); - if (sscanf(sd->msg, OK_open, &jcr->impl->Ticket) != 1) { + if (sscanf(sd->msg, OK_open, &jcr->fd_impl->Ticket) != 1) { Jmsg(jcr, M_FATAL, 0, _("Bad response to append open: %s\n"), sd->msg); goto cleanup; } - Dmsg1(110, "Got Ticket=%d\n", jcr->impl->Ticket); + Dmsg1(110, "Got Ticket=%d\n", jcr->fd_impl->Ticket); } else { Jmsg(jcr, M_FATAL, 0, _("Bad response from stored to open command\n")); goto cleanup; } // Send Append data command to Storage daemon - sd->fsend(append_data, jcr->impl->Ticket); + sd->fsend(append_data, jcr->fd_impl->Ticket); Dmsg1(110, ">stored: %s", sd->msg); // Expect to get OK data @@ -1923,8 +1930,8 @@ static bool BackupCmd(JobControlRecord* jcr) #if defined(WIN32_VSS) // START VSS ON WIN32 - if (jcr->impl->pVSSClient) { - if (jcr->impl->pVSSClient->InitializeForBackup(jcr)) { + if (jcr->fd_impl->pVSSClient) { + if (jcr->fd_impl->pVSSClient->InitializeForBackup(jcr)) { int drive_count; char szWinDriveLetters[27]; bool onefs_disabled; @@ -1937,19 +1944,19 @@ static bool BackupCmd(JobControlRecord* jcr) // Plugin driver can return drive letters GeneratePluginEvent(jcr, bEventVssPrepareSnapshot, szWinDriveLetters); - drive_count - = get_win32_driveletters(jcr->impl->ff->fileset, szWinDriveLetters); + drive_count = get_win32_driveletters(jcr->fd_impl->ff->fileset, + szWinDriveLetters); - onefs_disabled = win32_onefs_is_disabled(jcr->impl->ff->fileset); + onefs_disabled = win32_onefs_is_disabled(jcr->fd_impl->ff->fileset); if (drive_count > 0) { Jmsg(jcr, M_INFO, 0, _("Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n"), - jcr->impl->pVSSClient->GetDriverName(), + jcr->fd_impl->pVSSClient->GetDriverName(), (drive_count) ? szWinDriveLetters : "None"); - if (!jcr->impl->pVSSClient->CreateSnapshots(szWinDriveLetters, - onefs_disabled)) { + if (!jcr->fd_impl->pVSSClient->CreateSnapshots(szWinDriveLetters, + onefs_disabled)) { BErrNo be; Jmsg(jcr, M_FATAL, 0, _("CreateSGenerate VSS snapshots failed. ERR=%s\n"), @@ -1958,7 +1965,7 @@ static bool BackupCmd(JobControlRecord* jcr) GeneratePluginEvent(jcr, bEventVssCreateSnapshots); // Inform about VMPs if we have them - jcr->impl->pVSSClient->ShowVolumeMountPointStats(jcr); + jcr->fd_impl->pVSSClient->ShowVolumeMountPointStats(jcr); // Tell user if snapshot creation of a specific drive failed for (int i = 0; i < (int)strlen(szWinDriveLetters); i++) { @@ -1970,10 +1977,11 @@ static bool BackupCmd(JobControlRecord* jcr) } // Inform user about writer states - for (size_t i = 0; i < jcr->impl->pVSSClient->GetWriterCount(); i++) { - if (jcr->impl->pVSSClient->GetWriterState(i) < 1) { + for (size_t i = 0; i < jcr->fd_impl->pVSSClient->GetWriterCount(); + i++) { + if (jcr->fd_impl->pVSSClient->GetWriterState(i) < 1) { Jmsg(jcr, M_INFO, 0, _("VSS Writer (PrepareForBackup): %s\n"), - jcr->impl->pVSSClient->GetWriterInfo(i)); + jcr->fd_impl->pVSSClient->GetWriterInfo(i)); } } } @@ -1989,15 +1997,16 @@ static bool BackupCmd(JobControlRecord* jcr) be.bstrerror()); } - RunScripts(jcr, jcr->impl->RunScripts, "ClientAfterVSS", - (jcr->impl->director && jcr->impl->director->allowed_script_dirs) - ? jcr->impl->director->allowed_script_dirs - : me->allowed_script_dirs); + RunScripts( + jcr, jcr->fd_impl->RunScripts, "ClientAfterVSS", + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_script_dirs) + ? jcr->fd_impl->director->allowed_script_dirs + : me->allowed_script_dirs); } #endif // Send Files to Storage daemon - Dmsg1(110, "begin blast ff=%p\n", (FindFilesPacket*)jcr->impl->ff); + Dmsg1(110, "begin blast ff=%p\n", (FindFilesPacket*)jcr->fd_impl->ff); if (!BlastDataToStorageDaemon(jcr, nullptr, cipher)) { jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); BnetSuppressErrorMessages(sd, 1); @@ -2016,7 +2025,7 @@ static bool BackupCmd(JobControlRecord* jcr) } // Send Append End Data to Storage daemon - sd->fsend(append_end, jcr->impl->Ticket); + sd->fsend(append_end, jcr->fd_impl->Ticket); /* Get end OK */ if (!response(jcr, sd, OK_end, "Append End")) { jcr->setJobStatusWithPriorityCheck(JS_ErrorTerminated); @@ -2024,7 +2033,7 @@ static bool BackupCmd(JobControlRecord* jcr) } // Send Append Close to Storage daemon - sd->fsend(append_close, jcr->impl->Ticket); + sd->fsend(append_close, jcr->fd_impl->Ticket); while (BgetMsg(sd) >= 0) { /* stop on signal or error */ if (sscanf(sd->msg, OK_close, &SDJobStatus) == 1) { ok = 1; @@ -2043,7 +2052,9 @@ static bool BackupCmd(JobControlRecord* jcr) cleanup: #if defined(WIN32_VSS) - if (jcr->impl->pVSSClient) { jcr->impl->pVSSClient->DestroyWriterInfo(); } + if (jcr->fd_impl->pVSSClient) { + jcr->fd_impl->pVSSClient->DestroyWriterInfo(); + } #endif GeneratePluginEvent(jcr, bEventEndBackupJob); @@ -2063,8 +2074,8 @@ static bool VerifyCmd(JobControlRecord* jcr) // See if we are allowed to run verify cmds. if (!ValidateCommand( jcr, "verify", - (jcr->impl->director && jcr->impl->director->allowed_job_cmds) - ? jcr->impl->director->allowed_job_cmds + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_job_cmds) + ? jcr->fd_impl->director->allowed_job_cmds : me->allowed_job_cmds)) { dir->fsend(_("2994 Bad verify command: %s\n"), dir->msg); return 0; @@ -2109,7 +2120,7 @@ static bool VerifyCmd(JobControlRecord* jcr) DoVerifyVolume(jcr); StopDirHeartbeat(jcr); // Send Close session command to Storage daemon - sd->fsend(read_close, jcr->impl->Ticket); + sd->fsend(read_close, jcr->fd_impl->Ticket); Dmsg1(130, "filed>stored: %s", sd->msg); /* ****FIXME**** check response */ @@ -2185,7 +2196,7 @@ static BareosSocket* connect_to_director(JobControlRecord* jcr, director_socket->recv(); ParseOkVersion(director_socket->msg); - jcr->impl->director = dir_res; + jcr->fd_impl->director = dir_res; return director_socket.release(); } @@ -2215,8 +2226,8 @@ static bool RestoreCmd(JobControlRecord* jcr) // See if we are allowed to run restore cmds. if (!ValidateCommand( jcr, "restore", - (jcr->impl->director && jcr->impl->director->allowed_job_cmds) - ? jcr->impl->director->allowed_job_cmds + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_job_cmds) + ? jcr->fd_impl->director->allowed_job_cmds : me->allowed_job_cmds)) { return 0; } @@ -2245,9 +2256,9 @@ static bool RestoreCmd(JobControlRecord* jcr) #if defined(WIN32_VSS) // No need to enable VSS for restore if we do not have plugin data to restore - jcr->impl->enable_vss = jcr->impl->got_metadata; + jcr->fd_impl->enable_vss = jcr->fd_impl->got_metadata; - if (jcr->impl->enable_vss) { VSSInit(jcr); } + if (jcr->fd_impl->enable_vss) { VSSInit(jcr); } #endif // Turn / into nothing @@ -2271,7 +2282,7 @@ static bool RestoreCmd(JobControlRecord* jcr) } FreePoolMemory(args); - jcr->impl->replace = replace; + jcr->fd_impl->replace = replace; jcr->prefix_links = prefix_links; dir->fsend(OKrestore); @@ -2292,8 +2303,8 @@ static bool RestoreCmd(JobControlRecord* jcr) #if defined(WIN32_VSS) // START VSS ON WIN32 - if (jcr->impl->pVSSClient) { - if (!jcr->impl->pVSSClient->InitializeForRestore(jcr)) { + if (jcr->fd_impl->pVSSClient) { + if (!jcr->fd_impl->pVSSClient->InitializeForRestore(jcr)) { BErrNo be; Jmsg(jcr, M_WARNING, 0, _("VSS was not initialized properly. VSS support is disabled. " @@ -2303,10 +2314,11 @@ static bool RestoreCmd(JobControlRecord* jcr) GeneratePluginEvent(jcr, bEventVssRestoreLoadComponentMetadata); - RunScripts(jcr, jcr->impl->RunScripts, "ClientAfterVSS", - (jcr->impl->director && jcr->impl->director->allowed_script_dirs) - ? jcr->impl->director->allowed_script_dirs - : me->allowed_script_dirs); + RunScripts( + jcr, jcr->fd_impl->RunScripts, "ClientAfterVSS", + (jcr->fd_impl->director && jcr->fd_impl->director->allowed_script_dirs) + ? jcr->fd_impl->director->allowed_script_dirs + : me->allowed_script_dirs); } #endif @@ -2320,7 +2332,7 @@ static bool RestoreCmd(JobControlRecord* jcr) } // Send Close session command to Storage daemon - sd->fsend(read_close, jcr->impl->Ticket); + sd->fsend(read_close, jcr->fd_impl->Ticket); Dmsg1(100, "filed>stored: %s", sd->msg); BgetMsg(sd); /* get OK */ @@ -2333,24 +2345,24 @@ static bool RestoreCmd(JobControlRecord* jcr) * STOP VSS ON WIN32 * Tell vss to close the restore session */ - if (jcr->impl->pVSSClient) { + if (jcr->fd_impl->pVSSClient) { Dmsg0(100, "About to call CloseRestore\n"); GeneratePluginEvent(jcr, bEventVssCloseRestore); Dmsg0(100, "Really about to call CloseRestore\n"); - if (jcr->impl->pVSSClient->CloseRestore()) { + if (jcr->fd_impl->pVSSClient->CloseRestore()) { Dmsg0(100, "CloseRestore success\n"); // Inform user about writer states - for (size_t i = 0; i < jcr->impl->pVSSClient->GetWriterCount(); i++) { + for (size_t i = 0; i < jcr->fd_impl->pVSSClient->GetWriterCount(); i++) { int msg_type = M_INFO; - if (jcr->impl->pVSSClient->GetWriterState(i) < 1) { + if (jcr->fd_impl->pVSSClient->GetWriterState(i) < 1) { msg_type = M_WARNING; jcr->JobErrors++; } Jmsg(jcr, msg_type, 0, _("VSS Writer (RestoreComplete): %s\n"), - jcr->impl->pVSSClient->GetWriterInfo(i)); + jcr->fd_impl->pVSSClient->GetWriterInfo(i)); } } else { Dmsg1(100, "CloseRestore fail - %08x\n", errno); @@ -2367,7 +2379,7 @@ bail_out: Dmsg0(100, "Done in job.c\n"); - if (jcr->impl->multi_restore) { + if (jcr->fd_impl->multi_restore) { Dmsg0(100, OKstoreend); dir->fsend(OKstoreend); retval = true; /* we continue the loop, waiting for next part */ @@ -2400,29 +2412,29 @@ static bool OpenSdReadSession(JobControlRecord* jcr) return false; } Dmsg4(120, "VolSessId=%ld VolsessT=%ld SF=%ld EF=%ld\n", jcr->VolSessionId, - jcr->VolSessionTime, jcr->impl->StartFile, jcr->impl->EndFile); + jcr->VolSessionTime, jcr->fd_impl->StartFile, jcr->fd_impl->EndFile); Dmsg2(120, "JobId=%d vol=%s\n", jcr->JobId, "DummyVolume"); // Open Read Session with Storage daemon sd->fsend(read_open, "DummyVolume", jcr->VolSessionId, jcr->VolSessionTime, - jcr->impl->StartFile, jcr->impl->EndFile, jcr->impl->StartBlock, - jcr->impl->EndBlock); + jcr->fd_impl->StartFile, jcr->fd_impl->EndFile, + jcr->fd_impl->StartBlock, jcr->fd_impl->EndBlock); Dmsg1(110, ">stored: %s", sd->msg); // Get ticket number if (BgetMsg(sd) >= 0) { Dmsg1(110, "filed<stored: %s", sd->msg); - if (sscanf(sd->msg, OK_open, &jcr->impl->Ticket) != 1) { + if (sscanf(sd->msg, OK_open, &jcr->fd_impl->Ticket) != 1) { Jmsg(jcr, M_FATAL, 0, _("Bad response to SD read open: %s\n"), sd->msg); return false; } - Dmsg1(110, "filed: got Ticket=%d\n", jcr->impl->Ticket); + Dmsg1(110, "filed: got Ticket=%d\n", jcr->fd_impl->Ticket); } else { Jmsg(jcr, M_FATAL, 0, _("Bad response from stored to read open command\n")); return false; } // Start read of data with Storage daemon - sd->fsend(read_data, jcr->impl->Ticket); + sd->fsend(read_data, jcr->fd_impl->Ticket); Dmsg1(110, ">stored: %s", sd->msg); // Get OK data @@ -2435,9 +2447,9 @@ static bool OpenSdReadSession(JobControlRecord* jcr) static void FiledFreeJcr(JobControlRecord* jcr) { #if defined(WIN32_VSS) - if (jcr->impl->pVSSClient) { - delete jcr->impl->pVSSClient; - jcr->impl->pVSSClient = nullptr; + if (jcr->fd_impl->pVSSClient) { + delete jcr->fd_impl->pVSSClient; + jcr->fd_impl->pVSSClient = nullptr; } #endif @@ -2453,29 +2465,29 @@ static void FiledFreeJcr(JobControlRecord* jcr) jcr->dir_bsock = nullptr; } - if (jcr->impl->last_fname) { FreePoolMemory(jcr->impl->last_fname); } + if (jcr->fd_impl->last_fname) { FreePoolMemory(jcr->fd_impl->last_fname); } FreeBootstrap(jcr); - FreeRunscripts(jcr->impl->RunScripts); - delete jcr->impl->RunScripts; - jcr->impl->RunScripts = nullptr; + FreeRunscripts(jcr->fd_impl->RunScripts); + delete jcr->fd_impl->RunScripts; + jcr->fd_impl->RunScripts = nullptr; if (jcr->path_list) { FreePathList(jcr->path_list); jcr->path_list = nullptr; } - TermFindFiles(jcr->impl->ff); - jcr->impl->ff = nullptr; + TermFindFiles(jcr->fd_impl->ff); + jcr->fd_impl->ff = nullptr; if (jcr->JobId != 0) { WriteStateFile(me->working_directory, "bareos-fd", GetFirstPortHostOrder(me->FDaddrs)); } - if (jcr->impl) { - delete jcr->impl; - jcr->impl = nullptr; + if (jcr->fd_impl) { + delete jcr->fd_impl; + jcr->fd_impl = nullptr; } return; |