Software /
code /
prosody
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 ) |