Commit Graph

2076 Commits

Author SHA1 Message Date
DL6ER fe23292434 regexec() can only return zero or NOMATCH according to its man page. This allows us to remove the error handler as it could never be executed.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-16 12:31:05 +02:00
DL6ER e3fc3a78fb Clarify that the shown number is the error code.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-16 12:28:39 +02:00
DL6ER dd8af36613 Add debugging output for gravity table if requested via DEBUG_DATABASE option. We might want to separate this into DEBUG_GRAVITY_DATABASE in the future.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-16 12:25:42 +02:00
DL6ER eaf3d23744 Print failed regex line instead of its ID when reporting an error.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-16 12:16:37 +02:00
DL6ER a3f25f92f2 Do not check regex whitelist filters when querying the domain_audit table. Added documentation to in_whitelist() that explains the idea of the chosen implementation method.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-16 12:04:43 +02:00
DL6ER caf18e1370 Improve difference between between REGEX and TABLE constants by renaming the latter to always end in _TABLE. Also remove code duplication by using a lookup array for the table names instead of using multiple select labels.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-16 11:55:34 +02:00
DL6ER be1b573a2a Rename regex blacklist trigger to tr_regex_blacklist_update.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-16 11:36:00 +02:00
DL6ER d362a5eb27 Merge branch 'development' into new/whitelist-regex-support
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-14 22:50:53 +02:00
Mark Drobnak 7671fe9e2e Merge pull request #608 from pi-hole/new/use_audit_database_table
Use database table for domain auditlog
2019-07-10 22:57:04 -04:00
Mark Drobnak 35050979a9 Merge pull request #613 from pi-hole/tweak/improve_config_debug_flag_handling
Improve debug flag handling in config file
2019-07-09 22:59:04 -04:00
DL6ER 651bb79f9c Improve debug flag handling in config file. Debug options can now be selectively removed even when DEBUG_ALL is set to true.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-09 21:59:53 +02:00
DL6ER e14322b5db Declare free_regex() static as we do not need to make it globally available. Remove log_regex() as it can easily be inlined.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-09 18:03:56 +02:00
DL6ER cb293058a2 Declare free_regex() and log_regex() static as we do not need to make them globally available.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-09 18:00:35 +02:00
DL6ER 8294f7527d Rename init_regex() to compile_regex() as this describes better what this routine is doing.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-09 17:56:05 +02:00
DL6ER f996753dec Rename in_whitelist() to whitelisted() as this routine does not only compare against the whitelist table but also evaluates possible whitelist regex filters.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-09 17:48:27 +02:00
DL6ER 95be30dd83 Add test "Regex blacklist match + whitelist regex match is not blocked".
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-09 15:49:15 +02:00
DL6ER 43a2c9fc82 Adjust expected statistics as we query additional domains now.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-09 15:25:22 +02:00
DL6ER ea6cddb76e Added 8 new tests ensuring both whitelist exact and regex unblock regex as well as gravity domains as expected.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-09 12:27:24 +02:00
Mark Drobnak 5e85489966 Merge pull request #605 from pi-hole/new/modularize_headers
Modularize FTL modules/headers
2019-07-08 23:09:45 -04:00
DL6ER fb46dcf2a7 Be more specific about how many of which kind of regex filters we compiled.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-08 21:45:49 +02:00
DL6ER c0eedd59db Rename table regex to regex_blacklist.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-08 21:12:43 +02:00
DL6ER b3ad13f3e8 Simplify logic in detect_blocked_IP(), remove extra return statements that are not needed.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-08 19:31:05 +02:00
DL6ER b0838aaffa Temporarily disable regex debugging as it generated hundreds of thousands of messages during gravity import.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 22:59:51 +02:00
DL6ER d79891daaf New table is called regex_whitelist (at least for now).
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 22:52:23 +02:00
DL6ER fdff462fa4 Add support for regex filters for whitelisting.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 22:46:28 +02:00
DL6ER 8e0016e0bd Audit table has been renamed to domain_audit.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 21:24:47 +02:00
Mark Drobnak ac1018aa2a Merge pull request #610 from pi-hole/tweak/database_error_checking
Database error checking
2019-07-07 15:04:35 -04:00
DL6ER 867e466e08 Added more comments to dnsmasq-interface.c. Now almost every line is commented.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 13:19:44 +02:00
DL6ER e30df589ce Remove obsolete comment.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 10:10:43 +02:00
DL6ER a5ea558d5a Merge branch 'new/modularize_headers' into new/use_audit_database_table
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 10:09:54 +02:00
DL6ER 5c75fc3e67 Move even more definitions from FTL.h into the respective headers.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 10:09:18 +02:00
DL6ER 1ecc8ddb46 Merge branch 'new/modularize_headers' into new/use_audit_database_table
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 09:51:23 +02:00
DL6ER 812743c687 The boolean database should not be set to true at the end of delete_old_queries_in_DB(). The function can in any way not be called when database == false as this is an exit criterion for the database thread.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 09:48:41 +02:00
DL6ER 4a9503cbf7 Move checking of database parameter MAXDBDAYS into db_init() to ensure we set database to false.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-07 09:45:12 +02:00
DL6ER 71d9caad43 No need to use heap space for a constant expression.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-06 17:45:05 +02:00
DL6ER 444255b688 Do not assume the database is not available before we actually hit an error.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-06 17:19:41 +02:00
DL6ER 799e3b4230 Reduce three-fold logging of SQL errors to logging them only once. We prefer to handle the logging through the SQLite3 error callback as this ensures it cannot be missed.
Previously:
[2019-07-06 17:00:55.526 32339] SQLite3 message: statement aborts at 36: [CREATE UNIQUE INDEX network_hwaddr_idx ON network(hwaddr)] attempt to write a readonly database (8)
[2019-07-06 17:00:55.526 32339] dbquery(CREATE UNIQUE INDEX network_hwaddr_idx ON network(hwaddr)) - SQL error (8): attempt to write a readonly database
[2019-07-06 17:00:55.526 32339] check_database(8): Disabling database connection due to error
[2019-07-06 17:00:55.526 32339] unify_hwaddr(): "CREATE UNIQUE INDEX network_hwaddr_idx ON network(hwaddr)" failed!

