Commit Graph

280 Commits

Author SHA1 Message Date
DL6ER d25f05d339 Respect settings RESOLVE_IPV4 and RESOLVE_IPv6 also when trying to resolve host names from the database (network table)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-11-30 19:27:08 +01:00
DL6ER 4bfe4a4fde Do not warn about query status 12 and 13 on import (retried queries)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-11-30 19:27:01 +01:00
DL6ER 471a9e4dee Merge pull request #936 from pi-hole/tweak/disabled_database
Tweaks to disabling the FTL database
2020-11-27 06:22:35 +01:00
DL6ER 26827af625 Merge pull request #926 from pi-hole/new/mesage_dnsmasq_config_errors
Log dnsmasq config errors to pihole-FTL.log
2020-11-26 22:21:40 +01:00
DL6ER 056a70c931 Clarify that disabling the database only disables storing queries in the database. We still use the database for storing messages (such as regex syntax warnings) and alias-clients.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-11-25 19:53:39 +01:00
DL6ER d490471798 Add attribute gnu_printf to the new function FTL_log_dnsmasq_fatal()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-11-17 23:03:26 +01:00
DL6ER 261d482d58 Store fatal dnsmasq message in message table so it can be used by the Pi-hole dashboard diagnosis system.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-11-17 22:38:32 +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 7b0ab09b74 Make FTL upstream destination port-aware
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-11-13 00:16:55 +01:00
DL6ER 23d5440d39 Mark database as being available when creating a new database to avoid FTL skipping adding the tables thinking the database connection isn't ready.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-10-22 21:52:36 +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 036031e0ec Open database for history-reading
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-28 23:26:36 +02:00
DL6ER b7fe809467 Reopening the FTL database may lead to rare race-collisions in SQLite3. We avoid them by keeping the database connection open all the time.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-27 23:35:44 +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 a3debeb358 Merge pull request #874 from pi-hole/tweak/always_update_database_hostnames
Always update database hostnames
2020-09-27 09:11:00 +02:00
DL6ER 328ede1c95 Merge pull request #871 from pi-hole/new/clean_network_addresses
Clean network addresses
2020-09-22 12:29:10 +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 d97ca3187d Handling of clients not in ARP has been moved into add_FTL_clients_to_network_table()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-21 23:06:25 +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 cadb13d35c Add real-time signal 4 to re-resolve all host names (clients + upstream servers)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-21 23:00:01 +02:00
DL6ER a677fd4218 Do not skip recently inactive clients in ARP/neighbor table processing as they may still need properties to be updated (like host names, etc.)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-21 22:57:38 +02:00
DL6ER e1285430ca Add more debug logging to getDatabaseHostname()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-21 22:57:38 +02:00
DL6ER 4883037816 Merge pull request #881 from pi-hole/tweak/event_queue
Add event queue for signal handling
2020-09-21 22:57:08 +02:00
DL6ER 1123a21390 Show debug messages only in debug mode
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-10 21:25:27 +02:00
DL6ER 3bb0fe98be Fix subdirectory include paths. This is only to be explicit, the relative search finds them otherwise as well
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-09-03 20:46:01 +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 9bdfee2e19 Remove duplicate function getDatabaseHostname()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-31 20:35:46 +02:00
DL6ER 693aa46319 Fix syntax error
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-31 19:50:47 +02:00
DL6ER 5f5ecb96a1 Use already existing (but by default disabled) cleaning. The interval is customizable and defaults to MAXDBDAYS.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-31 19:39:16 +02:00
DL6ER 2d90c17767 Merge branch 'development' into new/super-clients
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-31 19:05:59 +02:00
DL6ER a598022a9f Try to obtain host names from another address of the same device when there is none for the exact address (may happen, e.g., for IPv6 addresses)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-31 18:58:29 +02:00
DL6ER 95608cfd31 Merge pull request #762 from pi-hole/new/mac_clients
Allow defining clients by their MAC address
2020-08-25 05:00:59 +02:00
DL6ER 6d84dd90b2 Delete addresses from network_addresses table which have not be seen for 7 days
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-24 20:16:48 +02:00
DL6ER e3f9f98939 Parse the kernel's Internet protocol address management to get information about local interfaces.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-19 23:54:51 +02:00
DL6ER d323536099 Unify network table debug messages
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-18 23:56:43 +02:00
DL6ER 2d1ec8099f Do not re-open gravity database when not forking for TCP workers (debug mode) and simplify network table routines (remove code duplication and prevent possible dead-locks when trying to resolve host names)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-18 23:28:57 +02:00
DL6ER 1dde00299b Ensure mock-devices which are not assigned to any addresses any more (they have been converted to "real" devices), are removed at this point
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-18 23:00:40 +02:00
DL6ER 15e3d66dad Add more debugging output to network table processing
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-17 21:47:56 +02:00
DL6ER c81b5df4ef Do not try to locate a previously used mock device when EDNS(0) MAC data is available.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-17 20:05:08 +02:00
DL6ER 1a6e0837f7 Use EDNS(0) MAC address for the network table (if available)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-16 23:11:52 +02:00
DL6ER d55d5b14bb Explicitly case time_t to (long long) before printing to address the musl-decision to make time_t 64 bit on 32 bit machines
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-12 22:03:24 +02:00
DL6ER 70bc176770 Ensure we cannot end up in a self-locking state when opening the database.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-12 20:05:54 +02:00
DL6ER 5afc6bf986 Tests: Test for correct import and assignment of super-client
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-12 19:34:58 +02:00
DL6ER 9f16b901dc Move signal handling into a thread to avoid possible lock race-collisions
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-12 19:34:58 +02:00
DL6ER 69c1181085 Change concept of super-clients from MAC-based to index-based. We append a new column to the network table which can be used to assign super-clients to multiple devices. This can both cover automatic grouping (whenever MAC addresses are available) and also situations where this is not possible (when MAC addresses are not available, e.g., due to network layer separation). Real-time signal 3 causes FTL to re-import super-clients from the database without affecting anything else.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-12 19:34:56 +02:00
DL6ER 3da7668f44 Rename table from "superclients" to "superclient".
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-11 21:50:31 +02:00
DL6ER b422beb82a Implement client-based Query Log filtering for super-clients and ensure we always count both the normal and the super-client when there is a new query / garbage collection
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-11 21:13:36 +02:00
DL6ER 43eeb53ab6 Import super-clients during start (before all other clients are added)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2020-08-11 21:13:36 +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