[erlang-patches] R11B SSL patch
Oscar Hellström
oscar@REDACTED
Fri Jul 25 20:16:36 CEST 2008
Hi,
I've noticed quite a few problems with the SSL driver exiting after
printing "esock: Got connect request while PASSIVE". This is probably
more easily triggered when the ssl:accept/2 is called with a timeout in
a loop (since I suspect that it then sends the NOACCEPT command to the
port quite often).
My suspicion is that if a connection attempt have been received, and
polled from the listener socket, when the is an ESOCK_NOACCEPT_CMD
waiting we'll end up receiving the connect event in
ESOCK_PASSIVE_LISTENING further down in the loop. I don't quite
understand why we need to exit whenever we poll a connection on a
listener socket in ESOCK_PASSIVE_LISTENING state, but I guess it's
because there shouldn't be an event there. To avoid this I've added a
function to the esock_poll.c which can clear events for the fd in
question. This should avoid the driver exiting with the "esock: Got
connect request while PASSIVE" message and thus taking down all the SSL
connections.
Please note that this has ONLY been tested with the poll interface and
not even complied with select.
There has also been two emails describing this problem:
http://www.erlang.org/pipermail/erlang-questions/2006-September/022755.html
http://www.erlang.org/pipermail/erlang-bugs/2008-June/000829.html
--
Oscar Hellström, oscar@REDACTED
Office: +44 20 7655 0337
Mobile: +44 798 45 44 773
Erlang Training and Consulting
http://www.erlang-consulting.com/
-------------- next part --------------
A non-text attachment was scrubbed...
Name: erlang-r11b-3.ssl.patch
Type: text/x-patch
Size: 1375 bytes
Desc: not available
URL: <http://erlang.org/pipermail/erlang-patches/attachments/20080725/62a49c22/attachment.bin>
More information about the erlang-patches
mailing list