On 8/1/23 12:16, Petr Menšík wrote:
Hi Pavel,

With Avahi upstream maintainer hat on, I would say it still makes sense to have separate mdns*_minimal and mdns? modules. I would say mdns (non-minimal) should be rarely needed, because by default it should be used just for *.local names.

I would expect there can be network setups which aren't according standards and normal users are not able to change it, so it would be great to have a way how to setup an override in default configuration instead of expecting authselect to provide 3 more profile features for no relevant gain so far I can see it.

I've looked into nss-mdns code about what are differences between full and _minimal except for mdns.allow support and I found a difference in a function (_nss_mdns_gethostbyaddr_r()) is only used on FreeBSD, otherwise they're the same.

If there is not, I don't see an important reason why don't use full variants (I don't mean full in meaning IPv support, but regarding not-minimal) - the file won't exist in 99% (rhetorically speaking) of configurations, so it won't be read and https://github.com/lathiat/nss-mdns/issues/88 is irrelevant in those cases.

In the cases where it will exist, then there is something against standards in local network configuration, so IMO a delay is tolerable.

As I have wrote to referenced ticket, I think we want to prefer mdns_minimal in the future, but it first needs solving increased timeouts for not present names [1]. As soon as it is solved on avahi-daemon side, we can deprecate mdns{4,6}_minimal and mdns{4,6} variants. If only one family should be resolved, I think it would be better to configure it on side of avahi-daemon.
Since there is no solution for it now, I repeat my previous answer regarding this - no profile feature in authselect for this, do not set plain mdns/mdns_minimal as default, if someone wants it, he can enable it by enabling both --with-mdns4 and --with-mdns6.

I think mdns resolution needs smarter approach from avahi-daemon. It might be useful to not open and re-parse /etc/mdns.allow on every single ``getaddrinfo()`` call, but cache it in thread local storage and re-read its contents only on timestamp change. Maybe with checking the file stamp only once per second at most.

An alternative approach might be fetching list of wanted domains first time the process uses mdns plugin from avahi-daemon. And cache it in thread local storage of the process (with some ttl before refresh). That would avoid separate mdns?_minimal and mdns? plugins, because the smartness would be at avahi-daemon. That is required for any combination anyway. No slowing down unrelated queries after the first one. I guess that would make browser people happy, because they try hard to make everything quite fast. Wrote new issue [2] for this idea.
IMO this is nice to have fix, because of reasons above.

So a quick summary. I am afraid all those variants are needed until some volunteer improves the situation and makes them obsolete. I think we are not there yet.

I beg to differ here - there is no downside for majority of user by supporting full variants mdns4/mdns6 in authselect by default instead of _minimal (if the file won't be shipped by default, which I highly recommend to not ship to get '_minimal' behavior by default) and IMO it is tolerable to have a delay for setups which don't follow standards.

AFAIK this solution has the following pros:

- no new profile features for authselect,

- _minimal behavior by default,

- having a way how to override default without changing authselect settings in case there are discrepancies in network

Cons:

- delay if /etc/mdns.allow exists


Zdenek


Cheers,
Petr

1. https://github.com/lathiat/nss-mdns/issues/83
2. https://github.com/lathiat/nss-mdns/issues/88

On 31. 07. 23 14:47, Pavel Březina wrote:
Hi Fedora,
I have this ticket opened against authselect:
https://github.com/authselect/authselect/issues/334

I am not user of mdns myself, so I wonder if non-minimal version of mdns is something used and if it should be included in the authselect profiles (or even replace the minimal version).

mdns support is already complicated since there are mdns, mdns4 and mdns6 full and minimal versions of the module. Is it really required nowadays? In might opinion, it might be good to move the logic out of nsswitch into a configuration file.

Thank you for your feedback,
Pavel.
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org Do not reply to spam, report it: https://pagure.io/fedora-infrastructure/new_issue

--
Zdenek Dohnal
Senior Software Engineer
Red Hat, BRQ-TPBC
_______________________________________________
devel mailing list -- devel@lists.fedoraproject.org
To unsubscribe send an email to devel-le...@lists.fedoraproject.org
Fedora Code of Conduct: 
https://docs.fedoraproject.org/en-US/project/code-of-conduct/
List Guidelines: https://fedoraproject.org/wiki/Mailing_list_guidelines
List Archives: 
https://lists.fedoraproject.org/archives/list/devel@lists.fedoraproject.org
Do not reply to spam, report it: 
https://pagure.io/fedora-infrastructure/new_issue

Reply via email to