1
0
mirror of https://github.com/samba-team/samba.git synced 2024-12-27 03:21:53 +03:00

r25702: Clarify comments and make this module more strict on objectclasses.

This is becoming the schema module...

Andrew Bartlett
(This used to be commit ecea817a3e)
This commit is contained in:
Andrew Bartlett 2007-10-19 05:40:00 +02:00 committed by Stefan Metzmacher
parent 7619978553
commit c4ebf9587f

View File

@ -217,16 +217,14 @@ static int objectclass_sort(struct ldb_module *module,
* the bottom here */
} while (parent_class);
/* This shouldn't happen, and would break MMC, but we can't
* afford to loose objectClasses. Perhaps there was no 'top',
* or some other schema error?
*
* Detecting schema errors is the job of the schema module, so
* at this layer we just try not to loose data
*/
DLIST_CONCATENATE(sorted, unsorted, struct class_list *);
*sorted_out = sorted;
if (unsorted) {
/* This shouldn't happen, and would break MMC, but we can't
* afford to loose objectClasses. Perhaps there was no 'top',
* or some other schema error?
*/
ldb_asprintf_errstring(module->ldb, "objectclass %s is not a valid objectClass in objectClass chain", unsorted->objectclass);
return LDB_ERR_OBJECT_CLASS_VIOLATION;
}
return LDB_SUCCESS;
}
@ -397,6 +395,7 @@ static int objectclass_modify(struct ldb_module *module, struct ldb_request *req
case LDB_FLAG_MOD_DELETE:
/* Delete everything? Probably totally illigal, but hey! */
if (objectclass_element->num_values == 0) {
return ldb_next_request(module, req);
}
break;
@ -474,6 +473,10 @@ static int objectclass_modify(struct ldb_module *module, struct ldb_request *req
}
}
/* This isn't the default branch of the switch, but a 'in any
* other case'. When a delete isn't for all objectClasses for
* example
*/
{
struct ldb_handle *h;
struct oc_context *ac;