From 3b199935615eb50ff039e89b9d3cfcebde2b4844 Mon Sep 17 00:00:00 2001 From: Jelmer Vernooij Date: Sun, 10 Oct 2010 21:37:58 +0200 Subject: dsdb/schema: Move some dsdb_dn functions that are schema-specific. --- source4/dsdb/common/dsdb_dn.c | 78 ------------------------------------------- 1 file changed, 78 deletions(-) (limited to 'source4/dsdb/common') diff --git a/source4/dsdb/common/dsdb_dn.c b/source4/dsdb/common/dsdb_dn.c index 85ba9b7605..3e0f4653fd 100644 --- a/source4/dsdb/common/dsdb_dn.c +++ b/source4/dsdb/common/dsdb_dn.c @@ -328,84 +328,6 @@ int dsdb_dn_string_comparison(struct ldb_context *ldb, void *mem_ctx, return ldb_any_comparison(ldb, mem_ctx, dsdb_dn_string_canonicalise, v1, v2); } - -/* - convert a dsdb_dn to a linked attribute data blob -*/ -WERROR dsdb_dn_la_to_blob(struct ldb_context *sam_ctx, - const struct dsdb_attribute *schema_attrib, - const struct dsdb_schema *schema, - TALLOC_CTX *mem_ctx, - struct dsdb_dn *dsdb_dn, DATA_BLOB **blob) -{ - struct ldb_val v; - WERROR werr; - struct ldb_message_element val_el; - struct drsuapi_DsReplicaAttribute drs; - struct dsdb_syntax_ctx syntax_ctx; - - /* use default syntax conversion context */ - dsdb_syntax_ctx_init(&syntax_ctx, sam_ctx, schema); - - /* we need a message_element with just one value in it */ - v = data_blob_string_const(dsdb_dn_get_extended_linearized(mem_ctx, dsdb_dn, 1)); - - val_el.name = schema_attrib->lDAPDisplayName; - val_el.values = &v; - val_el.num_values = 1; - - werr = schema_attrib->syntax->ldb_to_drsuapi(&syntax_ctx, schema_attrib, &val_el, mem_ctx, &drs); - W_ERROR_NOT_OK_RETURN(werr); - - if (drs.value_ctr.num_values != 1) { - DEBUG(1,(__location__ ": Failed to build DRS blob for linked attribute %s\n", - schema_attrib->lDAPDisplayName)); - return WERR_DS_DRA_INTERNAL_ERROR; - } - - *blob = drs.value_ctr.values[0].blob; - return WERR_OK; -} - -/* - convert a data blob to a dsdb_dn - */ -WERROR dsdb_dn_la_from_blob(struct ldb_context *sam_ctx, - const struct dsdb_attribute *schema_attrib, - const struct dsdb_schema *schema, - TALLOC_CTX *mem_ctx, - DATA_BLOB *blob, - struct dsdb_dn **dsdb_dn) -{ - WERROR werr; - struct ldb_message_element new_el; - struct drsuapi_DsReplicaAttribute drs; - struct drsuapi_DsAttributeValue val; - struct dsdb_syntax_ctx syntax_ctx; - - /* use default syntax conversion context */ - dsdb_syntax_ctx_init(&syntax_ctx, sam_ctx, schema); - - drs.value_ctr.num_values = 1; - drs.value_ctr.values = &val; - val.blob = blob; - - werr = schema_attrib->syntax->drsuapi_to_ldb(&syntax_ctx, schema_attrib, &drs, mem_ctx, &new_el); - W_ERROR_NOT_OK_RETURN(werr); - - if (new_el.num_values != 1) { - return WERR_INTERNAL_ERROR; - } - - *dsdb_dn = dsdb_dn_parse(mem_ctx, sam_ctx, &new_el.values[0], schema_attrib->syntax->ldap_oid); - if (!*dsdb_dn) { - return WERR_INTERNAL_ERROR; - } - - return WERR_OK; -} - - /* format a drsuapi_DsReplicaObjectIdentifier naming context as a string */ -- cgit