summary of common C library calls to translate name to IP address(es) and back
We have getaddrinfo() calls and nsswitch modules for different name resolution backends. But they provide blocking only calls.
BSD sockets allows hundreds or thousands concurrent connections from a single thread application. But resolving 4 different names in parallel is difficult from a single thread application.
When we have common GUI application loops for GLib or Qt, why we lack API integrating with them well?
Most of GUI applications should avoid blocking calls in main thread today.
Is it necessary to block on name resolution? How name resolution works and why I think asynchronous calls would work as well.
Why using just raw DNS libraries might not be a solution for everyone
Use .local zone plugin nss-mdns as example why a simple to use API for name resolution is needed not only for unicast DNS queries.
How to handle LLMNR protocol and not break other things, which happens with current systemd-resolved