mirror of
https://github.com/pi-hole/web.git
synced 2026-04-24 02:39:25 +01:00
Squashed commit of the following:
- Dynamically fall back to PHP API functions to ensure API does always repond even if FTL is not runnung for some reason - Update PHP API from current devel branch - Increase flexibility in getQueryTypes API call - Hide top ads list if nothing to display - Proper display of activated privacy mode - Remove spinner (would otherwise not be removed for zero results) - Update tables every 10 seconds - Update query types and forward destinations plots every 10 seconds - More verbose output in top lists (total number next to percentage in tooltip) - Implemented "recentBlocked" keyword for API - Ensure compatibility with PHP5 version < 5.4 - Adjust output format of overTimeData10mins to comply with PHP API - Further speedup of Query Log page by showing only the recent 10 minutes by default - Hide temperature if FTL is not running and show FTL status - Add information to Settings page - Adjust error message when loading of query log failed - Move processing of domainname, clientIP, clientname and time interval filters for the Query Log page to FTL for speed enhancement - Generate link if pi.hole comes up in the Top Domains list - Remove resolve DNS names option - this is now enabled by default (daemon will only do it once per day instead of PHP-API which did it on every reloading of the web interface) - Add socket timeout of 10 seconds + modification to Settings page since FTL backend supports API_EXCLUDE_CLIENTS filtering with both IP addresses and host names (also mixed) - Improved Query Log page
This commit is contained in:
@@ -44,6 +44,15 @@ function validDomain($domain_name)
|
||||
return ( $validChars && $lengthCheck && $labelLengthCheck ); //length of each label
|
||||
}
|
||||
|
||||
function validDomainWildcard($domain_name)
|
||||
{
|
||||
// There has to be either no or at most one "*" at the beginning of a line
|
||||
$validChars = preg_match("/^((\*)?[_a-z\d](-*[_a-z\d])*)(\.([_a-z\d](-*[a-z\d])*))*(\.([a-z\d])*)*$/i", $domain_name);
|
||||
$lengthCheck = preg_match("/^.{1,253}$/", $domain_name);
|
||||
$labelLengthCheck = preg_match("/^[^\.]{1,63}(\.[^\.]{1,63})*$/", $domain_name);
|
||||
return ( $validChars && $lengthCheck && $labelLengthCheck ); //length of each label
|
||||
}
|
||||
|
||||
function validMAC($mac_addr)
|
||||
{
|
||||
// Accepted input format: 00:01:02:1A:5F:FF (characters may be lower case)
|
||||
@@ -215,9 +224,9 @@ function readStaticLeasesFile()
|
||||
$first = true;
|
||||
foreach($domains as $domain)
|
||||
{
|
||||
if(!validDomain($domain))
|
||||
if(!validDomainWildcard($domain) || validIP($domain))
|
||||
{
|
||||
$error .= "Top Domains/Ads entry ".htmlspecialchars($domain)." is invalid!<br>";
|
||||
$error .= "Top Domains/Ads entry ".htmlspecialchars($domain)." is invalid (use only domains)!<br>";
|
||||
}
|
||||
if(!$first)
|
||||
{
|
||||
@@ -234,7 +243,7 @@ function readStaticLeasesFile()
|
||||
$first = true;
|
||||
foreach($clients as $client)
|
||||
{
|
||||
if(!validIP($client))
|
||||
if(!validDomainWildcard($client))
|
||||
{
|
||||
$error .= "Top Clients entry ".htmlspecialchars($client)." is invalid (use only IP addresses)!<br>";
|
||||
}
|
||||
@@ -309,24 +318,6 @@ function readStaticLeasesFile()
|
||||
exec("sudo pihole -a privacymode false");
|
||||
}
|
||||
|
||||
if(isset($_POST["resolve-forward"]))
|
||||
{
|
||||
exec("sudo pihole -a resolve forward true");
|
||||
}
|
||||
else
|
||||
{
|
||||
exec("sudo pihole -a resolve forward false");
|
||||
}
|
||||
|
||||
if(isset($_POST["resolve-clients"]))
|
||||
{
|
||||
exec("sudo pihole -a resolve clients true");
|
||||
}
|
||||
else
|
||||
{
|
||||
exec("sudo pihole -a resolve clients false");
|
||||
}
|
||||
|
||||
break;
|
||||
|
||||
case "webUI":
|
||||
|
||||
Reference in New Issue
Block a user