[Freeipa-devel] [PATCH 0122] Log successful zone reload after record change.

Adam Tkac atkac at redhat.com
Mon Mar 25 14:56:18 UTC 2013


On Thu, Mar 21, 2013 at 02:45:11PM +0100, Petr Spacek wrote:
> Hello,
> 
>     Log successful zone reload after record change.
> 
> This should be last piece of
> https://fedorahosted.org/bind-dyndb-ldap/ticket/102

Ack

> From 06c414c2922bb09c18afd9fadc52b2b0f4529f90 Mon Sep 17 00:00:00 2001
> From: Petr Spacek <pspacek at redhat.com>
> Date: Thu, 21 Mar 2013 14:43:56 +0100
> Subject: [PATCH] Log successful zone reload after record change.
> 
> Signed-off-by: Petr Spacek <pspacek at redhat.com>
> ---
>  src/ldap_helper.c | 19 ++++++++++++++-----
>  1 file changed, 14 insertions(+), 5 deletions(-)
> 
> diff --git a/src/ldap_helper.c b/src/ldap_helper.c
> index 7ac5ceda26cd9d734f94d9195388db879be1959e..72105e6093cea7b0bc9fdfc96229afded7650dce 100644
> --- a/src/ldap_helper.c
> +++ b/src/ldap_helper.c
> @@ -3494,6 +3494,7 @@ update_record(isc_task_t *task, isc_event_t *event)
>  	dns_zone_t *zone_ptr = NULL;
>  	isc_boolean_t zone_found = ISC_FALSE;
>  	isc_boolean_t zone_reloaded = ISC_FALSE;
> +	isc_uint32_t serial;
>  	mctx = pevent->mctx;
>  
>  	UNUSED(task);
> @@ -3579,8 +3580,7 @@ update_restart:
>  		if (serial_autoincrement)
>  			CHECK(soa_serial_increment(mctx, inst, &origin));
>  		else {
> -			isc_uint32_t dummy;
> -			CHECK(ldap_get_zone_serial(inst, &origin, &dummy));
> +			CHECK(ldap_get_zone_serial(inst, &origin, &serial));
>  		}
>  	}
>  
> @@ -3594,16 +3594,23 @@ cleanup:
>  		result = zr_get_zone_ptr(inst->zone_register, &origin, &zone_ptr);
>  		if (result == ISC_R_SUCCESS)
>  			result = dns_zone_load(zone_ptr);
> -		if (zone_ptr != NULL)
> -			dns_zone_detach(&zone_ptr);
>  
>  		if (result == ISC_R_SUCCESS || result == DNS_R_UPTODATE ||
>  		    result == DNS_R_DYNAMIC || result == DNS_R_CONTINUE) {
>  			/* zone reload succeeded, fire current event again */
>  			log_debug(1, "restarting update_record after zone reload "
>  				     "caused by change in '%s'", pevent->dn);
>  			zone_reloaded = ISC_TRUE;
> -			goto update_restart;
> +			result = dns_zone_getserial2(zone_ptr, &serial);
> +			if (result == ISC_R_SUCCESS) {
> +				dns_zone_log(zone_ptr, ISC_LOG_INFO,
> +					     "reloaded serial %u", serial);
> +				goto update_restart;
> +			} else {
> +				dns_zone_log(zone_ptr, ISC_LOG_ERROR,
> +					     "could not get serial after "
> +					     "reload");
> +			}
>  		} else {
>  			log_error_r("unable to reload invalid zone; "
>  				    "reload triggered by change in '%s'",
> @@ -3617,6 +3624,8 @@ cleanup:
>  			  pevent->dn, pevent->chgtype);
>  	}
>  
> +	if (zone_ptr != NULL)
> +		dns_zone_detach(&zone_ptr);
>  	if (dns_name_dynamic(&name))
>  		dns_name_free(&name, inst->mctx);
>  	if (dns_name_dynamic(&prevname))
> -- 
> 1.7.11.7
> 


-- 
Adam Tkac, Red Hat, Inc.




More information about the Freeipa-devel mailing list