NNTPS pointers

Russ Allbery eagle at eyrie.org
Tue Oct 19 21:57:24 UTC 2021


Julien ÉLIE <julien at trigofacile.com> writes:

> It is tricky to implement in innd, with its channels...
> Same thing for COMPRESS, which would be useful to have in transit mode.

I've probably said this at some point before, but the core innd I/O loop
is basically a partial (but very battle-tested) implementation of
libevent built on the lowest-common-denominator system calls and therefore
slower and less efficient.

It's yet another huge project, but replacing the innd core I/O loop with
actual libevent would not only give us TLS for essentially free and
probably substantial performance improvements given that libevent would
use epoll/kqueue (and presumably io_ring at some point, although it
doesn't look like they've implemented that yet), it would also give us DNS
resolution in the event loop, which would eliminate the long-standing
"periodically reload incoming.conf because INN doesn't honor DNS TTLs"
problem.

I've used libevent for another project and it's really nice to work with.
It uses a similar callback model to how INN already works.

-- 
Russ Allbery (eagle at eyrie.org)             <https://www.eyrie.org/~eagle/>

    Please send questions to the list rather than mailing me directly.
     <https://www.eyrie.org/~eagle/faqs/questions.html> explains why.


More information about the inn-workers mailing list