Comparison

net/server_event.lua @ 2997:6ccaefea80ec

Merge with tip.
author Tobias Markmann <tm@ayena.de>
date Fri, 12 Mar 2010 18:41:05 +0100
parent 2731:373a7c960409
child 2939:dc73cbc69bd5
comparison
equal deleted inserted replaced
2996:b0515ed4d9d7 2997:6ccaefea80ec
541 interface.writebufferlen = interface.writebufferlen - byte 541 interface.writebufferlen = interface.writebufferlen - byte
542 if "wantread" == err then -- happens only with luasec 542 if "wantread" == err then -- happens only with luasec
543 local callback = function( ) 543 local callback = function( )
544 interface:_close() 544 interface:_close()
545 interface.eventwritetimeout = nil 545 interface.eventwritetimeout = nil
546 return evreturn, evtimeout 546 return -1;
547 end 547 end
548 interface.eventwritetimeout = addevent( base, nil, EV_TIMEOUT, callback, cfg.WRITE_TIMEOUT ) -- reg a new timeout event 548 interface.eventwritetimeout = addevent( base, nil, EV_TIMEOUT, callback, cfg.WRITE_TIMEOUT ) -- reg a new timeout event
549 debug( "wantread during write attemp, reg it in readcallback but dont know what really happens next..." ) 549 debug( "wantread during write attemp, reg it in readcallback but dont know what really happens next..." )
550 -- hopefully this works with luasec; its simply not possible to use 2 different write events on a socket in luaevent 550 -- hopefully this works with luasec; its simply not possible to use 2 different write events on a socket in luaevent
551 return -1 551 return -1
669 if interface._connections >= cfg.MAX_CONNECTIONS then 669 if interface._connections >= cfg.MAX_CONNECTIONS then
670 client:close( ) -- refuse connection 670 client:close( ) -- refuse connection
671 debug( "maximal connections reached, refuse client connection; accept delay:", delay ) 671 debug( "maximal connections reached, refuse client connection; accept delay:", delay )
672 return EV_TIMEOUT, delay -- delay for next accept attemp 672 return EV_TIMEOUT, delay -- delay for next accept attemp
673 end 673 end
674 local ip, port = client:getpeername( ) 674 local client_ip, client_port = client:getpeername( )
675 interface._connections = interface._connections + 1 -- increase connection count 675 interface._connections = interface._connections + 1 -- increase connection count
676 local clientinterface = handleclient( client, ip, port, interface, pattern, listener, nil, sslctx ) 676 local clientinterface = handleclient( client, client_ip, client_port, interface, pattern, listener, nil, sslctx )
677 --vdebug( "client id:", clientinterface, "startssl:", startssl ) 677 --vdebug( "client id:", clientinterface, "startssl:", startssl )
678 if ssl and sslctx then 678 if ssl and sslctx then
679 clientinterface:starttls(sslctx) 679 clientinterface:starttls(sslctx)
680 else 680 else
681 clientinterface:_start_session( clientinterface.onconnect ) 681 clientinterface:_start_session( clientinterface.onconnect )
682 end 682 end
683 debug( "accepted incoming client connection from:", ip, port ) 683 debug( "accepted incoming client connection from:", client_ip or "<unknown IP>", client_port or "<unknown port>", "to", port or "<unknown port>");
684 684
685 client, err = server:accept() -- try to accept again 685 client, err = server:accept() -- try to accept again
686 end 686 end
687 return EV_READ 687 return EV_READ
688 end 688 end
760 if res or ( err == "timeout" ) then 760 if res or ( err == "timeout" ) then
761 local ip, port = client:getsockname( ) 761 local ip, port = client:getsockname( )
762 local server = function( ) 762 local server = function( )
763 return nil, "this is a dummy server interface" 763 return nil, "this is a dummy server interface"
764 end 764 end
765 local interface = wrapclient( client, ip, serverport, listeners, pattern, sslctx, startssl ) 765 local interface = wrapclient( client, ip, serverport, listener, pattern, sslctx, startssl )
766 interface:_start_connection( startssl ) 766 interface:_start_connection( startssl )
767 debug( "new connection id:", interface.id ) 767 debug( "new connection id:", interface.id )
768 return interface, err 768 return interface, err
769 else 769 else
770 debug( "new connection failed:", err ) 770 debug( "new connection failed:", err )