Allow that delegate_ip and wd_hostname can be ''.
authorNozomi Anzai <anzai@sraoss.co.jp>
Tue, 17 Jul 2012 02:14:30 +0000 (11:14 +0900)
committerNozomi Anzai <anzai@sraoss.co.jp>
Tue, 17 Jul 2012 02:14:30 +0000 (11:14 +0900)
definePgpoolConfParam.php
pgconfig.php

index 251900dd954d5a6f46677df12aa4cde66a5f35bc..d4c6b72a9e6dfdf29d17cf096890059fc23c6199 100644 (file)
@@ -35,6 +35,7 @@ $hostreg    = '^[0-9a-zA-Z\._\-]*$';
 $sslreg     = '^(|\/[0-9a-zA-Z_\/\.\-]*)$';
 $commandreg = '^[0-9a-zA-Z_\/\.\-]*$';
 $addressreg = '^([0-9a-zA-Z\._\-]+|[\*]{1})$';
+$addressreg = '^([0-9a-zA-Z\._\-]+|[\*]{1})$';
 $listreg    = '^[0-9a-zA-Z_,]*$';
 $queryreg   = '^[0-9a-zA-Z; ]+$';
 $userreg    = "^[0-9a-zA-Z_\.\-]+$";
@@ -531,11 +532,13 @@ $key = 'delegate_IP';
 $pgpoolConfigParam[$key]['type'] = 'C';
 $pgpoolConfigParam[$key]['default'] = '';
 $pgpoolConfigParam[$key]['regexp'] = $addressreg;
+$pgpoolConfigParam[$key]['null_ok'] = TRUE;
 
 $key = 'wd_hostname';
 $pgpoolConfigParam[$key]['type'] = 'C';
 $pgpoolConfigParam[$key]['default'] = '';
 $pgpoolConfigParam[$key]['regexp'] = $addressreg;
+$pgpoolConfigParam[$key]['null_ok'] = TRUE;
 
 $key = 'wd_port';
 $pgpoolConfigParam[$key]['type'] = 'N';
index abeac98d1be28f95816983573e365751d67df7de..a8acdae648d648bb5294b9f2bc40d853d33c88d1 100644 (file)
@@ -436,7 +436,7 @@ function check($key, $value, &$configParam ,&$error)
             break;
 
         case 'C':
-            $result = checkString($configParam[$key], $value['regexp']);
+            $result = checkString($configParam[$key], $value);
             break;
 
         case 'F':
@@ -461,8 +461,14 @@ function check($key, $value, &$configParam ,&$error)
  */
 function checkString($str, $pattern)
 {
-    if (preg_match("/$pattern/", $str)) {
+    // NULL is OK?
+    if (empty($str) && isset($pattern['null_ok']) && $pattern['null_ok'] == TRUE) {
         return TRUE;
+
+    // regex test
+    } elseif (preg_match("/{$pattern['regexp']}/", $str)) {
+        return TRUE;
+
     } else {
         return FALSE;
     }