Simon Kelley c7e647ec10 Fix rare "Internal error in cache" messages.
Fix error created in 1ce1c6beae9f683bec54cba4c0d375f85b209b95

Many thanks to Hartmut Birr for finding the bug and bisecting to
the guilty commit.

The breaking commit creates cache entries which have F_NXDOMAIN
set but none of F_IPV4, F_IPV6 or F_SRV. If cache_scan_free() is called
to delete such an entry it will fail to do so.

If the cache has no free slots and the least-recently-used slot is such
an entry, then a new insertion will attempt to make space by calling
cache_scan_free(), which will fail when it should be impossible and
trigger the internal error.

Signed-off-by: DL6ER <dl6er@dl6er.de>
2021-12-25 21:16:35 +01:00
2021-10-20 14:36:35 +02:00
2021-10-20 14:36:35 +02:00
2019-06-08 18:35:10 +02:00
2020-07-22 18:51:56 +02:00
2021-12-20 21:37:21 +01:00
2017-06-03 15:05:41 +02:00
2021-02-18 19:53:48 -08:00

Pi-hole
Network-wide ad blocking via your own Linux hardware

FTLDNS

FTLDNS (pihole-FTL) provides an interactive API and also generates statistics for Pi-hole®'s Web interface.

  • Fast: stats are read directly from memory by coupling our codebase closely with dnsmasq
  • Versatile: upstream changes to dnsmasq can quickly be merged in without much conflict
  • Lightweight: runs smoothly with minimal hardware and software requirements such as Raspberry Pi Zero
  • Interactive: our API can be used to interface with your projects
  • Insightful: stats normally reserved inside of dnsmasq are made available so you can see what's really happening on your network

Official documentation

The official FTLDNS documentation can be found here.

Installation

FTLDNS (pihole-FTL) is installed by default when you choose to enable the Web interface when installing Pi-hole.

IMPORTANT!

FTLDNS will disable any existing installations of dnsmasq. This is because FTLDNS is dnsmasq + Pi-hole's code, so both cannot run simultaneously.

S
Description
The Pi-hole FTL engine
Readme
33 MiB
Languages
C 99.1%
Shell 0.6%
CMake 0.2%