From 7105732151705b081800987a0f319849abb85b92 Mon Sep 17 00:00:00 2001
From: Kim Alvefur <zash@zash.se>
Date: Mon, 23 Feb 2015 12:04:43 +0100
Subject: net.server_{select,event}: Don't rely on LuaSocket and LuaSec being
 present in the globals table

---
 net/server_event.lua  | 12 ++++++------
 net/server_select.lua | 10 +++++-----
 2 files changed, 11 insertions(+), 11 deletions(-)

diff --git a/net/server_event.lua b/net/server_event.lua
index 756e9837..daac7746 100644
--- a/net/server_event.lua
+++ b/net/server_event.lua
@@ -44,7 +44,7 @@ local setmetatable = use "setmetatable"
 local t_insert = table.insert
 local t_concat = table.concat
 
-local ssl = use "ssl"
+local has_luasec, ssl = pcall ( require , "ssl" )
 local socket = use "socket" or require "socket"
 
 local log = require ("util.logger").init("socket")
@@ -136,7 +136,7 @@ do
 					self:_close()
 					debug( "new connection failed. id:", self.id, "error:", self.fatalerror )
 				else
-					if plainssl and ssl then  -- start ssl session
+					if plainssl and has_luasec then  -- start ssl session
 						self:starttls(self._sslctx, true)
 					else  -- normal connection
 						self:_start_session(true)
@@ -512,7 +512,7 @@ do
 			_sslctx = sslctx; -- parameters
 			_usingssl = false;  -- client is using ssl;
 		}
-		if not ssl then interface.starttls = false; end
+		if not has_luasec 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 )
@@ -695,7 +695,7 @@ do
 				interface._connections = interface._connections + 1  -- increase connection count
 				local clientinterface = handleclient( client, client_ip, client_port, interface, pattern, listener, sslctx )
 				--vdebug( "client id:", clientinterface, "startssl:", startssl )
-				if ssl and sslctx then
+				if has_luasec and sslctx then
 					clientinterface:starttls(sslctx, true)
 				else
 					clientinterface:_start_session( true )
@@ -725,7 +725,7 @@ local addserver = ( function( )
 		end
 		local sslctx
 		if sslcfg then
-			if not ssl then
+			if not has_luasec then
 				debug "fatal error: luasec not found"
 				return nil, "luasec not found"
 			end
@@ -766,7 +766,7 @@ do
 		end
 		local sslctx
 		if sslcfg then  -- handle ssl/new context
-			if not ssl then
+			if not has_luasec then
 				debug "need luasec, but not available"
 				return nil, "luasec not found"
 			end
diff --git a/net/server_select.lua b/net/server_select.lua
index 486e953b..322c0b57 100644
--- a/net/server_select.lua
+++ b/net/server_select.lua
@@ -48,13 +48,13 @@ local coroutine_yield = coroutine.yield
 
 --// extern libs //--
 
-local luasec = use "ssl"
+local has_luasec, luasec = pcall ( require , "ssl" )
 local luasocket = use "socket" or require "socket"
 local luasocket_gettime = luasocket.gettime
 
 --// extern lib methods //--
 
-local ssl_wrap = ( luasec and luasec.wrap )
+local ssl_wrap = ( has_luasec and luasec.wrap )
 local socket_bind = luasocket.bind
 local socket_sleep = luasocket.sleep
 local socket_select = luasocket.select
@@ -594,7 +594,7 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
 			end
 		)
 	end
-	if luasec then
+	if has_luasec then
 		handler.starttls = function( self, _sslctx)
 			if _sslctx then
 				handler:set_sslctx(_sslctx);
@@ -647,7 +647,7 @@ wrapconnection = function( server, listeners, socket, ip, serverport, clientport
 	_socketlist[ socket ] = handler
 	_readlistlen = addsocket(_readlist, socket, _readlistlen)
 
-	if sslctx and luasec then
+	if sslctx and has_luasec then
 		out_put "server.lua: auto-starting ssl negotiation..."
 		handler.autostart_ssl = true;
 		local ok, err = handler:starttls(sslctx);
@@ -731,7 +731,7 @@ addserver = function( addr, port, listeners, pattern, sslctx ) -- this function
 		err = "invalid port"
 	elseif _server[ addr..":"..port ] then
 		err = "listeners on '[" .. addr .. "]:" .. port .. "' already exist"
-	elseif sslctx and not luasec then
+	elseif sslctx and not has_luasec then
 		err = "luasec not found"
 	end
 	if err then
-- 
cgit v1.2.3