} else {
         if ($server_address && $server_address != "" || $server_port && !is_numeric($server_port)) {
             $input_errors[] = "'Address' and 'port' should be empty when a 'Forwardto' frontend is chosen other than 'Address+Port'.";
         }
     }
     if (!preg_match("/.{2,}/", $server_name)) {
         $input_errors[] = "The field 'Name' is required (and must be at least 2 characters).";
     }
     if ($server_weight && !is_numeric($server_weight)) {
         $input_errors[] = "The field 'Weight' value is not a number.";
     }
     if ($server_port && !is_numeric($server_port)) {
         $input_errors[] = "The field 'Port' value is not a number.";
     }
 }
 $a_errorfiles = haproxy_htmllist_get_values($fields_errorfile);
 if ($_POST['strict_transport_security'] !== "" && !is_numeric($_POST['strict_transport_security'])) {
     $input_errors[] = "The field 'Strict-Transport-Security' is not empty or a number.";
 }
 //	if (!$input_errors) {
 $pool = array();
 if (isset($id) && $a_pools[$id]) {
     $pool = $a_pools[$id];
 }
 if ($pool['name'] != $_POST['name']) {
     // name changed:
     if (!is_array($config['installedpackages']['haproxy']['ha_backends']['item'])) {
         $config['installedpackages']['haproxy']['ha_backends']['item'] = array();
     }
     $a_backend =& $config['installedpackages']['haproxy']['ha_backends']['item'];
     for ($i = 0; $i < count($a_backend); $i++) {
             $input_errors[] = "The field 'Port' value '" . htmlspecialchars($port) . "' is not a number or alias thereof.";
         }
     }
     if ($_POST['client_timeout'] !== "" && !is_numeric($_POST['client_timeout'])) {
         $input_errors[] = "The field 'Client timeout' value is not a number.";
     }
 }
 /* Ensure that our pool names are unique */
 for ($i = 0; isset($config['installedpackages']['haproxy']['ha_backends']['item'][$i]); $i++) {
     if ($_POST['name'] == $config['installedpackages']['haproxy']['ha_backends']['item'][$i]['name'] && $i != $id) {
         $input_errors[] = "This frontend name has already been used. Frontend names must be unique. {$i} != {$id}";
     }
 }
 $a_certificates = haproxy_htmllist_get_values($fields_sslCertificates);
 $pconfig['a_certificates'] = $a_certificates;
 $a_acl = haproxy_htmllist_get_values($fields_aclSelectionList);
 $pconfig['a_acl'] = $a_acl;
 foreach ($a_acl as $acl) {
     $acl_name = $acl['name'];
     $acl_value = $acl['value'];
     if (preg_match("/[^a-zA-Z0-9\\.\\-_]/", $acl_name)) {
         $input_errors[] = "The field 'Name' contains invalid characters.";
     }
     if (!preg_match("/.{1,}/", $acl_value)) {
         $input_errors[] = "The field 'Value' is required.";
     }
     if (!preg_match("/.{2,}/", $acl_name)) {
         $input_errors[] = "The field 'Name' is required with at least 2 characters.";
     }
 }
 if (!$input_errors) {
Ejemplo n.º 3
0
     $input_errors[] = "The field 'Stats Username' contains invalid characters.";
 }
 // the colon ":" can also be used in the password
 if (preg_match("/[^a-zA-Z0-9!-~ ]/", $_POST['stats_password'])) {
     $input_errors[] = "The field 'Stats Password' contains invalid characters.";
 }
 if (preg_match("/[^a-zA-Z0-9\\-_]/", $_POST['stats_node'])) {
     $input_errors[] = "The field 'Stats Node' contains invalid characters. Should be a string with digits(0-9), letters(A-Z, a-z), hyphen(-) or underscode(_)";
 }
 /* Ensure that our pool names are unique */
 for ($i = 0; isset($config['installedpackages']['haproxy']['ha_pools']['item'][$i]); $i++) {
     if ($_POST['name'] == $config['installedpackages']['haproxy']['ha_pools']['item'][$i]['name'] && $i != $id) {
         $input_errors[] = "This pool name has already been used.  Pool names must be unique.";
     }
 }
 $a_servers = haproxy_htmllist_get_values($fields_servers);
 foreach ($a_servers as $server) {
     $server_name = $server['name'];
     $server_address = $server['address'];
     $server_port = $server['port'];
     $server_weight = $server['weight'];
     if (preg_match("/[^a-zA-Z0-9\\.\\-_]/", $server_name)) {
         $input_errors[] = "The field 'Name' contains invalid characters.";
     }
     if (!is_ipaddr($server_address) && !is_hostname($server_address)) {
         $input_errors[] = "The field 'Address' is not a valid ip address or hostname.";
     }
     if (!preg_match("/.{2,}/", $server_name)) {
         $input_errors[] = "The field 'Name' is required (and must be at least 2 characters).";
     }
     if ($server_weight && !is_numeric($server_weight)) {
Ejemplo n.º 4
0
     $input_errors[] = "The field 'Stats Username' contains invalid characters.";
 }
 // the colon ":" can also be used in the password
 if (preg_match("/[^a-zA-Z0-9!-~ ]/", $_POST['stats_password'])) {
     $input_errors[] = "The field 'Stats Password' contains invalid characters.";
 }
 if (preg_match("/[^a-zA-Z0-9\\-_]/", $_POST['stats_node'])) {
     $input_errors[] = "The field 'Stats Node' contains invalid characters. Should be a string with digits(0-9), letters(A-Z, a-z), hyphen(-) or underscode(_)";
 }
 /* Ensure that our pool names are unique */
 for ($i = 0; isset($config['installedpackages']['haproxy']['ha_pools']['item'][$i]); $i++) {
     if ($_POST['name'] == $config['installedpackages']['haproxy']['ha_pools']['item'][$i]['name'] && $i != $id) {
         $input_errors[] = "This pool name has already been used.  Pool names must be unique.";
     }
 }
 $a_servers = haproxy_htmllist_get_values(array_merge($fields_servers, $fields_servers_details));
 foreach ($a_servers as $server) {
     $server_name = $server['name'];
     $server_address = $server['address'];
     $server_port = $server['port'];
     $server_weight = $server['weight'];
     if (preg_match("/[^a-zA-Z0-9\\.\\-_]/", $server_name)) {
         $input_errors[] = "The field 'Name' contains invalid characters.";
     }
     if (!isset($server['forwardto']) || $server['forwardto'] == "") {
         if (!is_ipaddr($server_address) && !is_hostname($server_address) && !haproxy_is_frontendname($server_address)) {
             $input_errors[] = "The field 'Address' for server {$server_name} is not a valid ip address or hostname." . $server_address;
         }
     } else {
         if ($server_address && $server_address != "" || $server_port && !is_numeric($server_port)) {
             $input_errors[] = "'Address' and 'port' should be empty when a 'Forwardto' frontend is chosen other than 'Address+Port'.";
 }
 /* Ensure that our pool names are unique */
 for ($i = 0; isset($config['installedpackages']['haproxy']['ha_backends']['item'][$i]); $i++) {
     if ($_POST['name'] == $config['installedpackages']['haproxy']['ha_backends']['item'][$i]['name'] && $i != $id) {
         $input_errors[] = "This frontend name has already been used. Frontend names must be unique. {$i} != {$id}";
     }
 }
 $a_certificates = haproxy_htmllist_get_values($fields_sslCertificates);
 $pconfig['a_certificates'] = $a_certificates;
 $a_clientcert_ca = haproxy_htmllist_get_values($fields_caCertificates);
 $pconfig['clientcert_ca'] = $a_clientcert_ca;
 $a_clientcert_crl = haproxy_htmllist_get_values($fields_crlCertificates);
 $pconfig['clientcert_crl'] = $a_clientcert_crl;
 $a_acl = haproxy_htmllist_get_values($fields_aclSelectionList);
 $pconfig['a_acl'] = $a_acl;
 $a_extaddr = haproxy_htmllist_get_values($fields_externalAddress);
 $pconfig['a_extaddr'] = $a_extaddr;
 foreach ($a_acl as $acl) {
     $acl_name = $acl['name'];
     $acl_value = $acl['value'];
     $acltype = haproxy_find_acl($acl['expression']);
     if (preg_match("/[^a-zA-Z0-9\\.\\-_]/", $acl_name)) {
         $input_errors[] = "The field 'Name' contains invalid characters.";
     }
     if (!isset($acltype['novalue'])) {
         if (!preg_match("/.{1,}/", $acl_value)) {
             $input_errors[] = "The field 'Value' is required.";
         }
     }
     if (!preg_match("/.{2,}/", $acl_name)) {
         $input_errors[] = "The field 'Name' is required with at least 2 characters.";