1
0
mirror of https://github.com/samba-team/samba.git synced 2025-12-16 00:23:52 +03:00

r12984: add parse code and ldbsearch cmdline code for

NOTIFICATION LDAP Controls
http://msdn.microsoft.com/library/default.asp?url=/library/en-us/ldap/ldap/ldap_server_notification_oid.asp

this doesn't work yet, but it shows that we need to extend ldb to correctly
handle async requests...

metze
(This used to be commit 1fe6718949)
This commit is contained in:
Stefan Metzmacher
2006-01-17 18:56:04 +00:00
committed by Gerald (Jerry) Carter
parent 8139c1e6f2
commit 828ee2bc6f
3 changed files with 49 additions and 3 deletions

View File

@@ -60,7 +60,7 @@ static BOOL decode_server_sort_response(void *mem_ctx, DATA_BLOB in, void **out)
if (!asn1_read_OctetString(&data, &attr)) {
return False;
}
lsrc->attr_desc = talloc_strndup(lsrc, attr.data, attr.length);
lsrc->attr_desc = talloc_strndup(lsrc, (const char *)attr.data, attr.length);
if (!lsrc->attr_desc) {
return False;
}
@@ -111,7 +111,7 @@ static BOOL decode_server_sort_request(void *mem_ctx, DATA_BLOB in, void **out)
return False;
}
lssc[num]->attributeName = talloc_strndup(lssc[num], attr.data, attr.length);
lssc[num]->attributeName = talloc_strndup(lssc[num], (const char *)attr.data, attr.length);
if (!lssc [num]->attributeName) {
return False;
}
@@ -120,7 +120,7 @@ static BOOL decode_server_sort_request(void *mem_ctx, DATA_BLOB in, void **out)
if (!asn1_read_OctetString(&data, &rule)) {
return False;
}
lssc[num]->orderingRule = talloc_strndup(lssc[num], rule.data, rule.length);
lssc[num]->orderingRule = talloc_strndup(lssc[num], (const char *)rule.data, rule.length);
if (!lssc[num]->orderingRule) {
return False;
}
@@ -336,6 +336,15 @@ static BOOL decode_asq_control(void *mem_ctx, DATA_BLOB in, void **out)
return True;
}
static BOOL decode_notification_request(void *mem_ctx, DATA_BLOB in, void **out)
{
if (in.length != 0) {
return False;
}
return True;
}
static BOOL encode_server_sort_response(void *mem_ctx, void *in, DATA_BLOB *out)
{
struct ldb_sort_resp_control *lsrc = talloc_get_type(in, struct ldb_sort_resp_control);
@@ -549,6 +558,16 @@ static BOOL encode_dirsync_request(void *mem_ctx, void *in, DATA_BLOB *out)
return True;
}
static BOOL encode_notification_request(void *mem_ctx, void *in, DATA_BLOB *out)
{
if (in) {
return False;
}
*out = data_blob(NULL, 0);
return True;
}
struct control_handler ldap_known_controls[] = {
{ "1.2.840.113556.1.4.319", decode_paged_results_request, encode_paged_results_request },
{ "1.2.840.113556.1.4.529", decode_extended_dn_request, encode_extended_dn_request },
@@ -556,6 +575,7 @@ struct control_handler ldap_known_controls[] = {
{ "1.2.840.113556.1.4.474", decode_server_sort_response, encode_server_sort_response },
{ "1.2.840.113556.1.4.1504", decode_asq_control, encode_asq_control },
{ "1.2.840.113556.1.4.841", decode_dirsync_request, encode_dirsync_request },
{ "1.2.840.113556.1.4.528", decode_notification_request, encode_notification_request },
{ NULL, NULL, NULL }
};