bareos: master 3b045561
Author | Committer | Branch | Timestamp | Parent | |
---|---|---|---|---|---|
mvwieringen | mvwieringen | master | 2014-09-27 20:39 | master ea1deed4 | Pending |
Changeset | Refactor daemon plugin handling. Major refactoring for allowing to drop the one-to-one plugin and plugin context relationship. We eventually want to allow multiple instances of one plugin (python plugin comes to mind). When we use an alist for storing the plugin context which has a pointer to the actual plugin that the context is linked to we can easily use the actual callback we need to call in the plugin with the active context. As we are no longer walking the shared plugin alist we also don't need to always use the foreach_alist_index to be sure we don't run into problems with multi threading. Some state is captured in the shared plugin data which is used by multiple threads in the filed. This is probably not to smart as it means that the state is shared between multiple threads and so multiple backup jobs what is not something you want. As this is mostly core code and probably not used by any important plugin in the wild it might for now not be a big problem but it may become a problem if we implement some more filed plugins. Added the bDirEventNewPluginOptions event which will allow the dir to implement the loading of multiple instances of the same plugin each with its private context. Added the bsdEventNewPluginOptions event which will allow the storage daemon to implement the loading of multiple instances of the same plugin each with its private context. |
||||
mod - src/dird/dir_plugins.c | Diff File | ||||
mod - src/dird/dir_plugins.h | Diff File | ||||
mod - src/dird/dird_conf.c | Diff File | ||||
mod - src/dird/dird_conf.h | Diff File | ||||
mod - src/dird/job.c | Diff File | ||||
mod - src/dird/msgchan.c | Diff File | ||||
mod - src/dird/protos.h | Diff File | ||||
mod - src/dird/sd_cmds.c | Diff File | ||||
mod - src/filed/backup.c | Diff File | ||||
mod - src/filed/dir_cmd.c | Diff File | ||||
mod - src/filed/fd_plugins.c | Diff File | ||||
mod - src/filed/restore.c | Diff File | ||||
mod - src/include/jcr.h | Diff File | ||||
mod - src/lib/parse_conf.h | Diff File | ||||
mod - src/lib/plugins.c | Diff File | ||||
mod - src/lib/plugins.h | Diff File | ||||
mod - src/stored/dir_cmd.c | Diff File | ||||
mod - src/stored/job.c | Diff File | ||||
mod - src/stored/sd_plugins.c | Diff File | ||||
mod - src/stored/sd_plugins.h | Diff File |