summaryrefslogtreecommitdiff
path: root/source4/ldap_server/ldap_server.h
diff options
context:
space:
mode:
authorStefan Metzmacher <metze@samba.org>2004-09-22 13:01:00 +0000
committerGerald (Jerry) Carter <jerry@samba.org>2007-10-10 12:59:02 -0500
commit6ad5996ef5e346d042da12874485c16b89536fc2 (patch)
tree06b4601228e5e96f2e42bb9c41a0070382fcd5ae /source4/ldap_server/ldap_server.h
parent1e09ab3774892a868f14f944127c8d5980487011 (diff)
downloadsamba-6ad5996ef5e346d042da12874485c16b89536fc2.tar.gz
samba-6ad5996ef5e346d042da12874485c16b89536fc2.tar.bz2
samba-6ad5996ef5e346d042da12874485c16b89536fc2.zip
r2523: - readd rootDSE reply
- add infrastructure start for having multiple directory partitions (backends) metze (This used to be commit 5103e7fe7873c0309461ad471f0529223d7c38eb)
Diffstat (limited to 'source4/ldap_server/ldap_server.h')
-rw-r--r--source4/ldap_server/ldap_server.h34
1 files changed, 34 insertions, 0 deletions
diff --git a/source4/ldap_server/ldap_server.h b/source4/ldap_server/ldap_server.h
index 65b355514c..960ab519bc 100644
--- a/source4/ldap_server/ldap_server.h
+++ b/source4/ldap_server/ldap_server.h
@@ -54,6 +54,8 @@ struct ldapsrv_call {
} *replies;
};
+struct ldapsrv_service;
+
struct ldapsrv_connection {
struct server_connection *connection;
@@ -64,4 +66,36 @@ struct ldapsrv_connection {
struct rw_buffer out_buffer;
struct ldapsrv_call *calls;
+
+ struct ldapsrv_service *service;
+};
+
+struct ldapsrv_partition;
+
+struct ldapsrv_partition_ops {
+ NTSTATUS (*Bind)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_BindRequest *r);
+ NTSTATUS (*Unbind)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_UnbindRequest *r);
+ NTSTATUS (*Search)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_SearchRequest *r);
+ NTSTATUS (*Modify)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_ModifyRequest *r);
+ NTSTATUS (*Add)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_AddRequest *r);
+ NTSTATUS (*Del)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_DelRequest *r);
+ NTSTATUS (*ModifyDN)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_ModifyDNRequest *r);
+ NTSTATUS (*Compare)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_CompareRequest *r);
+ NTSTATUS (*Abandon)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_AbandonRequest *r);
+ NTSTATUS (*Extended)(struct ldapsrv_partition *partition, struct ldapsrv_call *call, struct ldap_ExtendedRequest *r);
+};
+
+struct ldapsrv_partition {
+ struct ldapsrv_partition *prev,*next;
+
+ void *private_data;
+ const struct ldapsrv_partition_ops *ops;
+
+ const char *base_dn;
+};
+
+struct ldapsrv_service {
+ struct ldapsrv_partition *rootDSE;
+ struct ldapsrv_partition *default_partition;
+ struct ldapsrv_partition *partitions;
};