4 ms·
How do you propose that DNS resolution precede without opening a socket?
by Sprocklem 3y ago
How do you propose that DNS resolution precede without opening a socket?
- nomadluap 3y agoFor one thing, it could delegate to a local service. Granted, the communication to this service is probably still be over a socket interface, but at least as a purely-local connection you would hopefully have some better worst-case performance characteristics. This is basically what dnsmasq does when you use it as a local DNS cache.
- kccqzy 3y agoCompletely agree. Just use systemd-resolved which is the recommended way of doing DNS anyway.
- LoganDark 3y agoIt opens a socket to the same process that called getaddrinfo. That is, it's just communicating with itself, using a brand-new randomly-generated port for each call. This should be completely unnecessary.
- JackSlateur 3y agoSo, I have a program that does getaddrinfo(3) and nothing more, and this program setup a socket, listen(2) to it, create another socket and connect with it to the first one ? This looks insane and not what strace(1) tells me Could you give me more details ?
- LoganDark 3y agoI didn't know glibc didn't do the same thing. `getaddrinfo()` on Windows seems to do this because randomly a program will try to connect to `::1:59962` or something, and if I don't allow it in my firewall, it will start whining that some getaddrinfo thread failed to start. This has happened across all sorts of different programs. It's infuriating. I thought it was just a general libc thing. Isn't there a spec on this somewhere?