Now:
[2019-07-06 17:00:55.526 32339] SQLite3 message: statement aborts at 36: [CREATE UNIQUE INDEX network_hwaddr_idx ON network(hwaddr)] attempt to write a readonly database (8)
[2019-07-06 17:00:55.526 32339] check_database(8): Disabling database connection due to error
[2019-07-06 17:00:55.526 32339] ERROR: unify_hwaddr() failed!

Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-06 17:10:20 +02:00
DL6ER 8baf8e6022 Improve error handling and logging in database/common.c
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-06 17:03:23 +02:00
DL6ER 0c13693c57 Add test for domain auditing.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-06 10:10:05 +02:00
DL6ER c944705d52 Table auditlist has been renamed to domain_auditlist.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-06 09:34:50 +02:00
DL6ER 30357a5e5d Audit table name should be 'auditlog'
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 17:11:04 +02:00
DL6ER 392589d5f8 Log when a domain was skipped in audit mode when the corresponding debug flag is set.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 16:49:54 +02:00
DL6ER ec595e5b32 Fix incorrect INSERT statement in gravity.db test data.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 16:44:51 +02:00
DL6ER 9f127e9838 Fix incorrect INSERT statement in gravity.db test data.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 16:44:35 +02:00
DL6ER ce8876a07d Fix failed auto-merge during cherry-pick.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 16:41:09 +02:00
DL6ER bddbc3ebd4 Union FTLFileNamesStruct and logFileNamesStruct and define them in config{.c/.h}
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 16:36:54 +02:00
DL6ER e13e39ad42 Union FTLFileNamesStruct and logFileNamesStruct and define them in config{.c/.h}
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 16:36:06 +02:00
DL6ER 09b8f91617 Check audit database table instead of file in the API.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 16:30:07 +02:00
DL6ER 67b5ec4f6b Add audit table to gravity.db schema
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 16:14:55 +02:00
DL6ER a4e50c3a53 The macvendor script has moved into subdirectory tools.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-07-05 12:16:15 +02:00