Because of the buffering the TLS layer does, polling is unreliable. If poll is
called while there is data waiting to be read in the TLS layer but not at the
network layer, the messaging processing engine will not proceed until something
else writes data to the socket, which may not occur. This change modifies the
logic around TLS sockets to only poll after a failed read on a non-blocking
socket. This way we know that there is no data waiting to be read from the
buffering layer.
(closes issue #19182)
Reported by: st
Patches:
ssl-poll-fix3.diff uploaded by mnicholson (license 96)
Tested by: mnicholson
git-svn-id: https://origsvn.digium.com/svn/asterisk/branches/1.8@320180 65c4cc65-6c06-0410-ace0-fbb531ad65f3