Changeset

310:b3bcd1913c85

mod_auth_dovecot: Switch to using upvalue 'conn' instead of provider.c throughout (thanks Adrien Clerc)
author Matthew Wild <mwild1@gmail.com>
date Sat, 08 Jan 2011 16:54:33 +0000
parents 309:5ec9125575fc
children 311:f663ea45436f
files mod_auth_dovecot/mod_auth_dovecot.lua
diffstat 1 files changed, 12 insertions(+), 10 deletions(-) [+]
line wrap: on
line diff
--- a/mod_auth_dovecot/mod_auth_dovecot.lua	Thu Jan 06 23:41:45 2011 +0100
+++ b/mod_auth_dovecot/mod_auth_dovecot.lua	Sat Jan 08 16:54:33 2011 +0000
@@ -17,15 +17,17 @@
 local socket_path = module:get_option_string("dovecot_auth_socket", "/var/run/dovecot/auth-login");
 
 function new_default_provider(host)
-	local provider = { name = "dovecot", c = nil, request_id = 0 };
+	local provider = { name = "dovecot", request_id = 0 };
 	log("debug", "initializing dovecot authentication provider for host '%s'", host);
 	
+	local conn;
+	
 	-- Closes the socket
 	function provider.close(self)
-		if (provider.c ~= nil) then
-			provider.c:close();
+		if conn then
+			conn:close();
+			conn = nil;
 		end
-		provider.c = nil;
 	end
 	
 	-- The following connects to a new socket and send the handshake
@@ -33,11 +35,11 @@
 		-- Destroy old socket
 		provider:close();
 		
-		provider.c = socket.unix();
+		conn = socket.unix();
 		
 		-- Create a connection to dovecot socket
 		log("debug", "connecting to dovecot socket at '%s'", socket_path);
-		local r, e = provider.c:connect(socket_path);
+		local r, e = conn:connect(socket_path);
 		if (not r) then
 			log("warn", "error connecting to dovecot socket at '%s'. error was '%s'. check permissions", socket_path, e);
 			provider:close();
@@ -97,7 +99,7 @@
 	
 	-- Wrapper for send(). Handles errors
 	function provider.send(self, data)
-		local r, e = provider.c:send(data);
+		local r, e = conn:send(data);
 		if (not r) then
 			log("warn", "error sending '%s' to dovecot. error was '%s'", data, e);
 			provider:close();
@@ -108,7 +110,7 @@
 	
 	-- Wrapper for receive(). Handles errors
 	function provider.receive(self)
-		local r, e = provider.c:receive();
+		local r, e = conn:receive();
 		if (not r) then
 			log("warn", "error receiving data from dovecot. error was '%s'", socket, e);
 			provider:close();
@@ -118,8 +120,8 @@
 	end
 	
 	function provider.send_auth_request(self, username, password)
-		if (provider.c == nil) then
-			if (not provider:connect()) then
+		if not conn then
+			if not provider:connect() then
 				return nil, "Auth failed. Dovecot communications error";
 			end
 		end