The Pi-hole FTL engine
Go to file
DL6ER ae86c984a6
Removed bats submodules
Signed-off-by: DL6ER <dl6er@dl6er.de>
2019-06-08 18:35:10 +02:00
.circleci Reimplement tests for CricleCI, step 1: Start pihole-FTL 2019-06-07 18:27:32 +02:00
.github Add .github/PULL_REQUEST_TEMPLATE.md (#24) 2017-05-01 14:44:03 +02:00
aux Further review comments. Always allocate vendor so we can always free this pointer. Add a callback for the update subroutine. 2019-01-07 18:46:57 +01:00
dnsmasq Print version of pihole-FTL 2019-06-07 18:45:24 +02:00
docker Add ghr to the docker build container 2019-02-22 19:54:53 -08:00
test Removed bats submodules 2019-06-08 18:35:10 +02:00
.gitignore Add generated aux files to .gitignore 2019-01-08 21:07:32 +01:00
.gitmodules Removed bats submodules 2019-06-08 18:35:10 +02:00
.pullapprove.yml Add PullApprove settings file (copied from core repo) (#23) 2017-05-01 14:47:46 +02:00
FTL.h Remove Pi-hole specific domain files. Gravity, white-, blacklist and regex domains will all be sourced from the database. There is no need for the old files to exist. 2019-04-24 18:44:01 +02:00
FTLtest.sh Minor change to FTLtest.sh 2017-03-12 11:02:20 +01:00
LICENSE Improve formating 2017-06-03 15:05:41 +02:00
Makefile Change prefix to PREFIX so users can modify its value by, e.g., make PREFIX=/usr/local install 2019-05-31 14:20:33 +02:00
README.md Update cryptocoin addresses 2019-05-03 07:42:26 +01:00
api.c Use memcpy instead of strncpy in cases where we want to use only parts of strings. GCC 8.1 and higher warns about using strncpy when it detects possible truncations already at compile time. 2019-05-25 13:26:54 +02:00
api.h Add header guards 2019-04-19 09:24:56 +02:00
args.c Remove obsolete (undocumented) "travis-ci" command line argument. 2019-06-07 21:48:48 +02:00
capabilities.c Improve code based on a full static analysis of our code. There are no real bugs, nowever, we use the obtained knowledge to improve the code such as unify declarations and function definitions, reduce the scope of local variables, mark many function arguments and local variables const when they are, fix the type expected by %x and fix one if-condition 2019-04-15 22:35:14 +02:00
config.c Remove Pi-hole specific domain files. Gravity, white-, blacklist and regex domains will all be sourced from the database. There is no need for the old files to exist. 2019-04-24 18:44:01 +02:00
daemon.c Improve code based on a full static analysis of our code. There are no real bugs, nowever, we use the obtained knowledge to improve the code such as unify declarations and function definitions, reduce the scope of local variables, mark many function arguments and local variables const when they are, fix the type expected by %x and fix one if-condition 2019-04-15 22:35:14 +02:00
database.c Review comments 2019-05-26 22:06:07 +02:00
datastructure.c Merge branch 'development' into tweak/remove_global_objects 2019-04-16 18:04:40 +02:00
dnsmasq_interface.c Use globally defined strings instead of duplicating them here manually 2019-04-28 13:35:11 +02:00
dnsmasq_interface.h Remove Pi-hole specific domain files. Gravity, white-, blacklist and regex domains will all be sourced from the database. There is no need for the old files to exist. 2019-04-24 18:44:01 +02:00
gc.c Use get_timestr() instead of ctime_r() to obtain string representation of a timestamp 2019-04-23 11:21:13 +02:00
gravity.c Review comments 2019-04-27 15:45:13 +02:00
grep.c Improve code based on a full static analysis of our code. There are no real bugs, nowever, we use the obtained knowledge to improve the code such as unify declarations and function definitions, reduce the scope of local variables, mark many function arguments and local variables const when they are, fix the type expected by %x and fix one if-condition 2019-04-15 22:35:14 +02:00
log.c Use get_timestr() instead of ctime_r() to obtain string representation of a timestamp 2019-04-23 11:21:13 +02:00
main.c Merge branch 'development' into new/gravityDB 2019-04-16 18:22:37 +02:00
memory.c Remove Pi-hole specific domain files. Gravity, white-, blacklist and regex domains will all be sourced from the database. There is no need for the old files to exist. 2019-04-24 18:44:01 +02:00
msgpack.c Improve code based on a full static analysis of our code. There are no real bugs, nowever, we use the obtained knowledge to improve the code such as unify declarations and function definitions, reduce the scope of local variables, mark many function arguments and local variables const when they are, fix the type expected by %x and fix one if-condition 2019-04-15 22:35:14 +02:00
networktable.c Review comments 2019-05-26 22:06:07 +02:00
overTime.c Merge branch 'development' into tweak/remove_global_objects 2019-04-16 18:04:40 +02:00
regex.c Merge branch 'development' into new/gravityDB 2019-04-24 17:20:58 +02:00
request.c Merge branch 'development' into new/gravityDB 2019-04-16 18:22:37 +02:00
resolve.c Don't hold a reference to shared memory across locks in resolve.c 2019-05-22 17:47:00 -07:00
routines.h Merge branch 'development' into new/gravityDB 2019-04-24 17:20:58 +02:00
setupVars.c Declare return value of getstr() as const char* because the returned strings should not be modifiable. Similarly, neither pack_fixstr() nor pack_str32() should be able to modify strings they are given. Furthermore, getDomainString(), getClientIPString(), getClientNameString(), getSetupVarsArray(), insetupVarsArray(), and getSetupVarsBool() should never modify the strings they receive as arguments. 2019-03-10 11:24:51 +01:00
shmem.c Improve shmem addstr() and fix possible memory corruption error 2019-05-25 13:41:22 +02:00
shmem.h Remove extra semicolon from lock_shm and unlock_shm 2019-05-21 17:32:42 -07:00
signals.c Declare attributes for functions in FTL. These attributes help the compiler to optimize functions calls and to check our code more carefully during compilation. See pull reqeust text for details. 2019-03-08 11:36:11 +01:00
socket.c Improve code based on a full static analysis of our code. There are no real bugs, nowever, we use the obtained knowledge to improve the code such as unify declarations and function definitions, reduce the scope of local variables, mark many function arguments and local variables const when they are, fix the type expected by %x and fix one if-condition 2019-04-15 22:35:14 +02:00
socket_client.c Remove obsolete (undocumented) "travis-ci" command line argument. 2019-06-07 21:48:48 +02:00
sqlite3.c Update SQLite from 3.27.1 to 3.28.0 2019-04-17 19:06:22 +02:00
sqlite3.h Update SQLite from 3.27.1 to 3.28.0 2019-04-17 19:06:22 +02:00

README.md

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.

Post-install: Gain insight into your network's activity

As mentioned earlier, FTLDNS will be enabled by default when you install Pi-hole. To access the Web interface, navigate to http://pi.hole/admin or http://<IP OF YOUR PIHOLE>/admin.

Once logged in, (or authenticated to the API) you can view your network stats to see things like:

  • the domains being queried on your network
  • the time the queries were initiated
  • the amount of domains that were blocked
  • the upstream server queries were sent to
  • the type of queries (A, AAAA, CNAME, SRV, TXT, etc.)

Pi-hole is free, but powered by your support

There are many reoccurring costs involved with maintaining free, open source, and privacy respecting software; expenses which our volunteer developers pitch in to cover out-of-pocket. This is just one example of how strongly we feel about our software, as well as the importance of keeping it maintained.

Make no mistake: your support is absolutely vital to help keep us innovating!

Donations

Sending a donation using our links below is extremely helpful in offsetting a portion of our monthly expenses:

Alternative support

If you'd rather not donate (which is okay!), there are other ways you can help support us:

Contributing via GitHub

We welcome everyone to contribute to issue reports, suggest new features, and create pull requests.

If you have something to add - anything from a typo through to a whole new feature, we're happy to check it out! Just make sure to fill out our template when submitting your request; the questions that it asks will help the volunteers quickly understand what you're aiming to achieve.

Presentations about Pi-hole

Word-of-mouth continues to help our project grow immensely, and so we are helping make this easier for people.

If you are going to be presenting Pi-hole at a conference, meetup or even a school project, get in touch with us so we can hook you up with free swag to hand out to your audience!


Getting in touch with us

While we are primarily reachable on our Discourse User Forum, we can also be found on a variety of social media outlets. Please be sure to check the FAQ's before starting a new discussion, as we do not have the spare time to reply to every request for assistance.