Comparison

net/server_event.lua @ 6816:36367fb1ecf9

net/server_event: add_client should have same arguments no-matter the server backend
author daurnimator <quae@daurnimator.com>
date Wed, 18 Dec 2013 17:52:28 -0500
parent 6782:ec172dbe9d14
child 6817:07f43c7aa059
comparison
equal deleted inserted replaced
6815:46546d57f639 6816:36367fb1ecf9
748 interface:_start_connection(sslctx) 748 interface:_start_connection(sslctx)
749 return interface, client 749 return interface, client
750 --function handleclient( client, ip, port, server, pattern, listener, _, sslctx ) -- creates an client interface 750 --function handleclient( client, ip, port, server, pattern, listener, _, sslctx ) -- creates an client interface
751 end 751 end
752 752
753 function addclient( addr, serverport, listener, pattern, localaddr, localport, sslcfg, startssl ) 753 function addclient( addr, serverport, listener, pattern, sslctx )
754 if sslctx and not ssl then
755 debug "need luasec, but not available"
756 return nil, "luasec not found"
757 end
754 local client, err = socket.tcp() -- creating new socket 758 local client, err = socket.tcp() -- creating new socket
755 if not client then 759 if not client then
756 debug( "cannot create socket:", err ) 760 debug( "cannot create socket:", err )
757 return nil, err 761 return nil, err
758 end 762 end
759 client:settimeout( 0 ) -- set nonblocking 763 client:settimeout( 0 ) -- set nonblocking
760 if localaddr then
761 local res, err = client:bind( localaddr, localport, -1 )
762 if not res then
763 debug( "cannot bind client:", err )
764 return nil, err
765 end
766 end
767 local sslctx
768 if sslcfg then -- handle ssl/new context
769 if not has_luasec then
770 debug "need luasec, but not available"
771 return nil, "luasec not found"
772 end
773 sslctx, err = sslcfg
774 if err then
775 debug( "cannot create new ssl context:", err )
776 return nil, err
777 end
778 end
779 local res, err = client:connect( addr, serverport ) -- connect 764 local res, err = client:connect( addr, serverport ) -- connect
780 if res or ( err == "timeout" ) then 765 if res or ( err == "timeout" ) then
781 local ip, port = client:getsockname( ) 766 local ip, port = client:getsockname( )
782 local interface = wrapclient( client, ip, serverport, listener, pattern, sslctx, startssl ) 767 local interface = wrapclient( client, ip, serverport, listener, pattern, sslctx )
783 interface:_start_connection( startssl ) 768 interface:_start_connection( startssl )
784 debug( "new connection id:", interface.id ) 769 debug( "new connection id:", interface.id )
785 return interface, err 770 return interface, err
786 else 771 else
787 debug( "new connection failed:", err ) 772 debug( "new connection failed:", err )