Comparison

net/server_event.lua @ 5958:451b4649fad2

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 5776:bd0ff8ae98a8
child 5962:27eacbb6e71f
comparison
equal deleted inserted replaced
5957:3c5061d937dd 5958:451b4649fad2
742 interface:_start_connection(sslctx) 742 interface:_start_connection(sslctx)
743 return interface, client 743 return interface, client
744 --function handleclient( client, ip, port, server, pattern, listener, _, sslctx ) -- creates an client interface 744 --function handleclient( client, ip, port, server, pattern, listener, _, sslctx ) -- creates an client interface
745 end 745 end
746 746
747 function addclient( addr, serverport, listener, pattern, localaddr, localport, sslcfg, startssl ) 747 function addclient( addr, serverport, listener, pattern, sslctx )
748 if sslctx and not ssl then
749 debug "need luasec, but not available"
750 return nil, "luasec not found"
751 end
748 local client, err = socket.tcp() -- creating new socket 752 local client, err = socket.tcp() -- creating new socket
749 if not client then 753 if not client then
750 debug( "cannot create socket:", err ) 754 debug( "cannot create socket:", err )
751 return nil, err 755 return nil, err
752 end 756 end
753 client:settimeout( 0 ) -- set nonblocking 757 client:settimeout( 0 ) -- set nonblocking
754 if localaddr then
755 local res, err = client:bind( localaddr, localport, -1 )
756 if not res then
757 debug( "cannot bind client:", err )
758 return nil, err
759 end
760 end
761 local sslctx
762 if sslcfg then -- handle ssl/new context
763 if not ssl then
764 debug "need luasec, but not available"
765 return nil, "luasec not found"
766 end
767 sslctx, err = sslcfg
768 if err then
769 debug( "cannot create new ssl context:", err )
770 return nil, err
771 end
772 end
773 local res, err = client:connect( addr, serverport ) -- connect 758 local res, err = client:connect( addr, serverport ) -- connect
774 if res or ( err == "timeout" ) then 759 if res or ( err == "timeout" ) then
775 local ip, port = client:getsockname( ) 760 local ip, port = client:getsockname( )
776 local interface = wrapclient( client, ip, serverport, listener, pattern, sslctx, startssl ) 761 local interface = wrapclient( client, ip, serverport, listener, pattern, sslctx )
777 interface:_start_connection( startssl ) 762 interface:_start_connection( startssl )
778 debug( "new connection id:", interface.id ) 763 debug( "new connection id:", interface.id )
779 return interface, err 764 return interface, err
780 else 765 else
781 debug( "new connection failed:", err ) 766 debug( "new connection failed:", err )