#define FAULTD_ACTION_REGISTER(ACT, NAME) \
static int action_ ##NAME## _init(struct faultd_module *module, \
+ struct faultd_config *config, \
sd_event *event_loop) \
{ \
return action_executor_action_register(&ACT); \
container_of(MOD, struct event_factory, module)
static int init_event_factory(struct faultd_module *module,
+ struct faultd_config *config,
sd_event *event_loop)
{
return 0;
#define FAULTD_EVENT_TYPE_REGISTER(EVENT_TYPE, NAME) \
static int event_type_ ##NAME## _init(struct faultd_module *module, \
+ struct faultd_config *config, \
sd_event *event_loop) \
{ \
return faultd_event_type_register(&EVENT_TYPE); \
return 0;
}
-static int event_processor_init(struct faultd_module *module, sd_event *event)
+static int event_processor_init(struct faultd_module *module,
+ struct faultd_config *config,
+ sd_event *event)
{
struct event_processor *eprocessor = to_event_processor(module);
int ret;
#define FAULTD_EVENT_HANDLER_REGISTER(EVENT_HANDLER, NAME, TYPE) \
static int event_handler_ ##NAME## _init(struct faultd_module *module, \
+ struct faultd_config *config, \
sd_event *event_loop) \
{ \
return event_processor_handler_register(&EVENT_HANDLER); \
list_for_each_entry(module, modules + i, node) {
log_debug("Initializing %s module", module->name);
- ret = module->init(module, event_loop);
+ ret = module->init(module, NULL, event_loop);
if (ret)
goto err_cleanup;
}
FAULTD_MODULE_TYPE_MAX,
};
+struct faultd_config;
+
struct faultd_module {
char *name;
enum faultd_module_type type;
- int (*init)(struct faultd_module *, sd_event *event_loop);
+ int (*init)(struct faultd_module *, struct faultd_config *c, sd_event *event_loop);
void (*cleanup)(struct faultd_module *);
struct list_head node;
return ret;
}
-static int audit_listener_init(struct faultd_module *module, sd_event *event)
+static int audit_listener_init(struct faultd_module *module,
+ struct faultd_config *config,
+ sd_event *event)
{
struct audit_listener *alistener = to_audit_listener(module);
int fd;
return rc;
}
-static int systemd_listener_init(struct faultd_module *module, sd_event* loop)
+static int systemd_listener_init(struct faultd_module *module,
+ struct faultd_config *config,
+ sd_event* loop)
{
_cleanup_(sd_bus_error_free) sd_bus_error error = SD_BUS_ERROR_NULL;
_cleanup_(sd_bus_unrefp) sd_bus *bus = NULL;