Update to latest Csocket

This fixes the "busy loop waiting for an SSL handshake to finish" which the last
"Update to latest Csocket" was already supposed to fix. However, that fix had a
bug if poll() is used instead of select().

poll()'s timeout argument is in milliseconds while select also allows
microseconds. Since Csocket originally used select(), it expects the
microseconds-approach. This means it has to divide by 1000 to get the timeout
argument for poll().

However, the iQuickReset which was used to "fix" (rather: hide) the busy loop
was less than 1ms so this still resulted in a timeout of 0 (= busy loop) because
integer division truncates the result.

Signed-off-by: Uli Schlachter <psychon@znc.in>
This commit is contained in:
Uli Schlachter
2011-07-13 20:47:56 +02:00
parent 4fbca80705
commit 789f1ff7b5
+1 -1
View File
@@ -1991,7 +1991,7 @@ private:
std::map< int, short > miiReadyFds;
tv.tv_sec = m_iSelectWait / 1000000;
tv.tv_usec = m_iSelectWait % 1000000;
u_int iQuickReset = 100;
u_int iQuickReset = 1000;
if ( m_iSelectWait == 0 )
iQuickReset = 0;