/usr/src/rmw/cpanel/RemoteMxWizard/php
NameSizeModeActions
cpanel.func.php143720644editdlrm
shared.func.php27940644editdlrm
whm.func.php88840644editdlrm
Edit: /usr/src/rmw/cpanel/RemoteMxWizard/php/whm.func.php (8884B)
$type) { if (!empty($Pservices['record'][$key]) && !empty($Pservices['destination'][$key])) { if ($Pservices['settoselect'][$key] == 'yes') {$settoselect=1;} else {$settoselect=0;} $ConfFileContent .= "SERVICER".$ii."==".$type.":".$Pservices['record'][$key].":".$Pservices['destination'][$key].":".$settoselect."\n"; $ii++; } elseif (empty($Pservices['record'][$key]) && empty($Pservices['destination'][$key])) { continue; } else { $returnError = true; } } if ($returnError) { $return['errors'][] = 'Missing values in the Provider Additional Records'; } } // if (empty($return['errors'])) { if (file_put_contents($Pconffile,$ConfFileContent)) { $return['status'] = true; } else { $return['errors'][] = 'Cannot save the provider configuration'; } } } return $return; } function RemoveMailProviderConf($CpToken,$ConfFile) { if ($CpToken == $_ENV['cp_security_token']) { if (validateConfFileName($ConfFile)) { if (file_exists('/usr/local/cpanel/base/3rdparty/RemoteMxWizard/mail_providers/'.$ConfFile)) { if (unlink('/usr/local/cpanel/base/3rdparty/RemoteMxWizard/mail_providers/'.$ConfFile)) { return true; } } } } return false; } function ValidateProviderConf($CpTokens,$ConfigFile) { if ($CpTokens == $_ENV['cp_security_token']) { $ProviderConfig = GetMailProviderConf($ConfigFile); if (empty($ProviderConfig['NAME'])) { $return['errors'][] = 'The provider name cannot be empty.'; } if (empty($ProviderConfig['DESCRIPTION'])) { $return['errors'][] = 'The provider description cannot be empty.'; } if (isset($ProviderConfig['MXs']) && is_array($ProviderConfig['MXs'])) { foreach ($ProviderConfig['MXs'] as $mx=>$pri) { if (!checkdnsrr($mx, 'ANY')) { $return['errors'][] = 'No public DNS records found for the domain: '.$mx; } if (!checkIfNumber($pri)) { $return['errors'][] = $mx.' priority must be a number.'; } } } else { $return['errors'][] = 'The provider MXs cannot be empty.'; } if (!empty($ProviderConfig['BACKUPMX'])) { if (!checkIfNumber($ProviderConfig['BACKUPMX'])) { $return['errors'][] = 'The MX Backup priority must be a number.'; } elseif ( isset($ProviderConfig['MXs']) && ( (int)max($ProviderConfig['MXs']) > (int)$ProviderConfig['BACKUPMX'] ) ) { $return['errors'][] = 'The MX Backup should have the highest priority.'; } } if (isset($ProviderConfig['SERVICERS']) && is_array($ProviderConfig['SERVICERS'])) { foreach ($ProviderConfig['SERVICERS'] as $service) { if ($service[1] && $service[2] && $service[0] != 'TXT') { $services[$service[2]][$service[0]] = $service[0]; } } foreach ($services as $serviceDomain=>$typeArr) { foreach ($typeArr as $type) { if ( ($type == 'CNAME') && (!checkdnsrr($serviceDomain, 'A') && !checkdnsrr($serviceDomain, 'CNAME')) ) { $return['errors'][] = 'No CNAME or A record found for the service domain: '.$serviceDomain; } elseif ($type == 'A' && !ifValidIpAddress($serviceDomain) ) { $return['errors'][] = 'Invalid ip address '.$serviceDomain; } } } } } $return['status'] = (isset($return['errors'])) ? false : true; return $return; } function checkIfNumber($string) { $number = trim($string); if ( (int)($number) || ctype_digit($number) || is_numeric($number) ) { return true; } else { return false; } } function addNewMailProvider($CpToken) { $return['newfile'] = false; if ($CpToken == $_ENV['cp_security_token']) { $ConfFileName = trim($_POST['addnewprovider']); if (preg_match('/^[a-z0-9 ]+$/i', $ConfFileName)) { $filename = strtolower(preg_replace('!\s+!', '_', $ConfFileName)); $Pconffile = '/usr/local/cpanel/base/3rdparty/RemoteMxWizard/mail_providers/'.$filename.'.conf'; if (!file_exists($Pconffile)) { $ConfFileContent = "PNAME==\nDESCRIPTION==\nBACKUPMX==\nSPFR==\nSTATUS==0\n"; if (file_put_contents($Pconffile,$ConfFileContent)) { $return['newfile'] = $filename.'.conf'; } else { $return['error'] = 'Error creating the new provider'; } } else { $return['error'] = 'This provider name is already exist'; } } else { $return['error'] = 'You can use only alphanumeric characters for the new provider'; } } else { $return['error'] = 'Invalid cPanel security token'; } return $return; } function validateConfFileName($confFile) { if (preg_match('/^[a-z0-9_.]+$/i', $confFile)) { preg_match('/\.[^\.]+[conf]$/i', $confFile, $ext); if ($ext[0] == '.conf') { if (file_exists('/usr/local/cpanel/base/3rdparty/RemoteMxWizard/mail_providers/'.$confFile)) { return true; } } } return false; } function fileToProviderName($file) { return ucwords(str_replace('_', ' ', rtrim($file, '.conf'))); } function ifValidIpAddress($ip) { if (filter_var($ip, FILTER_VALIDATE_IP, FILTER_FLAG_NO_RES_RANGE)) { return true; } else { return preg_match("/([0-9\.]+)\.([0-9]+)(\/|\-)([0-9]+)$/", $ip); } } ?>