Commit Graph

55 Commits

Author SHA1 Message Date
DL6ER 9b5eb62263 Don't set regex status for domains read from database as we don't add them to the resolvers cache here (performance reasons)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-05-19 17:40:34 +02:00
DL6ER b6dd8ec47f Implement reading regex from file
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-05-19 17:21:56 +02:00
DL6ER db7dbda9da Use status == QUERY_WILDCARD to identify regex blocked queries
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-05-19 16:37:25 +02:00
DL6ER decef2e5fd Remove special support for old type of wildcard lists as dnsmasq config file
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-05-19 14:46:21 +02:00
DL6ER 24b98093e8 Merge branch 'development' into ftldns/remove_old_debug_options
Signed-off-by: DL6ER <dl6er@dl6er.de>

Conflicts:
	args.c
2018-05-12 13:38:36 +02:00
DL6ER 5d2ed0a5a6 Remove database debug callback
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-05-12 13:07:03 +02:00
DL6ER c606ad75ab Remove undocumented, old, and unused debug commands
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-05-10 19:24:02 +02:00
DL6ER f6e4ec4230 Add blocked domains counter for individual clients
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-05-10 14:22:58 +02:00
DL6ER c7453d5343 Call memory_check() only when needed (before creating a new domain/client record)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-04-29 11:05:20 +02:00
DL6ER 2e24b81557 Merge pull request #254 from pi-hole/FTLDNS-IGNORE_LOCALHOST
Add IGNORE_LOCALHOST config option
2018-04-14 11:44:51 +02:00
DL6ER efbe8025d0 Implement IGNORE_LOCALHOST config option
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-04-11 18:50:36 +02:00
DL6ER e2d0529993 Implement name resolving power back for FTLDNS. This re-implements lots of already extensively tested code that was present in pre-FTLDNS for over a year. This implementation is only slightly different by ensuring that name resolution is done in a specific non-blocking way.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-04-11 18:20:06 +02:00
DL6ER 9f940d82e0 Reduce memory footprint by removing unnecessry TTL value
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-04-06 23:52:07 +02:00
DL6ER 003371fcd3 Don't import AAAA queries from database if config flag AAAA_QUERY_ANALYSIS is set to No
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-04-05 19:41:02 +02:00
DL6ER a686cb2792 Ensure that we do not import queries logged in the future
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-03-08 22:08:01 +01:00
DL6ER e8c1df643d Merge branch 'development' into FTLDNS
Signed-off-by: DL6ER <dl6er@dl6er.de>

Conflicts:
	database.c
