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
- Serf is asynchronous -- except when it isn't Branko Čibej
-