Comparison

net/server_select.lua @ 2302:2dc9bbf25447

net.server_select: Fix possibility of losing data sent from a socket just before it closes (thanks Sjoerd Simons)
author Matthew Wild <mwild1@gmail.com>
date Thu, 03 Dec 2009 02:28:34 +0000
parent 2250:3196dabe8a36
child 2304:26f59e5e5c03
comparison
equal deleted inserted replaced
2301:8a01b0898679 2302:2dc9bbf25447
465 end 465 end
466 return noread, nosend 466 return noread, nosend
467 end 467 end
468 local _readbuffer = function( ) -- this function reads data 468 local _readbuffer = function( ) -- this function reads data
469 local buffer, err, part = receive( socket, pattern ) -- receive buffer with "pattern" 469 local buffer, err, part = receive( socket, pattern ) -- receive buffer with "pattern"
470 if not err or ( err == "timeout" or err == "wantread" ) then -- received something 470 if not err or string_len(part) > 0 then -- received something
471 local buffer = buffer or part or "" 471 local buffer = buffer or part or ""
472 local len = string_len( buffer ) 472 local len = string_len( buffer )
473 if len > maxreadlen then 473 if len > maxreadlen then
474 disconnect( handler, "receive buffer exceeded" ) 474 disconnect( handler, "receive buffer exceeded" )
475 handler.close( true ) 475 handler.close( true )