summaryrefslogtreecommitdiffstats
path: root/src/responder/common/responder.h
diff options
context:
space:
mode:
authorJakub Hrozek <jhrozek@redhat.com>2012-05-20 21:37:59 +0200
committerJakub Hrozek <jhrozek@redhat.com>2012-07-09 16:11:44 +0200
commitb420a0458223ddd4fb563a2117bc56aa5af493b0 (patch)
treec6b2721f6645140afa88878ef2d59f806e6eb96e /src/responder/common/responder.h
parentbb446567389e894bf4d64a9589606d1951ac7902 (diff)
downloadsssd-b420a0458223ddd4fb563a2117bc56aa5af493b0.tar.gz
sssd-b420a0458223ddd4fb563a2117bc56aa5af493b0.tar.xz
sssd-b420a0458223ddd4fb563a2117bc56aa5af493b0.zip
Generic getent_{send,recv}
Diffstat (limited to 'src/responder/common/responder.h')
-rw-r--r--src/responder/common/responder.h39
1 files changed, 39 insertions, 0 deletions
diff --git a/src/responder/common/responder.h b/src/responder/common/responder.h
index 43a4fa023..b9518ab31 100644
--- a/src/responder/common/responder.h
+++ b/src/responder/common/responder.h
@@ -289,4 +289,43 @@ struct tevent_req *sss_dp_get_domains_send(TALLOC_CTX *mem_ctx,
const char *hint);
errno_t sss_dp_get_domains_recv(struct tevent_req *req);
+
+/* A generic request to walk all domains, checking the cache or DP
+ * and yield results
+ */
+struct sysdb_ctx;
+
+typedef errno_t (*check_ncache_fn)(struct sss_domain_info *, void *);
+typedef errno_t (*set_ncache_fn)(struct sss_domain_info *, void *);
+typedef errno_t (*check_sysdb_fn)(TALLOC_CTX *, struct sysdb_ctx *,
+ struct sss_domain_info *, void *,
+ struct ldb_result **);
+typedef struct tevent_req * (*update_cache_fn)(struct sss_domain_info *,
+ void *);
+typedef errno_t (*cache_updated_fn)(TALLOC_CTX *, struct tevent_req *,
+ dbus_uint16_t *, dbus_uint32_t *,
+ char **);
+typedef const char * (*get_ent_name_fn)(struct sss_domain_info *, void *);
+
+struct getent_ops {
+ check_ncache_fn check_ncache;
+ set_ncache_fn set_ncache;
+ check_sysdb_fn check_sysdb;
+ update_cache_fn update_cache;
+ cache_updated_fn cache_updated;
+ get_ent_name_fn get_ent_name;
+};
+
+struct tevent_req *
+getent_send(TALLOC_CTX *mem_ctx, struct tevent_context *ev,
+ struct cli_ctx *cctx, bool multidomain,
+ int cache_refresh_percent, struct getent_ops *ops,
+ const char *db_name, void *pvt);
+
+errno_t
+getent_recv(TALLOC_CTX *mem_ctx,
+ struct tevent_req *req,
+ struct sysdb_ctx **_db,
+ struct ldb_result **_res);
+
#endif /* __SSS_RESPONDER_H__ */