On 04/05/2013 12:41 PM, Pavel Březina wrote:
> On 04/03/2013 11:48 AM, Pavel Březina wrote:
>> On 04/02/2013 03:55 PM, Pavel Březina wrote:
>>> On 03/27/2013 03:00 PM, Jakub Hrozek wrote:
>>>> On Wed, Mar 27, 2013 at 11:22:49AM +0100, Pavel Březina wrote:
>>>>> Later, we can place the plugin architecture inside a module that
>>>>> knows about SSSD and is placed above resolver. You said you want to
>>>>> decouple fail over to fail over -> cache -> resolver. This is
nice
>>>>> idea.
>>>>>
>>>>> The plugin architecture can be put inside the cache, because cache
>>>>> is responsible for resolving expired uris and _srv_ and it does not
>>>>> really say that is has to use resolver directly.
>>>>
>>>> OK, this would be the best approach. After more discussion on #sssd
>>>> with Pavel and Simo we agreed that Pavel will carry on with this
>>>> approach for the time being.
>>>>
>>>> The only two changes in these patches would be better namespacing of
>>>> the functions used and unifying the resolver initialization with what
>>>> I'm working on wrt dynamic DNS updates.
>>>>
>>>> In the next release, we will create the additional layer and move
>>>> the plugins there. I moved
https://fedorahosted.org/sssd/ticket/1083
>>>> which is tracking that effort to NEEDS_TRIAGE so we can put it into
>>>> an appropriate milestone tomorrow.
>>>
>>> Hi,
>>> I'm sending new patch set.
>>>
>>> I created async_resolv_utils.c and put there functions for domain
>>> detection and for resolving SRV with fallback discovery domains.
>>> This is
>>> similar to resolve_srv_send and resolve_get_domain_send from the first
>>> patchset.
>>>
>>> resolve_srv_send() was renamed to fo_discover_srv_send() and it wraps
>>> resolv_discover_srv_send() so that it returns fo_server_info instead of
>>> ares.
>>>
>>> The plugin was renamed to fo_resolve_srv_dns_send(). It is a little bit
>>> more complicated since it performs domain detection (originally in
>>> resolve_srv_send()) if the domain is not provided from fail over.
>>>
>>> Hostname is passed via plugin context. It is currently retrieved via
>>> gethostname() so the current behaviour does not change. Later, when the
>>> plugin initialization will be moved to provider code, the provider will
>>> decide what hostname will be used (ipa_hostname for example).
>>
>> Rebased on top of latest be_res patches.
>
> When working on IPA plugin I've done some changes to this code. Since it
> is still review pending, I have squashed the changes to this patch set.
>
> 1. all SRV plugin related things are in a separate header file named
> fail_over_srv.h. This way we don't have to #include the whole fail over
> when developing new plugin. The only thing which remained in fail_over.h
> is fo_set_srv_lookup_plugin(), because it should remain hidden for
> providers, see #2
>
> 2. be_fo_set_srv_lookup_plugin() was added, to keep the fail over opaque
> for providers.
>
> 3. the original sixth patch (set plugin for all providers) was meant to
> be reverted, once we agreed on further steps. Now it is completely
> rewritten to final solution on which we agreed with Jakub.
>
> I have the IPA plugin already written (not tested yet), so I believe
> this is the final version if there won't be any review comments.
//lists.fedorahosted.org/mailman/listinfo/sssd-devel
OK. One more time :-)
I have slightly enhanced debug messages.
I forgot to check if a server is already present in the list. The fifth
patch was split in two.