K 10
svn:author
V 6
iulius
K 8
svn:date
V 27
2008-04-10T19:59:21.153411Z
K 7
svn:log
V 936
It seems that the SSL_read cannot be mixed with select()
as in the current code.  SSL communicates in its own data
blocks and hand shaking.  The do_readline using SSL_read
could return, but still with a partial line in the SSL_read
buffer.  Then the server SSL routine would sit there waiting
for completion of that data block while nnrpd sat at the
select() routine waiting for more data from the server.

(Without this patch, clients like Thunderbird, SeaMonkey
or slrn sometimes hang when posting using a SSL connection.)

Here, we decide to just bypass the select() wait.  Unlike
innd with multiple threads, the select on nnrpd is just
waiting on a single file descriptor, so it is not really
essential with blocked read like SSL_read.  Using an alarm
signal around SSL_read for non active timeout, SSL works
without dead locks.  However, without the select() wait,
the IDLE timer stat won't be collected...

Patch from Kachun Lee.

END
