Mercurial > prosody-hg
comparison net/server.lua @ 564:779ab5b99e13
Don't say we need TLS after we've already started the handshake
| author | Matthew Wild <mwild1@gmail.com> |
|---|---|
| date | Fri, 05 Dec 2008 19:40:46 +0000 |
| parents | 099d8a102deb |
| children | c83166927835 |
comparison
equal
deleted
inserted
replaced
| 563:099d8a102deb | 564:779ab5b99e13 |
|---|---|
| 468 eol = nil | 468 eol = nil |
| 469 writelen = removesocket( writelist, socket, writelen ) -- delete socket from writelist | 469 writelen = removesocket( writelist, socket, writelen ) -- delete socket from writelist |
| 470 if handler.need_tls then | 470 if handler.need_tls then |
| 471 out_put("server.lua: connection is ready for tls handshake"); | 471 out_put("server.lua: connection is ready for tls handshake"); |
| 472 handler.starttls(true); | 472 handler.starttls(true); |
| 473 if handler.need_tls then | |
| 474 out_put("server.lua: uh-oh... we still want tls, something must be wrong"); | |
| 475 end | |
| 476 end | 473 end |
| 477 return true | 474 return true |
| 478 elseif byte and ( err == "timeout" or err == "wantwrite" ) then -- want write | 475 elseif byte and ( err == "timeout" or err == "wantwrite" ) then -- want write |
| 479 buffer = string_sub( buffer, byte + 1, -1 ) -- new buffer | 476 buffer = string_sub( buffer, byte + 1, -1 ) -- new buffer |
| 480 writequeue[ 1 ] = buffer -- insert new buffer in queue | 477 writequeue[ 1 ] = buffer -- insert new buffer in queue |
| 534 handler.receive = function( pattern, prefix ) | 531 handler.receive = function( pattern, prefix ) |
| 535 return receive( socket, pattern, prefix ) | 532 return receive( socket, pattern, prefix ) |
| 536 end | 533 end |
| 537 | 534 |
| 538 handler.starttls = nil; | 535 handler.starttls = nil; |
| 536 handler.need_tls = nil | |
| 539 | 537 |
| 540 handler.handshake = coroutine_wrap( function( client ) | 538 handler.handshake = coroutine_wrap( function( client ) |
| 541 local err | 539 local err |
| 542 for i = 1, 10 do -- 10 handshake attemps | 540 for i = 1, 10 do -- 10 handshake attemps |
| 543 _, err = client:dohandshake( ) | 541 _, err = client:dohandshake( ) |
| 544 if not err then | 542 if not err then |
| 545 out_put( "server.lua: ssl handshake done" ) | 543 out_put( "server.lua: ssl handshake done" ) |
| 546 writelen = ( wrote and removesocket( writelist, socket, writelen ) ) or writelen | 544 writelen = ( wrote and removesocket( writelist, socket, writelen ) ) or writelen |
| 547 handler.receivedata = handler._receivedata -- when handshake is done, replace the handshake function with regular functions | 545 handler.receivedata = handler._receivedata -- when handshake is done, replace the handshake function with regular functions |
| 548 handler.dispatchdata = handler._dispatchdata | 546 handler.dispatchdata = handler._dispatchdata |
| 549 handler.need_tls = nil | |
| 550 return true; | 547 return true; |
| 551 else | 548 else |
| 552 out_put( "server.lua: error during ssl handshake: ", err ) | 549 out_put( "server.lua: error during ssl handshake: ", err ) |
| 553 if err == "wantwrite" then | 550 if err == "wantwrite" then |
| 554 if wrote == nil then | 551 if wrote == nil then |
