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).
19 What is not yet implemented:
20 - Search for all plugins in the plugin directory
21 - Implement Bacula context for plugin instances
22 - Implement plugin context for plugin instances
23 - Some better method to pass variables
24 - Pass Version information in plugin Initialize
25 - Define more functionality (Bacula entry points, ...)
26 - Integrate the code into Bacula
27 - Make libbac.a into a shared object and allow plugin
28 to call functions in directly so that plugins can use
29 the same "safe" system utilities that Bacula uses.
30 - Document the interface
31 - Document libbac.so (when implemented)
32 - Write a couple of plugins that really do something.
33 - Figure out a way to deal with 3 types of plugins (Director,
34 File daemon, Storage daemon).
35 - Error handling must be much improved and brought into Bacula
36 programming style. It currently just printf()s a message then