diff options
author | Simo Sorce <idra@samba.org> | 2006-07-22 21:16:01 +0000 |
---|---|---|
committer | Gerald (Jerry) Carter <jerry@samba.org> | 2007-10-10 14:10:18 -0500 |
commit | e248caed12f5d20d3abedfaf84aa18cdff46c95c (patch) | |
tree | 0c34907d21f999fc30fa0b97cdd295eaa4c8a526 /source4/lib/ldb | |
parent | fcea6386577dc698661972c3b192bafd1dee3a4a (diff) | |
download | samba-e248caed12f5d20d3abedfaf84aa18cdff46c95c.tar.gz samba-e248caed12f5d20d3abedfaf84aa18cdff46c95c.tar.bz2 samba-e248caed12f5d20d3abedfaf84aa18cdff46c95c.zip |
r17195: Start thinking how to implement extended operations.
Ad supports three extended operations:
- start tls
- dynamic objects
- fast binds
none of these are a priority.
(This used to be commit 523e8f3ed4bf5fcf9dc0c9e2100e4ac3b8032be7)
Diffstat (limited to 'source4/lib/ldb')
-rw-r--r-- | source4/lib/ldb/include/ldb.h | 17 | ||||
-rw-r--r-- | source4/lib/ldb/include/ldb_private.h | 1 |
2 files changed, 18 insertions, 0 deletions
diff --git a/source4/lib/ldb/include/ldb.h b/source4/lib/ldb/include/ldb.h index 68c2272adf..6e3f69f607 100644 --- a/source4/lib/ldb/include/ldb.h +++ b/source4/lib/ldb/include/ldb.h @@ -494,6 +494,14 @@ typedef int (*ldb_qsort_cmp_fn_t) (void *v1, void *v2, void *opaque); */ #define LDB_CONTROL_VLV_RESP_OID "2.16.840.1.113730.3.4.10" +/** + OID for LDAP Extended Operation START_TLS. + + This Extended operation is used to start a new TLS + channel on top of a clear text channel. +*/ +#define LDB_EXTENDED_STATRT_TLS_OID "1.3.6.1.4.1.1466.20037" + struct ldb_paged_control { int size; int cookie_len; @@ -567,6 +575,7 @@ enum ldb_request_type { LDB_MODIFY, LDB_DELETE, LDB_RENAME, + LDB_EXTENDED, LDB_REQ_REGISTER_CONTROL, LDB_REQ_REGISTER_PARTITION, LDB_SEQUENCE_NUMBER @@ -575,6 +584,7 @@ enum ldb_request_type { enum ldb_reply_type { LDB_REPLY_ENTRY, LDB_REPLY_REFERRAL, + LDB_REPLY_EXTENDED, LDB_REPLY_DONE }; @@ -596,9 +606,16 @@ struct ldb_result { struct ldb_control **controls; }; +struct ldb_extended { + const char *oid; + const char *value; + int value_len; +}; + struct ldb_reply { enum ldb_reply_type type; struct ldb_message *message; + struct ldb_extended *response; char *referral; struct ldb_control **controls; }; diff --git a/source4/lib/ldb/include/ldb_private.h b/source4/lib/ldb/include/ldb_private.h index 1360602000..b862daec86 100644 --- a/source4/lib/ldb/include/ldb_private.h +++ b/source4/lib/ldb/include/ldb_private.h @@ -63,6 +63,7 @@ struct ldb_module_ops { int (*del)(struct ldb_module *, struct ldb_request *); /* delete */ int (*rename)(struct ldb_module *, struct ldb_request *); /* rename */ int (*request)(struct ldb_module *, struct ldb_request *); /* match any other operation */ + int (*extended)(struct ldb_module *, struct ldb_request *); /* extended operations */ int (*start_transaction)(struct ldb_module *); int (*end_transaction)(struct ldb_module *); int (*del_transaction)(struct ldb_module *); |