From 2193d6a81fcc65732d606ee294aa756e3530b65f Mon Sep 17 00:00:00 2001 From: Dan Schaper Date: Thu, 3 Dec 2015 01:29:26 -0800 Subject: [PATCH 1/3] Document dnsmasq.conf config --- advanced/dnsmasq.conf | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) diff --git a/advanced/dnsmasq.conf b/advanced/dnsmasq.conf index 25b2138..30d7238 100644 --- a/advanced/dnsmasq.conf +++ b/advanced/dnsmasq.conf @@ -1,12 +1,47 @@ +# If you want dnsmasq to read another file, as well as /etc/hosts, use +# this. addn-hosts=/etc/pihole/gravity.list + +# The following two options make you a better netizen, since they +# tell dnsmasq to filter out queries which the public DNS cannot +# answer, and which load the servers (especially the root servers) +# unnecessarily. If you have a dial-on-demand link they also stop +# these requests from bringing up the link unnecessarily. + +# Never forward plain names (without a dot or domain part) domain-needed +# Never forward addresses in the non-routed address spaces. bogus-priv + +# If you don't want dnsmasq to read /etc/resolv.conf or any other +# file, getting its servers from this file instead (see below), then +# uncomment this. no-resolv + +# Add other name servers here, with domain specs if they are for +# non-public domains. server=8.8.8.8 server=8.8.4.4 + +# If you want dnsmasq to listen for DHCP and DNS requests only on +# specified interfaces (and the loopback) give the name of the +# interface (eg eth0) here. interface=eth0 +# Or which to listen on by address (remember to include 127.0.0.1 if +# you use this.) listen-address=127.0.0.1 + +# Set the cachesize here. cache-size=10000 + +# For debugging purposes, log each DNS query as it passes through +# dnsmasq. log-queries log-facility=/var/log/pihole.log + +# Normally responses which come from /etc/hosts and the DHCP lease +# file have Time-To-Live set as zero, which conventionally means +# do not cache further. If you are happy to trade lower load on the +# server for potentially stale date, you can set a time-to-live (in +# seconds) here. local-ttl=300 From 861673594d91e1710b2492b9dedd64b89d5ae969 Mon Sep 17 00:00:00 2001 From: Dan Schaper Date: Thu, 3 Dec 2015 13:17:27 -0800 Subject: [PATCH 2/3] Point to wiki Point users to the Wiki Customization entry instead of the PR --- README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/README.md b/README.md index 258168c..4021b76 100644 --- a/README.md +++ b/README.md @@ -49,11 +49,11 @@ The [Web interface](https://github.com/jacobsalmela/AdminLTE#pi-hole-admin-dashb If you want to use your own variables for the gravity script (i.e. storing the files in a different location) and don't want to have to change them every time there is an update to the script, create a file called `/etc/pihole/pihole.conf`. In it, you should add your own variables in a similar fashion as shown below: ``` -origin=/var/run/pihole +piholeDir=/var/run/pihole adList=/etc/dnsmasq.d/adList ``` -See [this PR](https://github.com/jacobsalmela/pi-hole/pull/20) for more details. +See the [Wiki](https://github.com/jacobsalmela/pi-hole/wiki/Customization) entry for more details. ### How It Works A technical and detailed description can be found [here](http://jacobsalmela.com/block-millions-ads-network-wide-with-a-raspberry-pi-hole-2-0)! From 0c3409a028920f059fc783217a8d1408646a471a Mon Sep 17 00:00:00 2001 From: Jacob Salmela Date: Fri, 4 Dec 2015 21:41:37 -0600 Subject: [PATCH 3/3] fixes #111 Also clears out some errors users don't need to see --- gravity.sh | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/gravity.sh b/gravity.sh index 7d9440a..170774c 100755 --- a/gravity.sh +++ b/gravity.sh @@ -14,7 +14,7 @@ else # Otherwise, the IP address can be taken directly from the machine, which will happen when the script is run by the user and not the installation script IPv4dev=$(ip route get 8.8.8.8 | awk '{print $5}') piholeIPCIDR=$(ip -o -f inet addr show dev $IPv4dev | awk '{print $4}') - piholeIP=${piholeIPCIDR%/*} + piholeIP=${piholeIPCIDR%/*} fi # Ad-list sources--one per line in single quotes @@ -89,7 +89,7 @@ function gravity_transport() { url=$1 cmd_ext=$2 agent=$3 - + # tmp file, so we don't have to store the (long!) lists in RAM patternBuffer=$(mktemp) heisenbergCompensator="" @@ -140,7 +140,7 @@ function gravity_spinup() { # Default is a simple request *) cmd_ext="" esac - gravity_transport $url $cmd_ext $agent + gravity_transport $url $cmd_ext $agent done } @@ -151,14 +151,14 @@ function gravity_Schwarzchild() { echo "** Aggregating list of domains..." truncate -s 0 $piholeDir/$matter for i in "${activeDomains[@]}" - do + do cat $i |tr -d '\r' >> $piholeDir/$matter done } # Pulsar - White/blacklist application function gravity_pulsar() { - + # Append blacklist entries if they exist if [[ -r $blacklist ]];then numberOf=$(cat $blacklist | sed '/^\s*$/d' | wc -l) @@ -178,11 +178,11 @@ function gravity_pulsar() { # regexp so it can be parsed out with grep -x awk -F '[# \t]' 'NF>0&&$1!="" {print "^"$1"$"}' $whitelist | sed 's/\./\\./g' > $latentWhitelist else - rm $latentWhitelist + rm $latentWhitelist >/dev/null fi # Prevent our sources from being pulled into the hole - plural=; [[ "${#sources[@]}" != "1" ]] && plural=s + plural=; [[ "${#sources[@]}" != "1" ]] && plural=s echo "** Whitelisting ${#sources[@]} ad list source${plural}..." for url in ${sources[@]} do @@ -210,7 +210,7 @@ function gravity_hostFormat() { # blackbody - remove any remnant files from script processes function gravity_blackbody() { - # Loop through list files + # Loop through list files for file in $piholeDir/*.$justDomainsExtension do # If list is in active array then leave it (noop) else rm the list @@ -234,14 +234,14 @@ function gravity_advanced() { echo "** $numberOf domains being pulled in by gravity..." gravity_unique - - sudo kill -HUP $(pidof dnsmasq) + + sudo kill -s -HUP $(pidof dnsmasq) } gravity_collapse gravity_spinup gravity_Schwarzchild gravity_pulsar -gravity_hostFormat gravity_advanced +gravity_hostFormat gravity_blackbody