Software /
code /
prosody
Comparison
net/server_event.lua @ 2599:cc6164d85024
net.server_event: Fixes for traceback with no LuaSec
author | Matthew Wild <mwild1@gmail.com> |
---|---|
date | Thu, 11 Feb 2010 21:32:49 +0000 |
parent | 2561:e7bec4072c61 |
child | 2638:115104acdd7b |
comparison
equal
deleted
inserted
replaced
2598:8a021b304765 | 2599:cc6164d85024 |
---|---|
41 local require = use "require" | 41 local require = use "require" |
42 local tostring = use "tostring" | 42 local tostring = use "tostring" |
43 local coroutine = use "coroutine" | 43 local coroutine = use "coroutine" |
44 local setmetatable = use "setmetatable" | 44 local setmetatable = use "setmetatable" |
45 | 45 |
46 local ssl = use "ssl" or require "ssl" | 46 local ssl = use "ssl" |
47 local socket = use "socket" or require "socket" | 47 local socket = use "socket" or require "socket" |
48 | 48 |
49 local log = require ("util.logger").init("socket") | 49 local log = require ("util.logger").init("socket") |
50 | 50 |
51 local function debug(...) | 51 local function debug(...) |
140 self.fatalerror = "connection timeout" | 140 self.fatalerror = "connection timeout" |
141 self:ontimeout() -- call timeout listener | 141 self:ontimeout() -- call timeout listener |
142 self:_close() | 142 self:_close() |
143 debug( "new connection failed. id:", self.id, "error:", self.fatalerror ) | 143 debug( "new connection failed. id:", self.id, "error:", self.fatalerror ) |
144 else | 144 else |
145 if plainssl then -- start ssl session | 145 if plainssl and ssl then -- start ssl session |
146 self:starttls() | 146 self:starttls() |
147 else -- normal connection | 147 else -- normal connection |
148 self:_start_session( self.listener.onconnect ) | 148 self:_start_session( self.listener.onconnect ) |
149 end | 149 end |
150 debug( "new connection established. id:", self.id ) | 150 debug( "new connection established. id:", self.id ) |
487 _ip = ip, _port = port, _server = server, _pattern = pattern, | 487 _ip = ip, _port = port, _server = server, _pattern = pattern, |
488 _serverport = (server and server:port() or nil), | 488 _serverport = (server and server:port() or nil), |
489 _sslctx = sslctx; -- parameters | 489 _sslctx = sslctx; -- parameters |
490 _usingssl = false; -- client is using ssl; | 490 _usingssl = false; -- client is using ssl; |
491 } | 491 } |
492 if not ssl then interface.starttls = false; end | |
492 interface.id = tostring(interface):match("%x+$"); | 493 interface.id = tostring(interface):match("%x+$"); |
493 interface.writecallback = function( event ) -- called on write events | 494 interface.writecallback = function( event ) -- called on write events |
494 --vdebug( "new client write event, id/ip/port:", interface, ip, port ) | 495 --vdebug( "new client write event, id/ip/port:", interface, ip, port ) |
495 if interface.nowriting or ( interface.fatalerror and ( "client to close" ~= interface.fatalerror ) ) then -- leave this event | 496 if interface.nowriting or ( interface.fatalerror and ( "client to close" ~= interface.fatalerror ) ) then -- leave this event |
496 --vdebug( "leaving this event because:", interface.nowriting or interface.fatalerror ) | 497 --vdebug( "leaving this event because:", interface.nowriting or interface.fatalerror ) |
668 end | 669 end |
669 local ip, port = client:getpeername( ) | 670 local ip, port = client:getpeername( ) |
670 interface._connections = interface._connections + 1 -- increase connection count | 671 interface._connections = interface._connections + 1 -- increase connection count |
671 local clientinterface = handleclient( client, ip, port, interface, pattern, listener, nil, sslctx ) | 672 local clientinterface = handleclient( client, ip, port, interface, pattern, listener, nil, sslctx ) |
672 --vdebug( "client id:", clientinterface, "startssl:", startssl ) | 673 --vdebug( "client id:", clientinterface, "startssl:", startssl ) |
673 if sslctx then | 674 if ssl and sslctx then |
674 clientinterface:starttls(sslctx) | 675 clientinterface:starttls(sslctx) |
675 else | 676 else |
676 clientinterface:_start_session( clientinterface.onconnect ) | 677 clientinterface:_start_session( clientinterface.onconnect ) |
677 end | 678 end |
678 debug( "accepted incoming client connection from:", ip, port ) | 679 debug( "accepted incoming client connection from:", ip, port ) |