net/server.lua

changeset 962
872f5d85636e
parent 885
38ed2db19a55
child 989
ec239c044f31
equal deleted inserted replaced
961:b48ed2149d0a 962:872f5d85636e
242 local handler, client, err = wrapconnection( handler, listeners, client, ip, serverport, clientport, pattern, sslctx, startssl ) -- wrap new client socket 242 local handler, client, err = wrapconnection( handler, listeners, client, ip, serverport, clientport, pattern, sslctx, startssl ) -- wrap new client socket
243 if err then -- error while wrapping ssl socket 243 if err then -- error while wrapping ssl socket
244 return false 244 return false
245 end 245 end
246 connections = connections + 1 246 connections = connections + 1
247 out_put( "server.lua: accepted new client connection from ", ip, ":", clientport, " to ", serverport) 247 out_put( "server.lua: accepted new client connection from ", tostring(ip), ":", tostring(clientport), " to ", tostring(serverport))
248 return dispatch( handler ) 248 return dispatch( handler )
249 elseif err then -- maybe timeout or something else 249 elseif err then -- maybe timeout or something else
250 out_put( "server.lua: error with new client connection: ", err ) 250 out_put( "server.lua: error with new client connection: ", tostring(err) )
251 return false 251 return false
252 end 252 end
253 end 253 end
254 return handler 254 return handler
255 end 255 end
441 _readtraffic = _readtraffic + count 441 _readtraffic = _readtraffic + count
442 _readtimes[ handler ] = _currenttime 442 _readtimes[ handler ] = _currenttime
443 --out_put( "server.lua: read data '", buffer, "', error: ", err ) 443 --out_put( "server.lua: read data '", buffer, "', error: ", err )
444 return dispatch( handler, buffer, err ) 444 return dispatch( handler, buffer, err )
445 else -- connections was closed or fatal error 445 else -- connections was closed or fatal error
446 out_put( "server.lua: client ", ip, ":", tostring(clientport), " error: ", tostring(err) ) 446 out_put( "server.lua: client ", tostring(ip), ":", tostring(clientport), " error: ", tostring(err) )
447 fatalerror = true 447 fatalerror = true
448 disconnect( handler, err ) 448 disconnect( handler, err )
449 _ = handler and handler.close( ) 449 _ = handler and handler.close( )
450 return false 450 return false
451 end 451 end
472 bufferqueuelen = 1 472 bufferqueuelen = 1
473 bufferlen = bufferlen - byte 473 bufferlen = bufferlen - byte
474 _writetimes[ handler ] = _currenttime 474 _writetimes[ handler ] = _currenttime
475 return true 475 return true
476 else -- connection was closed during sending or fatal error 476 else -- connection was closed during sending or fatal error
477 out_put( "server.lua: client ", ip, ":", clientport, " error: ", err ) 477 out_put( "server.lua: client ", tostring(ip), ":", tostring(clientport), " error: ", tostring(err) )
478 fatalerror = true 478 fatalerror = true
479 disconnect( handler, err ) 479 disconnect( handler, err )
480 _ = handler and handler.close( ) 480 _ = handler and handler.close( )
481 return false 481 return false
482 end 482 end
498 handler.readbuffer = _readbuffer -- when handshake is done, replace the handshake function with regular functions 498 handler.readbuffer = _readbuffer -- when handshake is done, replace the handshake function with regular functions
499 handler.sendbuffer = _sendbuffer 499 handler.sendbuffer = _sendbuffer
500 -- return dispatch( handler ) 500 -- return dispatch( handler )
501 return true 501 return true
502 else 502 else
503 out_put( "server.lua: error during ssl handshake: ", err ) 503 out_put( "server.lua: error during ssl handshake: ", tostring(err) )
504 if err == "wantwrite" and not wrote then 504 if err == "wantwrite" and not wrote then
505 _sendlistlen = _sendlistlen + 1 505 _sendlistlen = _sendlistlen + 1
506 _sendlist[ _sendlistlen ] = client 506 _sendlist[ _sendlistlen ] = client
507 wrote = true 507 wrote = true
508 elseif err == "wantread" and not read then 508 elseif err == "wantread" and not read then
524 if startssl then -- ssl now? 524 if startssl then -- ssl now?
525 --out_put("server.lua: ", "starting ssl handshake") 525 --out_put("server.lua: ", "starting ssl handshake")
526 local err 526 local err
527 socket, err = ssl_wrap( socket, sslctx ) -- wrap socket 527 socket, err = ssl_wrap( socket, sslctx ) -- wrap socket
528 if err then 528 if err then
529 out_put( "server.lua: ssl error: ", err ) 529 out_put( "server.lua: ssl error: ", tostring(err) )
530 mem_free( ) 530 mem_free( )
531 return nil, nil, err -- fatal error 531 return nil, nil, err -- fatal error
532 end 532 end
533 socket:settimeout( 0 ) 533 socket:settimeout( 0 )
534 handler.readbuffer = handshake 534 handler.readbuffer = handshake
544 --out_put( "server.lua: attempting to start tls on " .. tostring( socket ) ) 544 --out_put( "server.lua: attempting to start tls on " .. tostring( socket ) )
545 local oldsocket, err = socket 545 local oldsocket, err = socket
546 socket, err = ssl_wrap( socket, sslctx ) -- wrap socket 546 socket, err = ssl_wrap( socket, sslctx ) -- wrap socket
547 --out_put( "server.lua: sslwrapped socket is " .. tostring( socket ) ) 547 --out_put( "server.lua: sslwrapped socket is " .. tostring( socket ) )
548 if err then 548 if err then
549 out_put( "server.lua: error while starting tls on client: ", err ) 549 out_put( "server.lua: error while starting tls on client: ", tostring(err) )
550 return nil, err -- fatal error 550 return nil, err -- fatal error
551 end 551 end
552 552
553 socket:settimeout( 0 ) 553 socket:settimeout( 0 )
554 554

mercurial