diff --git a/lib/functions/froxlor/function.CronjobFunctions.php b/lib/functions/froxlor/function.CronjobFunctions.php index fcd6760e..c3cda0ea 100644 --- a/lib/functions/froxlor/function.CronjobFunctions.php +++ b/lib/functions/froxlor/function.CronjobFunctions.php @@ -238,4 +238,4 @@ function getOutstandingTasks() $outstanding_tasks .= ''; return $outstanding_tasks; -} \ No newline at end of file +} diff --git a/lib/functions/validate/function.validateDomain.php b/lib/functions/validate/function.validateDomain.php index e981827d..d3226e31 100644 --- a/lib/functions/validate/function.validateDomain.php +++ b/lib/functions/validate/function.validateDomain.php @@ -37,12 +37,24 @@ function validateDomain($domainname) // If FILTER_VALIDATE_URL is good, but FILTER_VALIDATE_URL with FILTER_FLAG_PATH_REQUIRED or FILTER_FLAG_QUERY_REQUIRED is also good, it isn't just a domain. // This is a ugly hack, maybe a good regex would be better? - if(filter_var($domainname_tmp, FILTER_VALIDATE_URL) !== false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) === false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) + // there is a bug in php 5.2.13 - 5.3.2 which + // lets filter_var fail if the domain has + // a dash (-) in it. # + if(version_compare("5.2.13", PHP_VERSION, ">=") + && version_compare("5.3.2", PHP_VERSION, "<=")) { - return $domainname; + if(filter_var($domainname_tmp, FILTER_VALIDATE_URL) !== false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_PATH_REQUIRED) === false && filter_var($domainname_tmp, FILTER_VALIDATE_URL, FILTER_FLAG_QUERY_REQUIRED) === false) + { + return $domainname; + } } else { - return false; + $pattern = '/^([a-z0-9]([a-z0-9\-]{0,61}[a-z0-9])?\.)+[a-z]{2,6}$/i'; + if(preg_match($pattern, $domainname_tmp)) + { + return $domainname; + } } + return false; } diff --git a/scripts/jobs/cron_traffic.inc.functions.php b/scripts/jobs/cron_traffic.inc.functions.php index 93a06d17..058a3b1a 100644 --- a/scripts/jobs/cron_traffic.inc.functions.php +++ b/scripts/jobs/cron_traffic.inc.functions.php @@ -191,6 +191,14 @@ function callWebalizerGetTraffic($logfile, $outputdir, $caption, $usersdomainlis $verbosity = '-Q'; } + $we = '/usr/bin/webalizer'; + + // FreeBSD uses other paths, #140 + if(!file_exists($we)) + { + $we = '/usr/local/bin/webalizer'; + } + $cronlog->logAction(CRON_ACTION, LOG_INFO, "Running webalizer for domain '".$caption."'"); safe_exec('webalizer ' . $verbosity . ' -p -o ' . escapeshellarg($outputdir) . ' -n ' . escapeshellarg($caption) . $domainargs . ' ' . escapeshellarg($settings['system']['logfiles_directory'] . $logfile . '-access.log'));