diff options
Diffstat (limited to 'server/providers/dp_backend.h')
-rw-r--r-- | server/providers/dp_backend.h | 32 |
1 files changed, 30 insertions, 2 deletions
diff --git a/server/providers/dp_backend.h b/server/providers/dp_backend.h index 27f79eb7a..3a07827a8 100644 --- a/server/providers/dp_backend.h +++ b/server/providers/dp_backend.h @@ -36,6 +36,33 @@ typedef void (*be_shutdown_fn)(void *); typedef void (*be_req_fn_t)(struct be_req *); typedef void (*be_async_callback_t)(struct be_req *, int, const char *); +enum be_target { + BE_TARGET_NULL = 0, + BE_TARGET_ID, + BE_TARGET_AUTH, + BE_TARGET_ACCESS, + BE_TARGET_CHPASS, + BE_TARGET_MAX +}; + +struct be_target_data { + enum be_target be_target; + const char *option_name; + const char *mod_init_fn_name_fmt; +}; + +struct loaded_be { + char *be_name; + void *handle; +}; + +struct be_target_info { + enum be_target be_target; + struct be_auth_ops *target_ops; + void *pvt_target_data; +}; + + struct be_ctx { struct tevent_context *ev; struct confdb_ctx *cdb; @@ -47,11 +74,12 @@ struct be_ctx { const char *identity; const char *conf_path; + struct loaded_be loaded_be[BE_TARGET_MAX]; + struct be_id_ops *id_ops; void *pvt_id_data; - struct be_auth_ops *auth_ops; - void *pvt_auth_data; + struct be_target_info be_target_info[BE_TARGET_MAX]; }; struct be_id_ops { |