[SSSD] [PATCH] DNS site support 1st wave - generic SRV lookup plugin

Pavel Březina pbrezina at redhat.com
Fri Apr 5 10:41:44 UTC 2013


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.

-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-resolv-add-resolv_get_domain-request-to-resolv-utils.patch
Type: text/x-patch
Size: 7182 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20130405/0b4b53d6/attachment.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0002-resolv-add-resolv_discover_srv-request-to-resolv-uti.patch
Type: text/x-patch
Size: 7109 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20130405/0b4b53d6/attachment-0001.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0003-DNS-sites-support-SRV-lookup-plugin-interface.patch
Type: text/x-patch
Size: 8448 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20130405/0b4b53d6/attachment-0002.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0004-DNS-sites-support-SRV-DNS-lookup-plugin.patch
Type: text/x-patch
Size: 19116 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20130405/0b4b53d6/attachment-0003.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0005-DNS-sites-support-replace-SRV-lookup-code-with-a-plu.patch
Type: text/x-patch
Size: 16697 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20130405/0b4b53d6/attachment-0004.bin>
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0006-DNS-sites-support-use-SRV-DNS-lookup-plugin-in-all-p.patch
Type: text/x-patch
Size: 3685 bytes
Desc: not available
URL: <https://lists.fedorahosted.org/pipermail/sssd-devel/attachments/20130405/0b4b53d6/attachment-0005.bin>


More information about the sssd-devel mailing list