summaryrefslogtreecommitdiffstats
path: root/server/providers/dp_backend.h
diff options
context:
space:
mode:
Diffstat (limited to 'server/providers/dp_backend.h')
-rw-r--r--server/providers/dp_backend.h32
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 {