From 338c410fec8dbd902485e56567f6aecf256cdba2 Mon Sep 17 00:00:00 2001 From: Simo Sorce Date: Mon, 6 Feb 2006 01:21:17 +0000 Subject: r13361: initial implementation of the vlv control seem still buggy, can't make w2k3 to like it yet (This used to be commit e1318383e91f6f6db39e3e3c9946fbb089753947) --- source4/lib/ldb/include/ldb.h | 48 ++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 45 insertions(+), 3 deletions(-) (limited to 'source4/lib/ldb/include') diff --git a/source4/lib/ldb/include/ldb.h b/source4/lib/ldb/include/ldb.h index 44f2f5840c..a6cec7f774 100644 --- a/source4/lib/ldb/include/ldb.h +++ b/source4/lib/ldb/include/ldb.h @@ -455,20 +455,36 @@ typedef int (*ldb_qsort_cmp_fn_t) (void *v1, void *v2, void *opaque); /** OID for LDAP Attribute Scoped Query extension. - This control is include in SearchRequest or SearchResponse + This control is included in SearchRequest or SearchResponse messages as part of the controls field of the LDAPMessage. */ #define LDB_CONTROL_ASQ_OID "1.2.840.113556.1.4.1504" /** - OID for LDAPrectory Sync extension. + OID for LDAP Directory Sync extension. - This control is include in SearchRequest or SearchResponse + This control is included in SearchRequest or SearchResponse messages as part of the controls field of the LDAPMessage. */ #define LDB_CONTROL_DIRSYNC_OID "1.2.840.113556.1.4.841" +/** + OID for LDAP Virtual List View Request extension. + + This control is included in SearchRequest messages + as part of the controls field of the LDAPMessage. +*/ +#define LDB_CONTROL_VLV_REQ_OID "2.16.840.1.113730.3.4.9" + +/** + OID for LDAP Virtual List View Response extension. + + This control is included in SearchResponse messages + as part of the controls field of the LDAPMessage. +*/ +#define LDB_CONTROL_VLV_RESP_OID "2.16.840.1.113730.3.4.10" + struct ldb_paged_control { int size; int cookie_len; @@ -504,6 +520,32 @@ struct ldb_dirsync_control { char *cookie; }; +struct ldb_vlv_req_control { + int beforeCount; + int afterCount; + int type; + union { + struct { + int offset; + int contentCount; + } byOffset; + struct { + int value_len; + char *value; + } gtOrEq; + } match; + int ctxid_len; + char *contextId; +}; + +struct ldb_vlv_resp_control { + int targetPosition; + int contentCount; + int vlv_result; + int ctxid_len; + char *contextId; +}; + struct ldb_control { const char *oid; int critical; -- cgit