Software /
code /
prosody
Comparison
plugins/mod_storage_sql.lua @ 7752:56abe6a8e761
mod_storage_sql: Create a new table to hold normalized database parameters (fixes #636)
author | Kim Alvefur <zash@zash.se> |
---|---|
date | Tue, 29 Nov 2016 08:20:42 +0100 |
parent | 7751:168919a947ed |
child | 7753:c276d72d4e17 |
comparison
equal
deleted
inserted
replaced
7751:168919a947ed | 7752:56abe6a8e761 |
---|---|
431 end | 431 end |
432 end | 432 end |
433 return changes; | 433 return changes; |
434 end | 434 end |
435 | 435 |
436 local function normalize_database(driver, database) | |
437 if driver == "SQLite3" and database ~= ":memory:" then | |
438 return resolve_relative_path(prosody.paths.data or ".", database or "prosody.sqlite"); | |
439 end | |
440 return database; | |
441 end | |
442 | |
436 local function normalize_params(params) | 443 local function normalize_params(params) |
437 if params.driver == "SQLite3" then | 444 return { |
438 if params.database ~= ":memory:" then | 445 driver = assert(params.driver, "Configuration error: Both the SQL driver and the database need to be specified"); |
439 params.database = resolve_relative_path(prosody.paths.data or ".", params.database or "prosody.sqlite"); | 446 database = assert(normalize_database(params.driver, params.database), "Configuration error: Both the SQL driver and the database need to be specified"); |
440 end | 447 username = params.username; |
441 end | 448 password = params.password; |
442 assert(params.driver and params.database, "Configuration error: Both the SQL driver and the database need to be specified"); | 449 host = params.host; |
443 return params; | 450 params.port; |
451 }; | |
444 end | 452 end |
445 | 453 |
446 function module.load() | 454 function module.load() |
447 if prosody.prosodyctl then return; end | 455 if prosody.prosodyctl then return; end |
448 local engines = module:shared("/*/sql/connections"); | 456 local engines = module:shared("/*/sql/connections"); |