Commit Graph

57 Commits

Author SHA1 Message Date
DL6ER 7ecd358f96
Allow FTL to analyze stale cache replies. They are assigned to a new query type (17)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2022-11-09 20:09:48 +01:00
Christian König 04133fb362
Log inaccesible adlists to message table
Signed-off-by: Christian König <ckoenig@posteo.de>
2022-08-31 23:51:25 +02:00
DL6ER 3ecb14640c
Major rewrite of the socket processing routines. Before, we launched a new thread for each incoming connection (more than 40 threads were never allowed). This could potentially be used to DoS FTL by opening and closing telnet sessions in very quick succession. The new behavior is to, instead, launch five (compile-time setting) threads per type (5 for telnet IPv4, 5 for telnet IPv6, and 5 for Unix socket communication) and let them handle incoming connections in a FIFO manner. If too many requests are sent to FTL at once, they will simply have to wait until they are accepted.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2022-07-30 18:34:43 +02:00
DL6ER 7acd0f31e4
Add QUERY_SPECIAL_DOMAIN as new query status
Signed-off-by: DL6ER <dl6er@dl6er.de>
2022-04-24 09:10:38 +02:00
DL6ER 7f7dc2e9fa
Reload blocking mode independently of incoming queries
Signed-off-by: DL6ER <dl6er@dl6er.de>
2022-03-01 04:27:40 +01:00
DL6ER f350ce5729
Create and use link table for additional_info column
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-12-16 22:10:17 +01:00
DL6ER 4c2c59b214
Warn about resource shortages (15min load average exceeding number of cores, available disk space for database and log file, and available shared memory (RAM))
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-11-29 14:11:15 +01:00
DL6ER ff34a0c84b
Add DNSMASQ_WARN message type whenever dnsmasq logs a warning. Also, do not flush the message table on reload (but only on restart) so that config-related (i.e. one-time) warnings are not accidentally deleted.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-11-13 10:28:59 +01:00
DL6ER 695c7a9371
Add PIHOLE_PTR=HOSTNAMEFQDN option
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-10-04 11:10:35 +02:00
DL6ER 2de47b83e5
Add PIHOLE_PTR=HOSTNAME allowing users to specify that Pi-hole should respond with the device's hostname (instead of "pi.hole") for local interface IP address PTR requests.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-09-14 11:05:02 +02:00
DL6ER fbb03df1dc
Skip DNSSEC analysis if DNSSEC validation is disabled. Add new DEBUG_DNSSEC flag.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-09-02 12:28:22 +02:00
DL6ER 40141e308c
Add BLOB reply type
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-08-31 22:26:07 +02:00
DL6ER d57311e56f
Allow users to configure how FTL reacts to queries when the gravity database is not available
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-08-18 11:41:16 +02:00
DL6ER ce75d4acb1
Merge pull request #1155 from pi-hole/new/rate_limit_message
Log rate-limiting of clients to the message table
2021-08-08 08:20:53 +02:00
DL6ER d0ecd748df
Reload blockingmode on receipt of real-time signal 0 (a.k.a. pihole restartdns reload-lists)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-08-06 21:09:56 +02:00
DL6ER 62973a082f
Log rate-limiting of clients to the message table
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-08-06 19:45:35 +02:00
DL6ER 2207d83ad8
Implement special handling of the Mozilla canary domain to disable Firefox auto-DoH
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-07-04 13:51:20 +02:00
DL6ER 2b28b1552c
Deprecate DEBUG_DNSMASQ_LINES (now included in DEBUG_FLAGS)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-06-27 09:56:19 +02:00
DL6ER e0ffa346ab
Rename replyt ype 11 DNSKEY -> DNSSEC
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-06-22 08:51:49 +02:00
DL6ER c1d597a475
Also process automatically generated queries, e.g. for DNSSEC validation
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-06-20 11:07:03 +02:00
DL6ER b1deb8ce0e
Re-add IN_PROGRESS query status
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-04-07 01:59:30 +02:00
DL6ER de7c2919c9
Simplify status and reply type handling in FTL
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-04-06 20:01:47 +02:00
DL6ER 7127e2a348
Do not flag query as retried when we decide ourselves that it should be retried without any new query triggering this. Deprecate DEBUG_EXTBLOCKED (now covered by DEBUG_QUERIES and add DEBUG_STATUS)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-04-04 19:20:34 +02:00
DL6ER 799836c030
Merge branch 'development' into update/dnsmasq-v2.85
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-03-28 08:40:33 +00:00
DL6ER cf73475291
Ensure shared memory strings bucket is large enough when locking. Do not resize it when we are holding the lock. Also, optimize FTL-domains size
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-03-16 14:26:40 +01:00
DL6ER 981a9d1a6e
Join canceled threads on exit to ensure they exited properly before we exit from the main process. This includes waiting for them to clean up their own stack memory, etc.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-03-16 13:42:49 +01:00
DL6ER a2deb8676d
The preceeding commit changes the handling of retried queries. The logic is now changed so that distinct requests for repeated queries still get merged into a single ID/source port, but they now always trigger a re-try upstream. This effectively removes our IN-PROGRESS status so we remove the code handling this as well.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-02-23 08:18:55 +01:00
DL6ER 6bb025faec
dnsmasq-v2.83 forwards multiple queries to the same destination only once and stores the other queries as duplicates. They do receive the answer later on, however, this is usually not logged (when log-queries=extra is enabled, there will be a warning about the duplicate). This commit handles such duplicates and introduces a new reply type 14 = "already forwarded"
Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-01-24 10:42:03 +01:00
DL6ER 51bbaad6ea
Add new query types SVCB and HTTPS
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-31 10:33:28 +01:00
DL6ER 0eade4581e
Add DEBUG_EXTRA flag (#994)
* Add new DEBUG_EXTRA flag used for special (temporary) debugging

Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-23 15:12:24 +01:00
DL6ER 5cca201338
Don't iterate over all clients every minute trying to find new ones but only do this when the RESOLVE_NEW_HOSTNAMES event is set
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-23 14:38:06 +01:00
DL6ER 302abf80bf
Add new DEBUG_EXTRA flag used for special (temporary) debugging
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-18 07:03:30 +01:00
DL6ER 65dd6f93f6
Force refreshing of hostnames (according to REFRESH_HOSTNAMES config) on receipt of SIGRT4
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-17 09:46:43 +01:00
DL6ER ef02fa5ede
Add REFRESH_HOSTNAMES=UNKNWON to support only refreshing recently active clients with unknown hostnames
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-17 09:41:05 +01:00
DL6ER b833b73a4d
Add new REFRESH_HOSTNAMES option
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-01 14:18:44 +01:00
DL6ER 9751ae9efc
Do not try to resolve IPs for records without hostnames in the network_addresses table.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-12-01 14:09:50 +01:00
DL6ER 99a07ba57a
Rename super-clients ---> alias-clients
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-11-15 19:09:48 +01:00
DL6ER 6f6ae518d2
Merge branch 'development' into new/super-clients
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-11-15 08:47:44 +01:00
DL6ER 5d74f1e740
Add new DEBUG_HELPER option. It logs any helper activity (and possible errors) to pihole-FTL.log
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-10-27 10:42:49 +01:00
DL6ER baf7b2aa96
Merge pull request #901 from pi-hole/fix/query_retries
Add new query retried status
2020-10-22 22:37:38 +02:00
DL6ER 5341aefcae
Move call to resolveNetworkTableNames() from resolver into database thread
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-10-19 08:32:10 +02:00
DL6ER e640e45ceb
Also handle retry events when the retry happened in the small timeframe of when we already have the upstream response but DNSSEC validation is still ongoing
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-10-18 18:55:39 +02:00
DL6ER 1c30f8755c Add new status RETRIED (12) to be used for queries which were retried. If a query was retried five times before it suceeded, queries 1-4 will be marked as RETRIED and only query 5 will stay in status FORWARDED.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-10-08 16:54:10 +02:00
DL6ER 489b6f08f5
Merge branch 'development' into new/super-clients
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-27 22:04:59 +02:00
DL6ER 196fca38ff
Merge branch 'development' into new/super-clients
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-21 23:28:57 +02:00
DL6ER 2ee26e0811
Reset actions after the threads picked up the new real-time signals
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-21 23:06:25 +02:00
DL6ER 46ac93353e
Add explicit event queue to avoid possible race collisions when many signals arrive at the same time (or very very close to each other)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-03 20:45:59 +02:00
DL6ER aba20cf05c
Read superclients from new FTL database table
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-11 21:13:36 +02:00
DL6ER 54f92dd16a
Merge branch 'development' into new/mac_clients
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-11 06:53:58 +02:00
DL6ER d3467daf44
Merge branch 'development' into new/tre-regex
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-11 00:21:33 +02:00