|
Server : LiteSpeed System : Linux srv104790275 5.15.0-161-generic #171-Ubuntu SMP Sat Oct 11 08:17:01 UTC 2025 x86_64 User : dewac4139 ( 1077) PHP Version : 8.0.30 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare, Directory : /usr/local/lsws/admin/html/lib/ows/ |
Upload File : |
<?php
class ConfValidation extends CValidation
{
// to hold special validation
protected function isValidAttr($attr, $cval)
{
$isValid = parent::isValidAttr($attr, $cval);
if ($isValid == 1 && $attr->_type == 'modulename') {
$res = $this->chkAttr_modulename($attr, $cval);
$this->setValid($isValid, $res);
}
return $isValid;
}
protected function chkAttr_modulename($attr, $cval)
{
$name = $cval->Get(CNode::FLD_VAL);
if ( preg_match( "/[<>&%\s]/", $name) ) {
$cval->SetErr('invalid characters in name');
return -1;
}
else
return 1;
}
protected function validatePostTbl($tbl, $extracted)
{
if ($tbl->Get(DTbl::FLD_ID) == 'S_MOD') {
$isValid = $this->chkPostTbl_SERV_MODULE($extracted);
}
else {
$isValid = parent::validatePostTbl($tbl, $extracted);
}
return $isValid;
}
protected function chkPostTbl_SERV_MODULE($extracted)
{
$isValid = 1;
$name = $extracted->GetChildVal('name');
if ($extracted->GetChildVal('internal') == 0) {
if ($name != 'cache') {
$module = SERVER_ROOT . "modules/{$name}.so";
if (!file_exists($module)) {
$extracted->SetChildErr('name', "cannot find external module: $module");
$isValid = -1;
}
} else {
$extracted->SetChildErr('internal', 'This is a built-in internal module');
$isValid = -1;
}
}
return $isValid;
}
}