Merge with trunk.
authorWaqas Hussain <waqas20@gmail.com>
Thu, 11 Feb 2010 21:50:57 +0000 (02:50 +0500)
committerWaqas Hussain <waqas20@gmail.com>
Thu, 11 Feb 2010 21:50:57 +0000 (02:50 +0500)
net/server_event.lua
net/server_select.lua

index 3afc732ba1705aa19a9dd295187fa262f9ee3731..e79a57d0693a4e90b8d8a7eaf7619a12308daf5d 100644 (file)
@@ -43,7 +43,7 @@ local tostring = use "tostring"
 local coroutine = use "coroutine"
 local setmetatable = use "setmetatable"
 
-local ssl = use "ssl" or require "ssl"
+local ssl = use "ssl"
 local socket = use "socket" or require "socket"
 
 local log = require ("util.logger").init("socket")
@@ -142,7 +142,7 @@ do
                                        self:_close()
                                        debug( "new connection failed. id:", self.id, "error:", self.fatalerror )
                                else
-                                       if plainssl then  -- start ssl session
+                                       if plainssl and ssl then  -- start ssl session
                                                self:starttls()
                                        else  -- normal connection
                                                self:_start_session( self.listener.onconnect )
@@ -489,6 +489,7 @@ do
                        _sslctx = sslctx; -- parameters
                        _usingssl = false;  -- client is using ssl;
                }
+               if not ssl then interface.starttls = false; end
                interface.id = tostring(interface):match("%x+$");
                interface.writecallback = function( event )  -- called on write events
                        --vdebug( "new client write event, id/ip/port:", interface, ip, port )
@@ -670,7 +671,7 @@ do
                                interface._connections = interface._connections + 1  -- increase connection count
                                local clientinterface = handleclient( client, ip, port, interface, pattern, listener, nil, sslctx )
                                --vdebug( "client id:", clientinterface, "startssl:", startssl )
-                               if sslctx then
+                               if ssl and sslctx then
                                        clientinterface:starttls(sslctx)
                                else
                                        clientinterface:_start_session( clientinterface.onconnect )
index db4475e2b1601c02f91708283948d3b329291888..685cd13e978503f6bdc310399b5acca8e13c771d 100644 (file)
@@ -55,8 +55,8 @@ local coroutine_yield = coroutine.yield
 
 --// extern libs //--
 
-local luasec = select( 2, pcall( require, "ssl" ) )
-local luasocket = require "socket"
+local luasec = use "ssl"
+local luasocket = use "socket" or require "socket"
 
 --// extern lib methods //--
 
@@ -472,7 +472,7 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
                        _sendlistlen = removesocket( _sendlist, socket, _sendlistlen ) -- delete socket from writelist
                        _ = needtls and handler:starttls(nil, true)
                        _writetimes[ handler ] = nil
-               _ = toclose and handler.close( )
+                       _ = toclose and handler.close( )
                        return true
                elseif byte and ( err == "timeout" or err == "wantwrite" ) then -- want write
                        buffer = string_sub( buffer, byte + 1, bufferlen ) -- new buffer
@@ -601,8 +601,10 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
                        handler.readbuffer = _readbuffer
                        handler.sendbuffer = _sendbuffer
                end
+       else
+               handler.readbuffer = _readbuffer
+               handler.sendbuffer = _sendbuffer
        end
-
        send = socket.send
        receive = socket.receive
        shutdown = ( ssl and id ) or socket.shutdown