summaryrefslogtreecommitdiff
path: root/source4/dsdb/schema
diff options
context:
space:
mode:
Diffstat (limited to 'source4/dsdb/schema')
-rw-r--r--source4/dsdb/schema/schema_init.c31
-rw-r--r--source4/dsdb/schema/schema_syntax.c10
2 files changed, 11 insertions, 30 deletions
diff --git a/source4/dsdb/schema/schema_init.c b/source4/dsdb/schema/schema_init.c
index 1d2363bfa6..ba14d378c1 100644
--- a/source4/dsdb/schema/schema_init.c
+++ b/source4/dsdb/schema/schema_init.c
@@ -158,28 +158,6 @@ WERROR dsdb_get_oid_mappings_ldb(const struct dsdb_schema *schema,
}
-WERROR dsdb_map_int2oid(const struct dsdb_schema *schema, uint32_t in, TALLOC_CTX *mem_ctx, const char **out)
-{
- uint32_t i;
-
- for (i=0; i < schema->num_prefixes; i++) {
- const char *val;
- if (schema->prefixes[i].id != (in & 0xFFFF0000)) {
- continue;
- }
-
- val = talloc_asprintf(mem_ctx, "%s.%u",
- schema->prefixes[i].oid,
- in & 0xFFFF);
- W_ERROR_HAVE_NO_MEMORY(val);
-
- *out = val;
- return WERR_OK;
- }
-
- return WERR_DS_NO_MSDS_INTID;
-}
-
/*
* this function is called from within a ldb transaction from the schema_fsmo module
*/
@@ -1181,7 +1159,8 @@ WERROR dsdb_attribute_from_drsuapi(struct ldb_context *ldb,
GET_STRING_DS(schema, r, "name", mem_ctx, attr, cn, true);
GET_STRING_DS(schema, r, "lDAPDisplayName", mem_ctx, attr, lDAPDisplayName, true);
GET_UINT32_DS(schema, r, "attributeID", attr, attributeID_id);
- status = dsdb_map_int2oid(schema, attr->attributeID_id, mem_ctx, &attr->attributeID_oid);
+ status = dsdb_schema_pfm_oid_from_attid(schema->prefixmap, attr->attributeID_id,
+ mem_ctx, &attr->attributeID_oid);
if (!W_ERROR_IS_OK(status)) {
DEBUG(0,("%s: '%s': unable to map attributeID 0x%08X: %s\n",
__location__, attr->lDAPDisplayName, attr->attributeID_id,
@@ -1199,7 +1178,8 @@ WERROR dsdb_attribute_from_drsuapi(struct ldb_context *ldb,
GET_UINT32_DS(schema, r, "linkID", attr, linkID);
GET_UINT32_DS(schema, r, "attributeSyntax", attr, attributeSyntax_id);
- status = dsdb_map_int2oid(schema, attr->attributeSyntax_id, mem_ctx, &attr->attributeSyntax_oid);
+ status = dsdb_schema_pfm_oid_from_attid(schema->prefixmap, attr->attributeSyntax_id,
+ mem_ctx, &attr->attributeSyntax_oid);
if (!W_ERROR_IS_OK(status)) {
DEBUG(0,("%s: '%s': unable to map attributeSyntax 0x%08X: %s\n",
__location__, attr->lDAPDisplayName, attr->attributeSyntax_id,
@@ -1247,7 +1227,8 @@ WERROR dsdb_class_from_drsuapi(struct dsdb_schema *schema,
GET_STRING_DS(schema, r, "name", mem_ctx, obj, cn, true);
GET_STRING_DS(schema, r, "lDAPDisplayName", mem_ctx, obj, lDAPDisplayName, true);
GET_UINT32_DS(schema, r, "governsID", obj, governsID_id);
- status = dsdb_map_int2oid(schema, obj->governsID_id, mem_ctx, &obj->governsID_oid);
+ status = dsdb_schema_pfm_oid_from_attid(schema->prefixmap, obj->governsID_id,
+ mem_ctx, &obj->governsID_oid);
if (!W_ERROR_IS_OK(status)) {
DEBUG(0,("%s: '%s': unable to map governsID 0x%08X: %s\n",
__location__, obj->lDAPDisplayName, obj->governsID_id,
diff --git a/source4/dsdb/schema/schema_syntax.c b/source4/dsdb/schema/schema_syntax.c
index f656728a54..65baaeb070 100644
--- a/source4/dsdb/schema/schema_syntax.c
+++ b/source4/dsdb/schema/schema_syntax.c
@@ -684,9 +684,9 @@ static WERROR _dsdb_syntax_OID_oid_drsuapi_to_ldb(struct ldb_context *ldb,
W_ERROR_HAVE_NO_MEMORY(out->values);
for (i=0; i < out->num_values; i++) {
- uint32_t v;
+ uint32_t attid;
WERROR status;
- const char *str;
+ const char *oid;
if (in->value_ctr.values[i].blob == NULL) {
return WERR_FOOBAR;
@@ -696,12 +696,12 @@ static WERROR _dsdb_syntax_OID_oid_drsuapi_to_ldb(struct ldb_context *ldb,
return WERR_FOOBAR;
}
- v = IVAL(in->value_ctr.values[i].blob->data, 0);
+ attid = IVAL(in->value_ctr.values[i].blob->data, 0);
- status = dsdb_map_int2oid(schema, v, out->values, &str);
+ status = dsdb_schema_pfm_oid_from_attid(schema->prefixmap, attid, out->values, &oid);
W_ERROR_NOT_OK_RETURN(status);
- out->values[i] = data_blob_string_const(str);
+ out->values[i] = data_blob_string_const(oid);
}
return WERR_OK;