diff --git a/lib/db/mysql.js b/lib/db/mysql.js index 3657ff36e8f97bb9032d3516324f313b69523565..78749dac678532a13d1f2976ea278a888c41be41 100644 --- a/lib/db/mysql.js +++ b/lib/db/mysql.js @@ -118,9 +118,6 @@ exports.open = function(cfg, cb) { if (options[param] === undefined) delete options[param]; }); - // create the client - client = mysql.createClient(options); - // let's figure out the database name var database = cfg.database; if (!database) database = "browserid"; @@ -129,15 +126,28 @@ exports.open = function(cfg, cb) { // that we should drop the database on close, do it if (database !== 'browserid' && cfg.drop_on_close) drop_on_close = database; + // create the client + function doConnect() { + logger.debug("connecting to database"); + options.database = database; + client = mysql.createClient(options); + client.ping(function(err) { + logger.debug("connection to database " + (err ? ("fails: " + err) : "established")); + cb(err); + }); + } + // now create the databse if (cfg.create_schema) { - client.query("CREATE DATABASE IF NOT EXISTS " + database, function(err) { + logger.debug("creating database and tables if required"); + var createClient = mysql.createClient(options); + createClient.query("CREATE DATABASE IF NOT EXISTS " + database, function(err) { if (err) { logUnexpectedError(err); cb(err); return; } - client.useDatabase(database, function(err) { + createClient.useDatabase(database, function(err) { if (err) { logUnexpectedError(err); cb(err); @@ -147,7 +157,7 @@ exports.open = function(cfg, cb) { // now create tables function createNextTable(i) { if (i < schemas.length) { - client.query(schemas[i], function(err) { + createClient.query(schemas[i], function(err) { if (err) { logUnexpectedError(err); cb(err); @@ -156,13 +166,22 @@ exports.open = function(cfg, cb) { } }); } else { - cb(); + createClient.end(function(err) { + if (err) { + logUnexpectedError(err); + cb(err); + } else { + doConnect(); + } + }); } } createNextTable(0); }); }); - }; + } else { + doConnect(); + } }; exports.close = function(cb) { diff --git a/resources/static/dialog/css/m.css b/resources/static/dialog/css/m.css index 416ad1d2536465d9a71a7455c558475629977eb4..3c5ad50a1940818c89f61b4f5302d756563f8ae4 100644 --- a/resources/static/dialog/css/m.css +++ b/resources/static/dialog/css/m.css @@ -107,6 +107,12 @@ font-size: 14px; } + label[for=remember] { + display: block; + font-size: 15px; + margin: 13px; + } + #content, .form_section, .pickemail .inputs, .vertical { height: auto; overflow: visible; diff --git a/tests/lib/start-stop.js b/tests/lib/start-stop.js index 6bb240e36090c76702f36c228982dd50b5383706..632b29d6256ec0190f55a975ac759a87d63956ec 100644 --- a/tests/lib/start-stop.js +++ b/tests/lib/start-stop.js @@ -71,7 +71,7 @@ function setupProc(proc) { if (process.env['LOG_TO_CONSOLE']) console.log(x.toString()); var tokenRegex = new RegExp('token=([A-Za-z0-9]+)$', 'm'); - if (!sentReady && /^browserid.*127\.0\.0\.1:10002/.test(x)) { + if (!sentReady && /^browserid.*127\.0\.0\.1:10002/m.test(x)) { exports.browserid.emit('ready'); sentReady = true; } else if (m = tokenRegex.exec(x)) {