2 This is a first cut of a plugins implementation for Bacula.
3 The current code is simply a test program named main, which
4 when executed will load the plugin named plugin.so and then
5 call it with a few calls, then exit.
9 - get main entry points in plugin (two)
10 - pass plugin Bacula entry points
11 - get plugin's entry points
12 - keep list of plugins that are loaded
13 - The plugin currently only needs config.h and bc_types.h
14 in the Bacula src directory to be build. Otherwise, it is
15 totally independent of Bacula.
16 - The main test program is intended to be integrated into
17 Bacula (at least a number of the functions therein).
18 - Search for all plugins in the plugin directory
19 - Implement Bacula context for plugin instances
20 - Implement plugin context for plugin instances
21 - Integrate the code into Bacula
22 - Figure out a way to deal with 3 types of plugins (Director,
23 File daemon, Storage daemon).
24 - Pass Version information in plugin Initialize
26 What is not yet implemented:
27 - Document the interface
29 - Print all plugins loaded when Bacula starts
30 - Print all plugins loaded during traceback
31 - Implement plugin license/version checking
32 - Some better method to pass variables
33 - Define more functionality (Bacula entry points, ...)
34 - Make libbac.a into a shared object and allow plugin
35 to call functions in directly so that plugins can use
36 the same "safe" system utilities that Bacula uses.
37 - Document libbac.so (when implemented)
38 - Write more plugins that really do something.
39 - Error handling must be much improved and brought into Bacula
40 programming style. It currently just printf()s a message then
41 exits (partially done).