}
-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
*/
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,
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,
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,
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;
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;