2018-03-02 22:48:13 +01:00
DL6ER 9315a252fd Merge pull request #224 from pi-hole/new/DB_integrated_counters
Create new table "counters" and store integrated counters therein
2018-03-02 20:52:22 +01:00
DL6ER ea3309e7b1 Initial commit for FTLDNS
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-02-22 20:21:06 +01:00
DL6ER 91e12dfd6c Don't close database to early when newly creating database file + some minor improvements
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-02-22 19:42:29 +01:00
DL6ER 459692ce4a Print query string when db_get_FTL_property() fails
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-02-21 18:43:40 +01:00
DL6ER d7a14e7e81 - Create new table "counters" and store integrated counters therein.
- Update FTL database to version 2

Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-02-08 19:04:56 +01:00
DL6ER 4e056dfd7e Always store client IP in the database (never the host name). We do this for consistency as we will always have IP addresses but not always host names so the current situation can actually be messy in the database. Furthermore, it should be noted that we also only ever store IP addresses (and never host names!) for the forward destinations.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-02-05 17:06:37 +01:00
DL6ER 449a2fc44d Minor optimizations and one bug fix
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-26 17:21:29 +01:00
DL6ER bfd3f1405d Add "MAXLOGAGE" config option
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-21 15:13:50 +01:00
DL6ER 72ad1970c1 Also try to import data from database after flushing event
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-21 11:42:01 +01:00
DL6ER 446bd677f7 Validate all imported database fields
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-21 11:24:35 +01:00
Mcat12 587ec590f8 forwardID can be null, so check for that (don't segfault!)
Signed-off-by: Mcat12 <newtoncat12@yahoo.com>
2018-01-20 20:28:20 -05:00
DL6ER 0f07c9e553 Remove unnecessarily duplicated validate_access() calls
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-20 14:07:32 +01:00
DL6ER b58731d9f3 Import queries from long-term database (if available) on startup of FTL. Fall back to log interpretation if database is not available
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-20 14:03:41 +01:00
DL6ER 6ae42424ee Add timers to FTL and measure time needed to save queries in database (only when running in debug mode)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-15 17:20:21 +01:00
DL6ER 0aad3533e2 Check return values of both dbquery() and sqlite3_finalize()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-31 01:13:10 +01:00
DL6ER 90cf01bbc5 Have to finalize all statements before sqlite3_close() can succeed. Also print some error message in the future if closeing the database failed.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-31 00:54:21 +01:00
DL6ER d0968c68aa Close database after initial check so we dont keep it open forever and hence lock it.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-30 22:34:20 +01:00
DL6ER d669a65067 Compare age of query against current time to decide if we should give a query more time to get completed
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-28 21:02:10 +01:00
DL6ER 8035d9f5a4 Save only complete queries into the database
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-22 12:31:08 +01:00
DL6ER 5951e5bde5 Ensure that data is also written to the DB when DB garbage collection is done (but before). This ensures that the queries will be written to the database even if the user specifies DBINTERVAL=n*60 (where n=1,2,3,...) which is a special that was not explicitly considered so far.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-13 18:25:23 +01:00
Mark Drobnak 95bdd62777 Merge pull request #167 from pi-hole/new/variablefilenames
Make long-term database location adjustable
2017-12-12 12:16:06 -05:00
DL6ER 4da545e057 Tweaks for Travis automated testing
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-07 22:20:34 +01:00
DL6ER 8124cf24bd SQLITE_OK, SQLITE_DONE, and SQLITE_ROW are success codes, i.e. they should not lead to disabling of the database
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-11-29 23:45:39 +01:00
DL6ER ac0c98d5c7 Disable FTL's database functionality on all errors (except DATABASE BUSY)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-11-29 19:24:18 +01:00
DL6ER c93482b85f Avoid passing unused parameter to logg()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-08-02 17:47:29 +02:00
DL6ER 38dbe66a37 Limit maximum number of loged errors
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-08-02 17:34:21 +02:00
DL6ER 152e2c922e Improve error messages and check for more return codes in various database subroutines
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-07-18 12:09:49 +02:00
DL6ER 0fee00ad70 Define ret bool 2017-07-13 16:59:17 +02:00
DL6ER d0da785ac8 In case a DB action failed, we now log the failed request string. Also add some improvements with respect to error checking (don't silently ignore when begin of a transaction failed, related to #112)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-07-13 16:56:08 +02:00
DL6ER 66ecea9c59 Replace printf by logg since we want this messages to go to the log 2017-06-26 10:42:23 +02:00
DL6ER 9035b76cdb Revert "Fix SQLite3 function that is crashing" 2017-06-24 15:44:44 +02:00
DL6ER 01dc64cea4 Refactor DB thread to run exclusively either saving queries into the DB *or* deleting old queries (i.e. every hour at minute 59 no queries will be saved to the DB, but instead, two minutes of data will be saved at the full hour) 2017-06-22 23:14:13 +02:00
DL6ER 972bce1c49 Remove code around sqlite3_changes(). Fixes #94 2017-06-21 19:57:43 +02:00
DL6ER 685f4f4218 Specify fixed age of queries until they get deleted and remove VACUUM instructions. 2017-06-19 19:20:30 +02:00