Commit Graph

151 Commits

Author SHA1 Message Date
DL6ER 2443b231e1 Detect if we cached the <CNAME> but still need to ask the upstream servers for the actual IPs. In think case we have to decrease the "cached" counter
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-20 14:38:45 +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 4977497c68 Move MAGICBYTE into FTL.h to have it available everywhere (we will need it in database.c)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-20 11:01:04 +01:00
DL6ER 81ec8d8291 Rename getID() -> getdnsmasqID() so it is more clear what this is doing
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-15 18:27:31 +01:00
DL6ER 5a0b54a29e Improve on findForwardID()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-15 18:23:12 +01:00
DL6ER e18a0a6299 Align names of new subroutines
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-15 18:12:20 +01:00
DL6ER f10d19e43e Outsource overtime data structure handling to int findOverTimeID()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-15 18:10:05 +01:00
DL6ER 5a58608bdf Move creation of new data structure entries into correspondig subroutines findDomain() and findClient()
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-15 18:03:41 +01:00
DL6ER fc1e49c9c3 Ensure that host name returned by char *resolveHostname(const char *addr) is always lower case
Signed-off-by: DL6ER <dl6er@dl6er.de>
2018-01-07 23:23:47 +01:00
DL6ER 3b5edadd23 Merge pull request #186 from pi-hole/new/DNSSECsupport
Add full DNSSEC support
2017-12-31 17:43:59 +01:00
DL6ER 804c2d9fd3 Add state ABANDONED which is very similar to BOGUS
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-31 17:32:45 +01:00
DL6ER 0c4cfce780 Use enum for DNS states
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-31 17:04:11 +01:00
DL6ER c9ee9f552a Store DNSSEC result per domain not per query
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-31 16:50:58 +01:00
DL6ER 530a894bc5 Parse "validation" log lines
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-31 15:13:30 +01:00
DL6ER 0b1175ec60 Skip this entry if we already found th reply for this forwarded query before
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-29 00:51:07 +01:00
DL6ER dbc9457708 Worked on review comments
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-28 20:48:29 +01:00
DL6ER 3346a84d1b Add global counters for types of replies (and properly GC them)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-28 20:43:47 +01:00
DL6ER 13b89c72af Save reply type in query struct (can be used somewhere later on)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-27 00:52:36 +01:00
DL6ER dac50b19a9 Add parsing for "reply ... is ..." lines
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-27 00:20:25 +01:00
DL6ER 3d0fc44ed4 Further reduction of code duplication in the parser routine
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-22 12:16:33 +01:00
DL6ER f416fa5928 Add the concept of log generations to account for UUIDs that are not very unique
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 16:33:05 +01:00
DL6ER 86393d50fe Skip lines without UUID
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 16:21:12 +01:00
DL6ER f935312de5 Don't reuse i as counting index where we need it as query ID
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 16:05:48 +01:00
DL6ER 478568e1ee Extend the new debug command a little bit
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 15:54:52 +01:00
DL6ER 541d86bc74 Add (undocumented) debugging command over telnet (display unknown queries)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 15:45:42 +01:00
DL6ER 99506f0407 Have to actually break out of the loops for i to be the queryID
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 15:37:28 +01:00
DL6ER d276e3b20e Handle exactly blocked queries (blocked by black.list)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 15:21:24 +01:00
DL6ER 538e5a3156 Handle wildcard blocked domains correctly
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 15:19:35 +01:00
DL6ER 413dd41717 List files like gravity.list, local.list, and hostname.list have to have a path + removed some debugging output
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 15:10:26 +01:00
DL6ER 678e755e95 Properly update time index
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 15:06:18 +01:00
DL6ER 9c49155da6 Change the logic FTL uses to treat the counters
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 15:01:49 +01:00
DL6ER a20eb2d8da Initialize query status with 0 (unknown)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 14:54:14 +01:00
DL6ER 468da59bae Added proper analysis for "cached" lines + outsourced the timestamp detection into its own subroutine to avoid large repitions of code.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 14:52:39 +01:00
DL6ER 90494ec649 Modify parser to understand "query" lines with IDs
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 14:23:59 +01:00
DL6ER c86e8d9f83 Extract dnsmasq's ID from the logged queries
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-21 14:17:16 +01:00
DL6ER 4bc4b6472d Don't use to lower case converted domain when determining status (OK, Pi-holed, ...)
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-12-11 22:06:29 +01:00
DL6ER 1a0f051d8e Convert forward destinations, clients and domains to lower case
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-11-22 20:26:17 +01:00
DL6ER 0848420af4 Also test case insensitive against exact match of domain to wildcard
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-11-22 19:00:16 +01:00
DL6ER 174ce9e8eb Use case insensitive string comparison for wildcards
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-11-22 17:10:45 +01:00
DL6ER 84e92df597 Re-parse gravity data when receiving SIGHUP
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-10-25 17:45:09 +02:00
DL6ER ee355d0a88 Merge pull request #148 from pi-hole/new/RESOLVE_IPv4
Add RESOLVE_IPV4 config flag
2017-10-23 08:48:57 +02:00
DL6ER e939dad5ca Add RESOLVE_IPV4 config flag
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-10-21 16:25:24 +02:00
DL6ER cbeb6a241a Merge pull request #146 from pi-hole/fix/newyearissue
New year's issue
2017-10-11 18:29:27 +02:00
DL6ER 06efbdf5bb Merge pull request #134 from pi-hole/new/clientsovertime
[WIP] Add clients over time data structure
2017-10-10 19:06:20 +02:00
DL6ER 1adaa78584 Merge pull request #138 from pi-hole/tweak/IPv6resolverflag
Add RESOLVEIPV6 config flag
2017-10-10 19:05:22 +02:00
DL6ER 2c47ab55e2 dnsmasq's log output is lacking the year probably as a filesize reduction measure. That is irrelevant most of the year. However, every year we come to the point where a year ends and a new year starts. Here, the lack of the year *can* become problematic as we have to assume a year when converting dates into timestamps. Before this commit, FTL always assumed the current year to be the correct choice. That is true in all cases except one: FTL is restarted on Jan 01. It would then interpret the Dec 31 data if finds during log parrsing with this (instead of last) year which would be wrong.
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-10-10 18:22:52 +02:00
DL6ER 7838ecf8d3 Detect and skip queries older than the ones before in the same log file
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-10-03 14:04:43 +02:00
DL6ER e5847f7ae6 Added RESOLVEIPV6 config flag + extended comments in source
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-09-30 15:17:13 +02:00
DL6ER 7a0ce6b2a2 Add overTime/clients data structure 2017-09-22 20:44:29 +02:00
DL6ER a16656e6d0 Remove actually too verbose new debug output
Signed-off-by: DL6ER <dl6er@dl6er.de>
2017-09-19 22:45:08 +02:00