diff options
author | Simo Sorce <idra@samba.org> | 2008-12-22 15:54:56 -0500 |
---|---|---|
committer | Simo Sorce <idra@samba.org> | 2008-12-22 18:52:48 -0500 |
commit | 41718e315ea78998fab0893fd5f148a49d8faab8 (patch) | |
tree | ecbc13fb3abce56481ba04e13d9aa1b69b19783b /ldb/common/ldb_ldif.c | |
parent | a93a69380dc6718c49879af628ed69f8e2b70797 (diff) | |
download | sssd-41718e315ea78998fab0893fd5f148a49d8faab8.tar.gz sssd-41718e315ea78998fab0893fd5f148a49d8faab8.tar.xz sssd-41718e315ea78998fab0893fd5f148a49d8faab8.zip |
Rebase ldb code with all changes in samba master
Diffstat (limited to 'ldb/common/ldb_ldif.c')
-rw-r--r-- | ldb/common/ldb_ldif.c | 16 |
1 files changed, 10 insertions, 6 deletions
diff --git a/ldb/common/ldb_ldif.c b/ldb/common/ldb_ldif.c index fb93e17c6..619c10e11 100644 --- a/ldb/common/ldb_ldif.c +++ b/ldb/common/ldb_ldif.c @@ -278,13 +278,15 @@ int ldb_ldif_write(struct ldb_context *ldb, TALLOC_CTX *mem_ctx; unsigned int i, j; int total=0, ret; + char *p; const struct ldb_message *msg; mem_ctx = talloc_named_const(NULL, 0, "ldb_ldif_write"); msg = ldif->msg; - - ret = fprintf_fn(private_data, "dn: %s\n", ldb_dn_get_linearized(msg->dn)); + p = ldb_dn_get_extended_linearized(mem_ctx, msg->dn, 1); + ret = fprintf_fn(private_data, "dn: %s\n", p); + talloc_free(p); CHECK_RET; if (ldif->changetype != LDB_CHANGETYPE_NONE) { @@ -328,8 +330,10 @@ int ldb_ldif_write(struct ldb_context *ldb, for (j=0;j<msg->elements[i].num_values;j++) { struct ldb_val v; ret = a->syntax->ldif_write_fn(ldb, mem_ctx, &msg->elements[i].values[j], &v); - CHECK_RET; - if (ldb_should_b64_encode(&v)) { + if (ret != LDB_SUCCESS) { + v = msg->elements[i].values[j]; + } + if (ret != LDB_SUCCESS || ldb_should_b64_encode(&v)) { ret = fprintf_fn(private_data, "%s:: ", msg->elements[i].name); CHECK_RET; @@ -562,11 +566,11 @@ struct ldb_ldif *ldb_ldif_read(struct ldb_context *ldb, goto failed; } - msg->dn = ldb_dn_new(msg, ldb, (char *)value.data); + msg->dn = ldb_dn_from_ldb_val(msg, ldb, &value); if ( ! ldb_dn_validate(msg->dn)) { ldb_debug(ldb, LDB_DEBUG_ERROR, "Error: Unable to parse dn '%s'\n", - value.data); + (char *)value.data); goto failed; } |