--- a/mod_mam_sql/mod_mam_sql.lua Mon Sep 02 19:55:51 2013 +0200
+++ b/mod_mam_sql/mod_mam_sql.lua Mon Sep 02 20:10:10 2013 +0200
@@ -49,17 +49,20 @@
};
end
+local connect
+
local function test_connection()
if not connection then return nil; end
if connection:ping() then
return true;
else
module:log("debug", "Database connection closed");
+ module:log("debug", "Attempting to reconnect");
connection = nil;
- connections[dburi] = nil;
+ return connect();
end
end
-local function connect()
+function connect()
if not test_connection() then
prosody.unlock_globals();
local dbh, err = DBI.Connect(
@@ -117,6 +120,9 @@
if not connection then
return nil, 'connection failed';
end
+ if not test_connection() then
+ return nil, 'connection failed';
+ end
-- do prepared statement stuff
local stmt, err = connection:prepare(sql);
if not stmt and not test_connection() then