duosecurity/duo_unix — pull request #51 by RodSalazar (2014-04-08 09:43:49+00:00)
Title: [libduo] Rewrite _BIO_wait with poll instead of select

This rewrites _BIO_wait inside of https.c so that it uses poll instead of select.

When running libduo on a machines with a ton of open file descriptors,
checking a token would cause the process to crash if the fd number libduo chose for https was > the max
select fd number the host kernel was compiled for.

From what I've seen the kernel is default complied with a max fd number limit of 1024 for select.

Switching this implementation to poll gets rid of this arbitrary limit and libduo no longer crashes when
checking a token.

We've pushed this patch onto some of our production services at Facebook and it seems to work fine.