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.

-- Brane

Reply via email to