The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
The main author of Bacula is Kern Sibbald, with contributions from
many others, a complete list can be found in the file AUTHORS.
jcr->last_fname[0] = 0;
jcr->client_name = get_memory(strlen(my_name) + 1);
pm_strcpy(jcr->client_name, my_name);
jcr->last_fname[0] = 0;
jcr->client_name = get_memory(strlen(my_name) + 1);
pm_strcpy(jcr->client_name, my_name);
jcr->crypto.pki_sign = me->pki_sign;
jcr->crypto.pki_encrypt = me->pki_encrypt;
jcr->crypto.pki_keypair = me->pki_keypair;
jcr->crypto.pki_sign = me->pki_sign;
jcr->crypto.pki_encrypt = me->pki_encrypt;
jcr->crypto.pki_keypair = me->pki_keypair;
/* Send termination status back to Dir */
dir->fsend(EndJob, jcr->JobStatus, jcr->JobFiles,
edit_uint64(jcr->ReadBytes, ed1),
/* Send termination status back to Dir */
dir->fsend(EndJob, jcr->JobStatus, jcr->JobFiles,
edit_uint64(jcr->ReadBytes, ed1),
- edit_uint64(jcr->JobBytes, ed2), jcr->Errors, jcr->VSS,
+ edit_uint64(jcr->JobBytes, ed2), jcr->JobErrors, jcr->VSS,
jcr->crypto.pki_encrypt);
Dmsg1(110, "End FD msg: %s\n", dir->msg);
}
jcr->crypto.pki_encrypt);
Dmsg1(110, "End FD msg: %s\n", dir->msg);
}
- fileset->incexe->plugin_list.append(new_dlistString(fname));
+ if (me->plugin_directory) {
+ fileset->incexe->plugin_list.append(new_dlistString(fname));
+ } else {
+ Jmsg(jcr, M_FATAL, 0, _("Plugin Directory not defined. Cannot use plugin: \"%\"\n"),
+ fname);
+ }
- Jmsg(jcr, type, 0, _("DIR and FD clocks differ by %d seconds, FD automatically compensating.\n"), adj);
+ Jmsg(jcr, type, 0, _("DIR and FD clocks differ by %lld seconds, FD automatically compensating.\n"), adj);
- Dmsg2(100, "adj = %d since_time=%d\n", (int)adj, (int)since_time);
+ Dmsg2(100, "adj=%lld since_time=%lld\n", adj, since_time);
- jcr->mtime = (time_t)since_time; /* set since time */
- generate_plugin_event(jcr, bEventSince, (void *)jcr->mtime);
+ jcr->mtime = since_time; /* set since time */
+ generate_plugin_event(jcr, bEventSince, (void *)(time_t)jcr->mtime);
} else {
Jmsg1(jcr, M_FATAL, 0, _("Unknown backup level: %s\n"), level);
free_memory(level);
} else {
Jmsg1(jcr, M_FATAL, 0, _("Unknown backup level: %s\n"), level);
free_memory(level);
int stored_port; /* storage daemon port */
int enable_ssl; /* enable ssl to sd */
BSOCK *dir = jcr->dir_bsock;
int stored_port; /* storage daemon port */
int enable_ssl; /* enable ssl to sd */
BSOCK *dir = jcr->dir_bsock;
Dmsg1(100, "StorageCmd: %s", dir->msg);
if (sscanf(dir->msg, storaddr, &jcr->stored_addr, &stored_port, &enable_ssl) != 3) {
Dmsg1(100, "StorageCmd: %s", dir->msg);
if (sscanf(dir->msg, storaddr, &jcr->stored_addr, &stored_port, &enable_ssl) != 3) {
Dmsg3(110, "Open storage: %s:%d ssl=%d\n", jcr->stored_addr, stored_port, enable_ssl);
/* Open command communications with Storage daemon */
/* Try to connect for 1 hour at 10 second intervals */
Dmsg3(110, "Open storage: %s:%d ssl=%d\n", jcr->stored_addr, stored_port, enable_ssl);
/* Open command communications with Storage daemon */
/* Try to connect for 1 hour at 10 second intervals */
- sd = bnet_connect(jcr, 10, (int)me->SDConnectTimeout, me->heartbeat_interval,
- _("Storage daemon"), jcr->stored_addr, NULL, stored_port, 1);
+
+ sd->set_source_address(me->FDsrc_addr);
+ if (!sd->connect(jcr, 10, (int)me->SDConnectTimeout, me->heartbeat_interval,
+ _("Storage daemon"), jcr->stored_addr, NULL, stored_port, 1)) {
+ sd->destroy();
+ sd = NULL;
+ }
+
if (sd == NULL) {
Jmsg(jcr, M_FATAL, 0, _("Failed to connect to Storage daemon: %s:%d\n"),
jcr->stored_addr, stored_port);
if (sd == NULL) {
Jmsg(jcr, M_FATAL, 0, _("Failed to connect to Storage daemon: %s:%d\n"),
jcr->stored_addr, stored_port);
Jmsg(jcr, M_INFO, 0, _("Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n"), g_pVSSClient->GetDriverName(), szWinDriveLetters);
if (!g_pVSSClient->CreateSnapshots(szWinDriveLetters)) {
Jmsg(jcr, M_WARNING, 0, _("Generate VSS snapshots failed.\n"));
Jmsg(jcr, M_INFO, 0, _("Generate VSS snapshots. Driver=\"%s\", Drive(s)=\"%s\"\n"), g_pVSSClient->GetDriverName(), szWinDriveLetters);
if (!g_pVSSClient->CreateSnapshots(szWinDriveLetters)) {
Jmsg(jcr, M_WARNING, 0, _("Generate VSS snapshots failed.\n"));
} else {
/* tell user if snapshot creation of a specific drive failed */
int i;
for (i=0; i < (int)strlen(szWinDriveLetters); i++) {
if (islower(szWinDriveLetters[i])) {
Jmsg(jcr, M_WARNING, 0, _("Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on this drive.\n"), szWinDriveLetters[i]);
} else {
/* tell user if snapshot creation of a specific drive failed */
int i;
for (i=0; i < (int)strlen(szWinDriveLetters); i++) {
if (islower(szWinDriveLetters[i])) {
Jmsg(jcr, M_WARNING, 0, _("Generate VSS snapshot of drive \"%c:\\\" failed. VSS support is disabled on this drive.\n"), szWinDriveLetters[i]);
}
}
/* inform user about writer states */
for (i=0; i < (int)g_pVSSClient->GetWriterCount(); i++)
if (g_pVSSClient->GetWriterState(i) < 1) {
Jmsg(jcr, M_WARNING, 0, _("VSS Writer (PrepareForBackup): %s\n"), g_pVSSClient->GetWriterInfo(i));
}
}
/* inform user about writer states */
for (i=0; i < (int)g_pVSSClient->GetWriterCount(); i++)
if (g_pVSSClient->GetWriterState(i) < 1) {
Jmsg(jcr, M_WARNING, 0, _("VSS Writer (PrepareForBackup): %s\n"), g_pVSSClient->GetWriterInfo(i));
Dmsg0(110, "Error in blast_data.\n");
} else {
set_jcr_job_status(jcr, JS_Terminated);
Dmsg0(110, "Error in blast_data.\n");
} else {
set_jcr_job_status(jcr, JS_Terminated);
bnet_suppress_error_messages(sd, 1);
goto cleanup; /* bail out now */
}
bnet_suppress_error_messages(sd, 1);
goto cleanup; /* bail out now */
}
Jmsg(jcr, M_FATAL, 0, _("Append Close with SD failed.\n"));
goto cleanup;
}
Jmsg(jcr, M_FATAL, 0, _("Append Close with SD failed.\n"));
goto cleanup;
}
Jmsg(jcr, M_FATAL, 0, _("Bad status %d returned from Storage Daemon.\n"),
SDJobStatus);
}
Jmsg(jcr, M_FATAL, 0, _("Bad status %d returned from Storage Daemon.\n"),
SDJobStatus);
}
}
Jmsg(jcr, msg_type, 0, _("VSS Writer (BackupComplete): %s\n"), g_pVSSClient->GetWriterInfo(i));
}
}
}
Jmsg(jcr, msg_type, 0, _("VSS Writer (BackupComplete): %s\n"), g_pVSSClient->GetWriterInfo(i));
}
}
generate_plugin_event(jcr, bEventLevel, (void *)jcr->get_JobLevel());
generate_plugin_event(jcr, bEventStartVerifyJob);
generate_plugin_event(jcr, bEventLevel, (void *)jcr->get_JobLevel());
generate_plugin_event(jcr, bEventStartVerifyJob);
* Send Close session command to Storage daemon
*/
sd->fsend(read_close, jcr->Ticket);
* Send Close session command to Storage daemon
*/
sd->fsend(read_close, jcr->Ticket);
* Send Close session command to Storage daemon
*/
sd->fsend(read_close, jcr->Ticket);
* Send Close session command to Storage daemon
*/
sd->fsend(read_close, jcr->Ticket);
if (sscanf(sd->msg, OK_open, &jcr->Ticket) != 1) {
Jmsg(jcr, M_FATAL, 0, _("Bad response to SD read open: %s\n"), sd->msg);
return 0;
}
if (sscanf(sd->msg, OK_open, &jcr->Ticket) != 1) {
Jmsg(jcr, M_FATAL, 0, _("Bad response to SD read open: %s\n"), sd->msg);
return 0;
}
} else {
Jmsg(jcr, M_FATAL, 0, _("Bad response from stored to read open command\n"));
return 0;
} else {
Jmsg(jcr, M_FATAL, 0, _("Bad response from stored to read open command\n"));
return 0;