diff options
author | Simo Sorce <ssorce@redhat.com> | 2008-05-09 20:58:02 -0400 |
---|---|---|
committer | Simo Sorce <ssorce@redhat.com> | 2008-05-15 12:59:28 -0400 |
commit | d0f0d97be6662c8a2f271aa713b127f0f655fcc4 (patch) | |
tree | 52a2b8dfe4c981f25899a5cdd9c66d34390ef6e1 /ipa-server | |
parent | fb3555c483bf3f6af71355965e9e07c149e2e5d1 (diff) | |
download | freeipa-d0f0d97be6662c8a2f271aa713b127f0f655fcc4.tar.gz freeipa-d0f0d97be6662c8a2f271aa713b127f0f655fcc4.tar.xz freeipa-d0f0d97be6662c8a2f271aa713b127f0f655fcc4.zip |
If there is an error we need to send back a reply ourselves.
Return also an intelligible error message.
Diffstat (limited to 'ipa-server')
-rw-r--r-- | ipa-server/ipa-slapi-plugins/dna/dna.c | 13 |
1 files changed, 11 insertions, 2 deletions
diff --git a/ipa-server/ipa-slapi-plugins/dna/dna.c b/ipa-server/ipa-slapi-plugins/dna/dna.c index ced18cad8..3f13b03f2 100644 --- a/ipa-server/ipa-slapi-plugins/dna/dna.c +++ b/ipa-server/ipa-slapi-plugins/dna/dna.c @@ -1147,6 +1147,7 @@ static int dna_pre_op(Slapi_PBlock * pb, int modtype) Slapi_Mod *smod = 0; LDAPMod **mods; int free_entry = 0; + char *errstr = NULL; int ret = 0; slapi_log_error(SLAPI_LOG_TRACE, DNA_PLUGIN_SUBSYSTEM, @@ -1269,8 +1270,12 @@ static int dna_pre_op(Slapi_PBlock * pb, int modtype) /* create the value to add */ ret = dna_get_next_value(config_entry, &value); - if (DNA_SUCCESS != ret) + if (DNA_SUCCESS != ret) { + errstr = slapi_ch_smprintf("Allocation of a new value for" + " %s failed! Unable to proceed.", + config_entry->type); break; + } len = strlen(value) + 1; if (config_entry->prefix) { @@ -1333,9 +1338,13 @@ static int dna_pre_op(Slapi_PBlock * pb, int modtype) if (free_entry && e) slapi_entry_free(e); - if (ret) + if (ret) { slapi_log_error(SLAPI_LOG_PLUGIN, DNA_PLUGIN_SUBSYSTEM, "dna_pre_op: operation failure [%d]\n", ret); + slapi_send_ldap_result(pb, ret, NULL, errstr, 0, NULL); + slapi_ch_free(&errstr); + ret = DNA_FAILURE; + } slapi_log_error(SLAPI_LOG_TRACE, DNA_PLUGIN_SUBSYSTEM, "<-- dna_pre_op\n"); |