On Wed, Aug 15, 2012 at 01:23:45PM +0200, Petr Spacek wrote:
> Hello,
> 
> current code return very generic ISC_R_FAILURE code in nearly all (error) 
> cases.
> 
> This patch distinguishes between different LDAP errors and returns
> richer set of return codes from LDAP connection error handling code.
> 
> It should lead to clearer log messages.
> 
> Petr^2 Spacek

Ack

> From 15d6b38c9eda5b05d799c145ede8341f359e8633 Mon Sep 17 00:00:00 2001
> From: Petr Spacek <pspa...@redhat.com>
> Date: Wed, 15 Aug 2012 13:01:48 +0200
> Subject: [PATCH] Use richer set of return codes for LDAP connection error
>  handling code.
> 
> It should lead to clear log messages.
> 
> Signed-off-by: Petr Spacek <pspa...@redhat.com>
> ---
>  src/ldap_helper.c | 9 +++++++--
>  1 file changed, 7 insertions(+), 2 deletions(-)
> 
> diff --git a/src/ldap_helper.c b/src/ldap_helper.c
> index 
> 798aeadfef27d7071a1dd4133b7f08a21918ef78..da083d2e65032e650cfbbeb863262e0141403407
>  100644
> --- a/src/ldap_helper.c
> +++ b/src/ldap_helper.c
> @@ -1971,7 +1971,7 @@ ldap_reconnect(ldap_instance_t *ldap_inst, 
> ldap_connection_t *ldap_conn,
>               result = isc_time_now(&now);
>               time_cmp = isc_time_compare(&now, &ldap_conn->next_reconnect);
>               if (result == ISC_R_SUCCESS && time_cmp < 0)
> -                     return ISC_R_FAILURE;
> +                     return ISC_R_SOFTQUOTA;
>       }
>  
>       /* If either bind_dn or the password is not set, we will use
> @@ -2050,6 +2050,8 @@ force_reconnect:
>                       return ISC_R_NOPERM;
>               case LDAP_SERVER_DOWN:
>                       return ISC_R_NOTCONNECTED;
> +             case LDAP_TIMEOUT:
> +                     return ISC_R_TIMEDOUT;
>               default:
>                       return ISC_R_FAILURE;
>               }
> @@ -2085,13 +2087,16 @@ handle_connection_error(ldap_instance_t *ldap_inst, 
> ldap_connection_t *ldap_conn
>       switch (err_code) {
>       case LDAP_NO_SUCH_OBJECT:
>               ldap_conn->tries = 0;
> -             return ISC_R_SUCCESS;
> +             result = ISC_R_SUCCESS;
> +             break;
>       case LDAP_TIMEOUT:
>               log_error("LDAP query timed out. Try to adjust \"timeout\" 
> parameter");
> +             result = ISC_R_TIMEDOUT;
>               break;
>       case LDAP_INVALID_DN_SYNTAX:
>       case LDAP_INVALID_SYNTAX:
>               log_bug("Invalid syntax in handle_connection_error indicates a 
> bug");
> +             result = ISC_R_UNEXPECTEDTOKEN;
>               break;
>       default:
>               /* Try to reconnect on other errors. */
> -- 
> 1.7.11.2
> 


-- 
Adam Tkac, Red Hat, Inc.

_______________________________________________
Freeipa-devel mailing list
Freeipa-devel@redhat.com
https://www.redhat.com/mailman/listinfo/freeipa-devel

Reply via email to