[Freeipa-devel] [PATCH 0042] Flush zones and RRs cache when handling persistent search reconnection
Petr Spacek
pspacek at redhat.com
Thu Aug 16 12:57:44 UTC 2012
On 08/16/2012 02:51 PM, Adam Tkac wrote:
> On Wed, Aug 15, 2012 at 03:55:01PM +0200, Petr Spacek wrote:
>> On 08/15/2012 03:11 PM, Adam Tkac wrote:
>>> On Fri, Jul 27, 2012 at 12:16:07PM +0200, Petr Spacek wrote:
>>>> Hello,
>>>>
>>>> this patch implements "Flush zones and RRs cache when handling
>>>> persistent search reconnection" behaviour as requested
>>>> in ticket https://fedorahosted.org/bind-dyndb-ldap/ticket/44 .
>>>>
>>>> Petr^2 Spacek
>>>
>>>> +isc_result_t
>>>> +flush_ldap_cache(ldap_cache_t *cache)
>>>> +{
>>>> + isc_result_t result;
>>>> +
>>>> + REQUIRE(cache != NULL);
>>>> +
>>>> + LOCK(&cache->mutex);
>>>> + if (!ldap_cache_enabled(cache)) {
>>>> + result = ISC_R_SUCCESS;
>>>> + } else {
>>>> + dns_rbt_destroy(&cache->rbt);
>>>> + CHECK(dns_rbt_create(cache->mctx, cache_node_deleter, NULL,
>>>> + &cache->rbt));
>>>
>>> In my opinion usage of dns_rbt_deletename(cache->rbt, dns_rootname, ISC_TRUE) is
>>> better, isn't it?
>>
>> I looked into implementation of both functions. dns_rbt_deletenode()
>> does horribly complicated magic for simple task as "delete whole
>> tree" is.
>>
>> For this reason I called dns_rbt_destroy() - it is much simpler and
>> should be faster (it doesn't try to maintain RBT invariants during
>> whole process).
>
> Sounds fine, ack for the patch as is.
>
> A
Pushed to master:
https://fedorahosted.org/bind-dyndb-ldap/changeset/468329216825f1694e0163f12c9f6d7c50dcc075
It closes the ticket:
https://fedorahosted.org/bind-dyndb-ldap/ticket/44
Further improvement will be handled as ticket:
https://fedorahosted.org/bind-dyndb-ldap/ticket/86
Petr^2 Spacek
>
>>>
>>> Otherwise OK.
>>>
>>>> + }
>>>> +
>>>> +cleanup:
>>>> + if (result != ISC_R_SUCCESS)
>>>> + log_error_r("cache flush failed");
>>>> + UNLOCK(&cache->mutex);
>>>> + return result;
>>>> +}
>>>
>>> Regards, Adam
>>>
>>
>
More information about the Freeipa-devel
mailing list