[Fedora-directory-commits] ldapserver/ldap/servers/plugins/replication windows_connection.c, 1.10, 1.11
Richard Allen Megginson (rmeggins)
fedora-directory-commits at redhat.com
Fri Oct 21 17:55:25 UTC 2005
Author: rmeggins
Update of /cvs/dirsec/ldapserver/ldap/servers/plugins/replication
In directory cvs-int.fedora.redhat.com:/tmp/cvs-serv23088
Modified Files:
windows_connection.c
Log Message:
also checkin fix for 170350 onto trunk
Index: windows_connection.c
===================================================================
RCS file: /cvs/dirsec/ldapserver/ldap/servers/plugins/replication/windows_connection.c,v
retrieving revision 1.10
retrieving revision 1.11
diff -u -r1.10 -r1.11
--- windows_connection.c 6 Oct 2005 18:23:10 -0000 1.10
+++ windows_connection.c 21 Oct 2005 17:55:22 -0000 1.11
@@ -385,6 +385,7 @@
char *errmsg = NULL;
char **referrals = NULL;
char *matched = NULL;
+ char *ptr;
rc = ldap_parse_result(conn->ld, res, &err, &matched,
&errmsg, &referrals, &loc_returned_controls,
@@ -433,13 +434,34 @@
}
return_value = LDAP_SUCCESS == conn->last_ldap_error ? CONN_OPERATION_SUCCESS : CONN_OPERATION_FAILED;
}
- slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name,
- "%s: Received result code %d for %s operation %s%s\n",
- agmt_get_long_name(conn->agmt),
- conn->last_ldap_error,
- op_string == NULL ? "" : op_string,
- extra_op_string == NULL ? "" : extra_op_string,
- extra_op_string == NULL ? "" : " ");
+ /* remove extra newlines from AD error message */
+ for (ptr = errmsg; ptr && *ptr; ++ptr) {
+ if ((*ptr == '\n') || (*ptr == '\r')) {
+ *ptr = ' ';
+ }
+ }
+ /* handle special case of constraint violation - give admin
+ enough information to allow them to fix the problem
+ and retry - bug 170350 */
+ if (conn->last_ldap_error == LDAP_CONSTRAINT_VIOLATION) {
+ char ebuf[BUFSIZ];
+ slapi_log_error(SLAPI_LOG_FATAL, repl_plugin_name,
+ "%s: Received error [%s] when attempting to %s"
+ " entry [%s]: Please correct the attribute specified "
+ "in the error message. Refer to the Windows Active "
+ "Directory docs for more information.\n",
+ agmt_get_long_name(conn->agmt),
+ errmsg, op_string == NULL ? "" : op_string,
+ escape_string(dn, ebuf));
+ } else {
+ slapi_log_error(SLAPI_LOG_REPL, repl_plugin_name,
+ "%s: Received result code %d (%s) for %s operation %s%s\n",
+ agmt_get_long_name(conn->agmt),
+ conn->last_ldap_error, errmsg,
+ op_string == NULL ? "" : op_string,
+ extra_op_string == NULL ? "" : extra_op_string,
+ extra_op_string == NULL ? "" : " ");
+ }
/*
* XXXggood do I need to free matched, referrals,
* anything else? Or can I pass NULL for the args
More information about the Fedora-directory-commits
mailing list