Commit Graph

169 Commits

Author SHA1 Message Date
DL6ER 08b00d2b05 Add additional_info column to queries table. We fill it with the domain that caused blocking the entire CNAME chain.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-07-13 21:18:44 +02:00
DL6ER 5ccc18fbc1 Close database on any erros to ensure nothing stays locked.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-06-04 14:03:11 +02:00
DL6ER 0b92f53dde Ensure host name errors do not accumulate.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-06-04 14:03:11 +02:00
DL6ER 6ae4bb999b Clarify warning that the check found AT LEAST one invalid character.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-06-04 14:03:10 +02:00
DL6ER 2fcb2bdf53 Only open FTL database for storing a message when there is not already an open connection.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-06-04 14:03:09 +02:00
DL6ER 3f739f82f7 Add warning for invalid hostnames to FTL message table.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-06-04 14:03:09 +02:00
Adam Warner 91c7ed2cfc Merge pull request #787 from pi-hole/fix/groups_memory
Store client group information in shared memory
2020-06-03 20:46:26 +01:00
Adam Warner 98a86b074c Merge pull request #792 from pi-hole/fix/broken_RESOLVE_settings
Fix broken RESOLVE_IPV{4,6} setting
2020-06-03 20:44:52 +01:00
DL6ER a0e0c4b31d Also check REVOLCE_IPV{4,6} setting when trying to derive a host name from the FTL database.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-27 07:11:53 +02:00
DL6ER 21f46bd45d Clarify comment
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-26 23:28:20 +02:00
DL6ER c2a163be89 Add license headers to CMake files
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-26 20:38:36 +02:00
DL6ER ed4e690245 Add boolean to be able to store if we decided which groups to be used (an empty string can actually mean no groups as a special case)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-26 18:51:43 +02:00
Frank Riley c38dca203d Fix build of sqlite3. Move sqlite3 defines to the top level so they are on all.
Signed-off-by: Frank Riley <fhriley@gmail.com>
2020-05-25 10:45:13 -07:00
Frank Riley 63edb26ffe Move sqlite3-ext to the database target
Signed-off-by: Frank Riley <fhriley@gmail.com>
2020-05-25 10:45:13 -07:00
Frank Riley 63d0e1408d Add cmake build
Signed-off-by: Frank Riley <fhriley@gmail.com>
2020-05-25 10:45:13 -07:00
DL6ER efee05115b Store client group information in shared memory.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-25 18:40:16 +02:00
DL6ER 6f686cdfe5 Store subnet warnings in the message table.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-11 23:55:40 +02:00
DL6ER 1b1e980745 Merge pull request #752 from pi-hole/new/warnings
Store warnings in database table
2020-05-11 23:54:44 +02:00
DL6ER ee34c18db4 Ensure to finalize statement before closing the database connection.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-11 20:22:30 +02:00
DL6ER 8133752224 Always chose most suitable (= maximum) subnet for clients. This allows to configure specific settings for a whole range of devices but still exclude others. Complain softly (no error) if multiple configured subnets match with the same number of relevant bits.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-11 20:03:28 +02:00
DL6ER 796f239a0b Merge branch 'development' into new/warnings 2020-05-11 19:58:57 +02:00
DL6ER e537a6b455 Merge branch 'development' into new/warnings
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-11 19:43:00 +02:00
DL6ER 0e01af2910 Ensure message table is also flushed on receipt of real-time signals.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-11 19:40:43 +02:00
DL6ER 63b65d06af Store message type as string instead of enum values.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-11 19:40:09 +02:00
DL6ER 66b592b863 Use BLOBs as datatype for the custom columns to keep this feature as generic as possible. We can always append more columns to the end of the table whenever needed.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-11 01:13:48 +02:00
DL6ER e53352d5b4 Merge branch 'master' into master-to-development-v5.0
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-10 21:41:39 +02:00
DL6ER b2bea818f0 Fix bit-order in subnet mask generation.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-08 11:26:25 +02:00
DL6ER 3e82970c27 Create "message" table and log regex errors in there.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-06 21:23:50 +02:00
DL6ER 4750f658ad Check for validity of prepared statements before trying to use their get property.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-05 21:12:35 +02:00
DL6ER 61fd4209bc Invoking free_sqlite3_stmt_vec() on a NULL pointer should be a harmless no-op.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-05-05 15:03:18 +02:00
DL6ER a7ad39d8bd Correct, indent and simplify wildcard-compatible auditlog SQL logic.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-07 11:37:21 +02:00
Kevin 'silibum' Böhme 951fe084ef Restored astrisk match for auditlog
Signed-off-by: Kevin 'silibum' Böhme <kboehme@silibum.de>
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-07 11:22:20 +02:00
DL6ER 536ef08ce5 Free allocated memory after ordinary termination of TCP workers (TCP connection closed)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-06 15:11:32 +02:00
DL6ER 3aa6edcf07 Implement process-private prepared gravity database client statements. This fixes an incompatibility across forks when serving TCP traffic using dedicated workers.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-06 12:17:04 +02:00
DL6ER 48dc5ea073 Memorize PID of this thread to avoid re-opening the gravity database connection multiple times for the same fork
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-06 10:17:12 +02:00
DL6ER f1f817ab31 Re-open gravity database (and re-prepare database statements) before accessing the database in case FTL forked.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-06 09:56:14 +02:00
DL6ER c8caf546ed Ensure ARP strings are NULL-terminated
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-02 15:18:37 +00:00
DL6ER 564b286954 Do not import unknown clients from the ARP cache into FTL's memory. It is not our job to care about them if they are not doing any DNS queries.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-02 15:17:00 +00:00
DL6ER 7fae126ac4 Only check/set client status when size of the array is not exceeded. Skip otherwise.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-02 15:17:00 +00:00
DL6ER fdb8664f4a Check arguments are of type SQLITE3_TEXT
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-02 15:17:00 +00:00
DL6ER 6d612678e6 Also return NO MATCH when invoking subnet_match() with non-TEXT arguments.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-02 15:16:58 +00:00
DL6ER ff24111a6d Ensure we don't loose memory after ARP cache parsing.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-02 15:16:00 +00:00
DL6ER 1636a81041 Explicitly log failures in creating the new sqlite3 function.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-02 15:15:55 +00:00
DL6ER 2ed01382a7 Some general tweaks
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-04-02 15:15:10 +00:00
DL6ER ceb6f049f8 Ensure blocking also works when the long-term database is not used. This was broken before as we returned too early (the SQLite3 engine was not yet fully initialized) when the long-term database was disabled.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-03-31 17:07:38 +00:00
DL6ER abe0c5bbab Merge branch 'release/v5.0' into tweak/sqlite_debugging
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-03-29 21:07:46 +00:00
DL6ER 3a5154bbb8 Merge branch 'release/v5.0' into tweak/sqlite_debugging 2020-03-28 15:13:05 +01:00
DL6ER c3147cc0e4 Merge branch 'release/v5.0' into new/all_clients_network_table
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-03-28 15:07:12 +01:00
DL6ER 7759a76985 Convert recently found (at most 1 hour old) mock-devices into "real" when we gather ARP/neigh information about them.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-03-25 14:56:31 +01:00
DL6ER e596c55b66 Simplify SQLite 3 database extension
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-03-25 11:30:37 +01:00