361 end |
361 end |
362 else |
362 else |
363 send( socket, table_concat( bufferqueue, "", 1, bufferqueuelen ), 1, bufferlen ) -- forced send |
363 send( socket, table_concat( bufferqueue, "", 1, bufferqueuelen ), 1, bufferlen ) -- forced send |
364 end |
364 end |
365 end |
365 end |
366 if not handler then return true; end |
366 if socket then |
367 _ = shutdown and shutdown( socket ) |
367 _ = shutdown and shutdown( socket ) |
368 socket:close( ) |
368 socket:close( ) |
369 _sendlistlen = removesocket( _sendlist, socket, _sendlistlen ) |
369 _sendlistlen = removesocket( _sendlist, socket, _sendlistlen ) |
370 _socketlist[ socket ] = nil |
370 _socketlist[ socket ] = nil |
|
371 socket = nil |
|
372 else |
|
373 out_put "server.lua: socket already closed" |
|
374 end |
371 if handler then |
375 if handler then |
372 _writetimes[ handler ] = nil |
376 _writetimes[ handler ] = nil |
373 _closelist[ handler ] = nil |
377 _closelist[ handler ] = nil |
374 handler = nil |
378 handler = nil |
375 end |
379 end |
376 socket = nil |
|
377 mem_free( ) |
380 mem_free( ) |
378 if server then |
381 if server then |
379 server.remove( ) |
382 server.remove( ) |
380 end |
383 end |
381 out_put "server.lua: closed client handler and removed socket from list" |
384 out_put "server.lua: closed client handler and removed socket from list" |