summaryrefslogtreecommitdiffstats
path: root/ldap/servers/slapd/slap.h
diff options
context:
space:
mode:
authorNoriko Hosoi <nhosoi@kiki.usersys.redhat.com>2009-05-15 16:10:32 -0700
committerNoriko Hosoi <nhosoi@kiki.usersys.redhat.com>2009-05-15 16:10:32 -0700
commit4beed0d0584c8b17d8b48a03320e46bd89aa5211 (patch)
treea0aac747b2b2dafc4917d15744a1f70445487264 /ldap/servers/slapd/slap.h
parent0410819d48795fca4faf986cf8658c34c4d929e3 (diff)
downloadds-4beed0d0584c8b17d8b48a03320e46bd89aa5211.tar.gz
ds-4beed0d0584c8b17d8b48a03320e46bd89aa5211.tar.xz
ds-4beed0d0584c8b17d8b48a03320e46bd89aa5211.zip
Add Simple Paged Results
For more details, see the design doc at http://directory.fedoraproject.org/wiki/Simple_Paged_Results_Design
Diffstat (limited to 'ldap/servers/slapd/slap.h')
-rw-r--r--ldap/servers/slapd/slap.h19
1 files changed, 19 insertions, 0 deletions
diff --git a/ldap/servers/slapd/slap.h b/ldap/servers/slapd/slap.h
index 724bef93..3bcadde8 100644
--- a/ldap/servers/slapd/slap.h
+++ b/ldap/servers/slapd/slap.h
@@ -202,6 +202,11 @@ typedef struct symbol_t {
#define LDAP_CONTROL_GET_EFFECTIVE_RIGHTS "1.3.6.1.4.1.42.2.27.9.5.2"
#endif
+/* PAGED RESULTS control (shared by request and response) */
+#ifndef LDAP_CONTROL_PAGEDRESULTS
+#define LDAP_CONTROL_PAGEDRESULTS "1.2.840.113556.1.4.319"
+#endif
+
#define SLAPD_VENDOR_NAME "Fedora Project"
#define SLAPD_VERSION_STR "Fedora-Directory/" PRODUCTTEXT
#define SLAPD_SHORT_VERSION_STR PRODUCTTEXT
@@ -760,6 +765,7 @@ struct slapdplugin {
IFP plg_un_db_search; /* search */
IFP plg_un_db_next_search_entry; /* iterate */
IFP plg_un_db_next_search_entry_ext;
+ IFP plg_un_db_search_results_release; /* PAGED RESULTS */
IFP plg_un_db_entry_release;
IFP plg_un_db_compare; /* compare */
IFP plg_un_db_modify; /* modify */
@@ -797,6 +803,7 @@ struct slapdplugin {
#define plg_search plg_un.plg_un_db.plg_un_db_search
#define plg_next_search_entry plg_un.plg_un_db.plg_un_db_next_search_entry
#define plg_next_search_entry_ext plg_un.plg_un_db.plg_un_db_next_search_entry_ext
+#define plg_search_results_release plg_un.plg_un_db.plg_un_db_search_results_release
#define plg_entry_release plg_un.plg_un_db.plg_un_db_entry_release
#define plg_compare plg_un.plg_un_db.plg_un_db_compare
#define plg_modify plg_un.plg_un_db.plg_un_db_modify
@@ -1050,6 +1057,7 @@ typedef struct backend {
#define be_next_search_entry be_database->plg_next_search_entry
#define be_next_search_entry_ext be_database->plg_next_search_entry_ext
#define be_entry_release be_database->plg_entry_release
+#define be_search_results_release be_database->plg_search_results_release
#define be_compare be_database->plg_compare
#define be_modify be_database->plg_modify
#define be_modrdn be_database->plg_modrdn
@@ -1268,6 +1276,13 @@ typedef struct conn {
int c_local_valid; /* flag true if the uid/gid are valid */
uid_t c_local_uid; /* uid of connecting process */
gid_t c_local_gid; /* gid of connecting process */
+ /* PAGED_RESULTS */
+ Slapi_Backend *c_current_be; /* backend being used */
+ void *c_search_result_set; /* search result set for paging */
+ int c_search_result_count; /* search result count */
+ int c_sort_result_code; /* sort result put in response */
+ time_t c_timelimit; /* time limit for this connection */
+ /* PAGED_RESULTS ENDS */
} Connection;
#define CONN_FLAG_SSL 1 /* Is this connection an SSL connection or not ?
* Used to direct I/O code when SSL is handled differently
@@ -1291,6 +1306,10 @@ typedef struct conn {
* successfully completed.
*/
+#define CONN_FLAG_PAGEDRESULTS_WITH_SORT 64 /* paged results control is
+ * sent with server side sorting
+ */
+#define CONN_GET_SORT_RESULT_CODE (-1)
#define START_TLS_OID "1.3.6.1.4.1.1466.20037"