On 12 Jul 2025, at 22:27, Branko Čibej <br...@apache.org> wrote: > So, years ago, around the time I was adding the OCSP verification bits to > Serf, I integrated Serf into a system that used libdispatch. Libdispatch does > not like blocking code, at all, so Serf was close to being na ideal fit. > > Except for DNS lookups, which are synchronous and blocking. This messed up > the implementation quite a bit, especially with OCSP verification thrown in > the mix. > > So here I am, 10 years later, throwing this proposal in the mix: Let's make > Serf truly asynchronous by getting rid of the blocking name resolver. By > "getting rid of", I mean adding support for an asynchronous replacement such > as, for example, c-ares. The real culprit is actually APR with its blocking > resolver calls, but it shouldn't be too hard to work around that > apr_sockaddr_info_get. > > Thoughts? I'd be interested in putting in the work to make this happen. I > would not be interested in implementing a DNS client in Serf.
Definite +1. I had good results integrating unbound[1] into redwax-tool[2], which has an async element that triggers a DNS lookup that in turn triggers an SSL client connection. All of this is APR based. I am keen to see APR(util) support platform independent async DNS, so that blocking DNS calls aren't the default everywhere. [1] https://github.com/NLnetLabs/unbound [2] https://redwax.eu/rt/ Regards, Graham --