Commit Graph
29 Commits
Author SHA1 Message Date
Romain DEP. 103e508f3b compat: revert to using sqlite's close() function for compat with older distros.
close_v2(), in use before this commit, was introduced as part of sqlite 3.7.14
 (2012-09-03), and is as such incompatible with debian wheezy (3.7.13) and
 centos6 (3.6.20).
 FTR, Wheezy will be supported until May 2018, and centos6, until November 2020.
2017-09-21 08:38:04 +02:00
louiz’ bfcf294517 Add the persistent_by_default configuration option
fix #3293
2017-09-09 17:09:17 +02:00
louiz’ 2c717d347d Add an index for the muc_log_line table
This immensely speeds up the archive select queries.

fix #3292
2017-08-26 17:42:59 +02:00
louiz’ 655151d88a Cache the encoding_in database value, to avoid doing a query for each message 2017-08-26 13:51:15 +02:00
louiz’ 2a62b8b082 Fix a sqlite3 leak when the database fails to open 2017-08-19 13:02:34 +02:00
louiz’ 9648fd286c Display the correct error message when we fail to open the sqlite3 db
fix #3290
2017-08-19 13:02:13 +02:00
louiz’ 84034ed3dc Use a db roster to manage biboumi’s presence with the contacts 2017-07-16 00:16:43 +02:00
louiz’ b71ca15a0f Move a few functions from select_query to query 2017-06-23 00:13:38 +02:00
louiz’ 8a7166eef9 Set the database pointer to nullptr after a close 2017-06-22 16:14:00 +02:00
louiz’ 4d55a120d8 Re-implement correctly the handling of failure to open the database
If we can’t open it at startup, we exit.
If we can’t open it on reload, we keep the previously-opened database.

This way, we’re assured to always have a valid and open database available.
2017-06-21 17:41:03 +02:00
louiz’ 4a963cc480 At startup, upgrade all database tables by adding missing columns 2017-06-16 09:53:49 +02:00
louiz’ 50cadf3dac Implement our own database ORM, and update the whole code to use it
Entirely replace LiteSQL

fix #3271
2017-06-14 00:19:15 +02:00
louiz’ 7f2127a7ea Add the archive ID to messages when they are sent to users
This makes us compatible with mam 6.0

fix #3249
2017-03-30 18:16:44 +02:00
louiz’ 1a09c965eb Remove two sneaky log_debug 2017-03-29 23:32:43 +02:00
louiz’ 379fe026fb Properly convert the data into a number of seconds by using duration_cast 2016-12-10 04:15:49 +01:00
louiz’ 363a0bf02c Look for uuid/uuid.h instead of just uuid.h
Avoids a conflict between /usr/include/uuid.h and
/usr/local/include/uuid/uuid.h on freebsd
2016-09-29 20:11:35 +02:00
louiz’ 3047bd41b2 MAM results can be filtered by start and end dates 2016-09-04 22:58:38 +02:00
louiz’ 7536a1b3f3 Respond to MAM requests on a channel JID
At the moment, result-set-management is not implemented, the whole history
(well, at most 1024 messages) is returned.
2016-08-28 22:42:50 +02:00
louiz’ 88499d0379 If the maxHistoryLength is negative, make it 0
Instead of doing a broken SQL request that returns weird lines
2016-08-23 01:28:12 +02:00
louiz’ d1626c929f When joining a channel, send the most recent history found in the database 2016-08-22 00:44:17 +02:00
louiz’ 593b326827 When saving the logs, the date must be in seconds, not nanoseconds 2016-08-22 00:39:11 +02:00
louiz’ 6776b827d2 Add a global configure ad-hoc command, with max history length 2016-08-22 00:38:44 +02:00
louiz’ 992fa93895 Add get_first_non_empty and use it into Database to simplify a little bit 2016-08-21 01:51:52 +02:00
louiz’ 8ec823be4f Save received and sent messages into the database 2016-08-12 16:39:19 +02:00
louiz’ 4c1b9abe7e Properly catch and handle database errors
Do not use a singleton for the database.

fix #3203
2016-07-12 00:31:57 +02:00
Florent Le Coz 421c960df5 Add a ChannelOptions table in the DB
And a way to retrieve its values, defaulting on the ServerOptions for unset
values.
2016-01-04 13:47:26 +01:00
Florent Le Coz 580b721ba5 Remove a write to std::cout from Database’s constructor 2015-10-29 03:35:25 +01:00
Florent Le Coz 74c73799ab Only compile database.cpp if configured with litesql 2015-10-24 15:17:53 +02:00
Florent Le Coz 88ae2599f6 Introduce an optional Database module
Uses litesql
2015-09-18 22:09:26 +02:00