util.sql: Catch errors from LuaDBI connect (Fixes #568)
authorKim Alvefur <zash@zash.se>
Mon, 21 Mar 2016 09:50:52 +0100
changeset 7309 98c4c3a2b536
parent 7308 c02e3d8f23fc
child 7311 397f45107795
child 7312 471189342890
util.sql: Catch errors from LuaDBI connect (Fixes #568)
util/sql.lua
--- a/util/sql.lua	Mon Mar 21 09:33:12 2016 +0100
+++ b/util/sql.lua	Mon Mar 21 09:50:52 2016 +0100
@@ -102,11 +102,12 @@
 	local params = self.params;
 	assert(params.driver, "no driver")
 	log("debug", "Connecting to [%s] %s...", params.driver, params.database);
-	local dbh, err = DBI.Connect(
+	local ok, dbh, err = pcall(DBI.Connect,
 		params.driver, params.database,
 		params.username, params.password,
 		params.host, params.port
 	);
+	if not ok then return ok, dbh; end
 	if not dbh then return nil, err; end
 	dbh:autocommit(false); -- don't commit automatically
 	self.conn = dbh;