Software /
code /
prosody
Comparison
net/server_event.lua @ 6791:e813e8cf6046
Merge 0.10->trunk
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Thu, 20 Aug 2015 13:05:22 +0200 |
parent | 6481:dbc72cd1332e |
parent | 6782:ec172dbe9d14 |
child | 6820:40d50c239564 |
comparison
equal
deleted
inserted
replaced
6776:4412a2307c89 | 6791:e813e8cf6046 |
---|---|
756 end | 756 end |
757 end | 757 end |
758 local create = socket[typ or "tcp"] | 758 local create = socket[typ or "tcp"] |
759 if type( create ) ~= "function" then | 759 if type( create ) ~= "function" then |
760 return nil, "invalid socket type" | 760 return nil, "invalid socket type" |
761 end | 761 end |
762 local client, err = create() -- creating new socket | 762 local client, err = create() -- creating new socket |
763 if not client then | 763 if not client then |
764 debug( "cannot create socket:", err ) | 764 debug( "cannot create socket:", err ) |
765 return nil, err | 765 return nil, err |
766 end | 766 end |
767 client:settimeout( 0 ) -- set nonblocking | 767 client:settimeout( 0 ) -- set nonblocking |
768 local res, err = client:connect( addr, serverport ) -- connect | 768 local res, err = client:connect( addr, serverport ) -- connect |
769 if res or ( err == "timeout" or err == "Operation already in progress" ) then | 769 if res or ( err == "timeout" or err == "Operation already in progress" ) then |
770 if client.getsockname then | 770 if client.getsockname then |
771 addr = client:getsockname( ) | 771 addr = client:getsockname( ) |
772 end | 772 end |
773 local interface = wrapclient( client, addr, serverport, listener, pattern, sslctx ) | 773 local interface = wrapclient( client, addr, serverport, listener, pattern, sslctx ) |
774 debug( "new connection id:", interface.id ) | 774 debug( "new connection id:", interface.id ) |
775 return interface, err | 775 return interface, err |
776 else | 776 else |
777 debug( "new connection failed:", err ) | 777 debug( "new connection failed:", err ) |