summaryrefslogtreecommitdiffstats
path: root/src/back-sch.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/back-sch.h')
-rw-r--r--src/back-sch.h25
1 files changed, 21 insertions, 4 deletions
diff --git a/src/back-sch.h b/src/back-sch.h
index 85ea86f..0741434 100644
--- a/src/back-sch.h
+++ b/src/back-sch.h
@@ -38,9 +38,6 @@ struct backend_set_data {
bool_t check_access;
enum sch_search_sssd_t check_sssd;
long sssd_min_id;
- char *sssd_buffer;
- ssize_t sssd_buffer_len;
- struct backend_set_data *sssd_relevant_set;
};
struct backend_entry_data {
@@ -48,6 +45,19 @@ struct backend_entry_data {
Slapi_Entry *e;
};
+struct backend_staged_data {
+ struct backend_staged_data *next;
+ struct backend_set_data *set_data_fixup;
+ char *map_group, *map_set;
+ enum sch_search_sssd_t type;
+ bool_t is_id;
+ bool_t search_members;
+ char *name;
+ char *container_sdn;
+ int count;
+ Slapi_Entry **entries;
+};
+
/* Intercept a search request, and if it belongs to one of our compatibility
* trees, answer from our cache before letting the default database have a
* crack at it. */
@@ -61,23 +71,30 @@ struct backend_search_cbdata {
Slapi_DN *target_dn;
Slapi_Filter *filter;
long sssd_min_id;
+ char *sssd_buffer;
+ ssize_t sssd_buffer_len;
bool_t answer;
int result;
bool_t matched;
char *closest_match, *text;
int n_entries;
+ struct backend_staged_data *staged;
+ struct backend_staged_data *cur_staged;
};
void backend_search_sssd(struct backend_set_data *set_data,
struct backend_search_cbdata *cbdata);
+bool_t backend_retrieve_from_sssd(struct backend_staged_data *staged,
+ struct backend_search_cbdata *cbdata);
+
void backend_set_operational_attributes(Slapi_Entry *e,
struct plugin_state *state,
time_t timestamp,
int n_subordinates,
const char *usn);
-int backend_sch_do_pam_auth(Slapi_PBlock *pb, Slapi_Entry *entry);
+int backend_sch_do_pam_auth(Slapi_PBlock *pb, const char *username);
#endif