diff --git a/README.md b/README.md index 4a6a86c6..97dde3c6 100644 --- a/README.md +++ b/README.md @@ -12,10 +12,6 @@ Block ads for **all** your devices _without_ the need to install client-side software. -

- -

- ## Executive Summary The Pi-hole blocks ads at the DNS-level, so all your devices are protected. @@ -66,7 +62,7 @@ Alternatively, you can manually set each device to use Pi-hole as their DNS serv # Pi-hole Is Free, But Powered By Your Donations -[Digital Ocean](http://www.digitalocean.com/?refcode=344d234950e1) helps with our infrastructure, but [our developers](https://github.com/orgs/pi-hole/people) are all volunteers so *your donations help keep us innovating*. +All [our developers](https://github.com/orgs/pi-hole/people) are volunteers, so *your donations help keep us innovating*. Sending a donation using our links below helps us offset a portion of our monthly costs. - ![Paypal](https://assets.pi-hole.net/static/paypal.png) [Donate via PayPal](https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=3J2L3Z4DHW9UY) - ![Bitcoin](https://assets.pi-hole.net/static/Bitcoin.png) Bitcoin Address: 1GKnevUnVaQM2pQieMyeHkpr8DXfkpfAtL diff --git a/advanced/Scripts/webpage.sh b/advanced/Scripts/webpage.sh index 9d101482..560bebd0 100755 --- a/advanced/Scripts/webpage.sh +++ b/advanced/Scripts/webpage.sh @@ -261,7 +261,12 @@ ProcessDHCPSettings() { if [[ "${DHCP_LEASETIME}" == "0" ]]; then leasetime="infinite" elif [[ "${DHCP_LEASETIME}" == "" ]]; then - leasetime="24h" + leasetime="24" + change_setting "DHCP_LEASETIME" "${leasetime}" + elif [[ "${DHCP_LEASETIME}" == "24h" ]]; then + #Installation is affected by known bug, introduced in a previous version. + #This will automatically clean up setupVars.conf and remove the unnecessary "h" + leasetime="24" change_setting "DHCP_LEASETIME" "${leasetime}" else leasetime="${DHCP_LEASETIME}h" diff --git a/advanced/index.php b/advanced/index.php index 1dd5acc7..2facd144 100644 --- a/advanced/index.php +++ b/advanced/index.php @@ -21,8 +21,9 @@ if ($serverName === 'pi.hole') } // Retrieve server URI extension (EG: jpg, exe, php) +// strtok($uri, '\?') splits the querystring from the path (if there is a querystring) ini_set('pcre.recursion_limit',100); -$uriExt = pathinfo($uri, PATHINFO_EXTENSION); +$uriExt = pathinfo(strtok($uri,'\?'), PATHINFO_EXTENSION); // Define which URL extensions get rendered as "Website Blocked" $webExt = array('asp', 'htm', 'html', 'php', 'rss', 'xml'); diff --git a/automated install/basic-install.sh b/automated install/basic-install.sh index 4047502b..4fc94837 100755 --- a/automated install/basic-install.sh +++ b/automated install/basic-install.sh @@ -1216,7 +1216,7 @@ install_dependent_packages() { if command -v debconf-apt-progress &> /dev/null; then # For each package, for i in "${argArray1[@]}"; do - echo -ne " ${INFO} Checking for $i..." + echo -ne " ${INFO} Checking for $i..." # if dpkg-query -W -f='${Status}' "${i}" 2>/dev/null | grep "ok installed" &> /dev/null; then # @@ -1243,7 +1243,7 @@ install_dependent_packages() { # Install Fedora/CentOS packages for i in "${argArray1[@]}"; do - echo -ne " ${INFO} Checking for $i..." + echo -ne " ${INFO} Checking for $i..." # if ${PKG_MANAGER} -q list installed "${i}" &> /dev/null; then echo -e "${OVER} ${TICK} Checking for $i" diff --git a/pihole b/pihole index 61ed6cd6..ded79f71 100755 --- a/pihole +++ b/pihole @@ -1,4 +1,5 @@ #!/bin/bash + # Pi-hole: A black hole for Internet advertisements # (c) 2017 Pi-hole, LLC (https://pi-hole.net) # Network-wide ad blocking via your own hardware. @@ -8,11 +9,11 @@ # This file is copyright under the latest version of the EUPL. # Please see LICENSE file for your rights under this license. -colfile="/opt/pihole/COL_TABLE" -source ${colfile} - readonly PI_HOLE_SCRIPT_DIR="/opt/pihole" readonly wildcardlist="/etc/dnsmasq.d/03-pihole-wildcard.conf" +readonly colfile="${PI_HOLE_SCRIPT_DIR}/COL_TABLE" + +source ${colfile} # Must be root to use this tool if [[ ! $EUID -eq 0 ]];then @@ -481,41 +482,43 @@ Options: echo -e "${OVER} ${TICK} ${str}" } -piholeStatus() { - if [[ "$(netstat -plnt | grep -c ':53 ')" -gt "0" ]]; then +statusFunc() { + local addnConfigs + + # Determine if service is running on port 53 (Cr: https://superuser.com/a/806331) + if (echo > /dev/tcp/localhost/53) >/dev/null 2>&1; then if [[ "${1}" != "web" ]]; then echo -e " ${TICK} DNS service is running" fi else - if [[ "${1}" == "web" ]]; then - echo "-1"; - else - echo -e " ${CROSS} DNS service is NOT running" - fi - return + case "${1}" in + "web") echo "-1";; + *) echo -e " ${CROSS} DNS service is NOT running";; + esac + return 0 fi - if [[ "$(grep -i "^#addn-hosts=/" /etc/dnsmasq.d/01-pihole.conf)" ]]; then - # List is commented out - if [[ "${1}" == "web" ]]; then - echo 0; - else - echo -e " ${CROSS} Pi-hole blocking is Disabled"; - fi - elif [[ "$(grep -i "^addn-hosts=/" /etc/dnsmasq.d/01-pihole.conf)" ]]; then - # List set - if [[ "${1}" == "web" ]]; then - echo 1; - else - echo -e " ${TICK} Pi-hole blocking is Enabled"; - fi + # Determine if Pi-hole's addn-hosts configs are commented out + addnConfigs=$(grep -i "addn-hosts=/" /etc/dnsmasq.d/01-pihole.conf) + + if [[ "${addnConfigs}" =~ "#" ]]; then + # A config is commented out + case "${1}" in + "web") echo 0;; + *) echo -e " ${CROSS} Pi-hole blocking is Disabled";; + esac + elif [[ -n "${addnConfigs}" ]]; then + # Configs are set + case "${1}" in + "web") echo 1;; + *) echo -e " ${TICK} Pi-hole blocking is Enabled";; + esac else - # Addn-host not found - if [[ "${1}" == "web" ]]; then - echo 99 - else - echo -e " ${INFO} No hosts file linked to dnsmasq, adding it in enabled state" - fi + # No configs were found + case "${1}" in + "web") echo 99;; + *) echo -e " ${INFO} No hosts file linked to dnsmasq, adding it in enabled state";; + esac # Add addn-host= to dnsmasq echo "addn-hosts=/etc/pihole/gravity.list" >> /etc/dnsmasq.d/01-pihole.conf restartDNS @@ -561,7 +564,7 @@ tricorderFunc() { exit 1 fi - if ! timeout 2 nc -z tricorder.pi-hole.net 9998 &> /dev/null; then + if ! (echo > /dev/tcp/tricorder.pi-hole.net/9998) >/dev/null 2>&1; then echo -e " ${CROSS} Unable to connect to Pi-hole's Tricorder server" exit 1 fi @@ -651,7 +654,7 @@ case "${1}" in "uninstall" ) uninstallFunc;; "enable" ) piholeEnable 1;; "disable" ) piholeEnable 0 "$2";; - "status" ) piholeStatus "$2";; + "status" ) statusFunc "$2";; "restartdns" ) restartDNS;; "-a" | "admin" ) webpageFunc "$@";; "-t" | "tail" ) tailFunc;;