#include "bacula.h"
#include "stored.h"
+/* TODO: fix problem with bls, bextract
+ * that use findlib and already declare
+ * filed plugins
+ */
+#include "sd_plugins.h"
+
#ifdef HAVE_PYTHON
#undef _POSIX_C_SOURCE
init_stack_dump(); /* pick up new pid */
}
- create_pid_file(me->pid_directory, "bacula-sd", get_first_port_host_order(me->sdaddrs));
- read_state_file(me->working_directory, "bacula-sd", get_first_port_host_order(me->sdaddrs));
+ create_pid_file(me->pid_directory, "bacula-sd",
+ get_first_port_host_order(me->sdaddrs));
+ read_state_file(me->working_directory, "bacula-sd",
+ get_first_port_host_order(me->sdaddrs));
+
+ /* Make sure on Solaris we can run concurrent, watch dog + servers + misc */
+ set_thread_concurrency(me->max_concurrent_jobs * 2 + 4);
+ lmgr_init_thread(); /* initialize the lockmanager stack */
- drop(uid, gid);
+ load_sd_plugins(me->plugin_directory);
+
+ drop(uid, gid, false);
cleanup_old_files();
init_python_interpreter(&python_args);
#endif /* HAVE_PYTHON */
- /* Make sure on Solaris we can run concurrent, watch dog + servers + misc */
- set_thread_concurrency(me->max_concurrent_jobs * 2 + 4);
-
/*
* Start the device allocation thread
*/
- create_volume_list(); /* do before device_init */
+ create_volume_lists(); /* do before device_init */
if (pthread_create(&thid, NULL, device_initialization, NULL) != 0) {
berrno be;
Emsg1(M_ABORT, 0, _("Unable to create thread. ERR=%s\n"), be.bstrerror());
Dmsg1(200, "In terminate_stored() sig=%d\n", sig);
- free_volume_list();
+ unload_plugins();
+ free_volume_lists();
foreach_res(device, R_DEVICE) {
Dmsg1(10, "Term device %s\n", device->device_name);
cleanup_crypto();
term_reservations_lock();
close_memory_pool();
+ lmgr_cleanup_main();
sm_dump(false); /* dump orphaned buffers */
exit(sig);