Software / code / prosody
Comparison
net/server_select.lua @ 4347:4b5290dd4e58
net.server_select: Small fix to SSL handshake logic, read/wrote were being checked despite it not being possible for them to be other than nil
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Sat, 20 Aug 2011 15:03:16 -0400 |
| parent | 4346:28b9384c14fd |
| child | 4348:5b240c6b5334 |
comparison
equal
deleted
inserted
replaced
| 4346:28b9384c14fd | 4347:4b5290dd4e58 |
|---|---|
| 510 | 510 |
| 511 -- Set the sslctx | 511 -- Set the sslctx |
| 512 local handshake; | 512 local handshake; |
| 513 function handler.set_sslctx(self, new_sslctx) | 513 function handler.set_sslctx(self, new_sslctx) |
| 514 sslctx = new_sslctx; | 514 sslctx = new_sslctx; |
| 515 local wrote | 515 local read, wrote |
| 516 local read | |
| 517 handshake = coroutine_wrap( function( client ) -- create handshake coroutine | 516 handshake = coroutine_wrap( function( client ) -- create handshake coroutine |
| 518 local err | 517 local err |
| 519 for i = 1, _maxsslhandshake do | 518 for i = 1, _maxsslhandshake do |
| 520 _sendlistlen = ( wrote and removesocket( _sendlist, client, _sendlistlen ) ) or _sendlistlen | 519 _sendlistlen = ( wrote and removesocket( _sendlist, client, _sendlistlen ) ) or _sendlistlen |
| 521 _readlistlen = ( read and removesocket( _readlist, client, _readlistlen ) ) or _readlistlen | 520 _readlistlen = ( read and removesocket( _readlist, client, _readlistlen ) ) or _readlistlen |
| 527 handler.sendbuffer = _sendbuffer | 526 handler.sendbuffer = _sendbuffer |
| 528 _ = status and status( handler, "ssl-handshake-complete" ) | 527 _ = status and status( handler, "ssl-handshake-complete" ) |
| 529 _readlistlen = addsocket(_readlist, client, _readlistlen) | 528 _readlistlen = addsocket(_readlist, client, _readlistlen) |
| 530 return true | 529 return true |
| 531 else | 530 else |
| 532 if err == "wantwrite" and not wrote then | 531 if err == "wantwrite" then |
| 533 _sendlistlen = addsocket(_sendlist, client, _sendlistlen) | 532 _sendlistlen = addsocket(_sendlist, client, _sendlistlen) |
| 534 wrote = true | 533 wrote = true |
| 535 elseif err == "wantread" and not read then | 534 elseif err == "wantread" then |
| 536 _readlistlen = addsocket(_readlist, client, _readlistlen) | 535 _readlistlen = addsocket(_readlist, client, _readlistlen) |
| 537 read = true | 536 read = true |
| 538 else | 537 else |
| 539 out_put( "server.lua: ssl handshake error: ", tostring(err) ) | 538 out_put( "server.lua: ssl handshake error: ", tostring(err) ) |
| 540 break; | 539 break; |