@@ -941,37 +941,54 @@ function validateField($field_name, $field_value, $validators) {
941941 }
942942 }
943943 break ;
944+ case 'V6PREFIXEND ' :
945+ $ explode_field_value = explode (': ' ,$ field_value );
946+ // if ($explode_field_value[count($explode_field_value)-1]=='' && $explode_field_value[count($explode_field_value)-2]=='' ){ }
947+ if (!$ explode_field_value [count ($ explode_field_value )-1 ]=='' && $ explode_field_value [count ($ explode_field_value )-2 ]!='' ) {
948+ $ errmsg = $ validator ['errmsg ' ];
949+ if (isset ($ this ->wordbook [$ errmsg ])) {
950+ $ this ->errorMessage .= $ this ->wordbook [$ errmsg ]."<br /> \r\n" ;
951+ } else {
952+ $ this ->errorMessage .= $ errmsg ."<br /> \r\n" ;
953+ }
954+ }
955+ break ;
956+ case 'V6PREFIXLENGTH ' :
957+ // find shortes ipv6 subnet can`t be longer
958+ $ sql_v6 = $ app ->db ->queryOneRecord ("SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' ORDER BY CHAR_LENGTH(ip_address) ASC LIMIT 0,1; " );
959+ $ sql_v6_explode =explode (': ' ,$ sql_v6 ['ip_address ' ]);
960+ $ explode_field_value = explode (': ' ,$ field_value );
961+ if (count ($ sql_v6_explode ) < count ($ explode_field_value ) && isset ($ sql_v6 ['ip_address ' ])) {
962+ $ errmsg = $ validator ['errmsg ' ];
963+ if (isset ($ this ->wordbook [$ errmsg ])) {
964+ $ this ->errorMessage .= $ this ->wordbook [$ errmsg ].$ sql_v6 [ip_address]."<br /> \r\n" ;
965+ } else {
966+ $ this ->errorMessage .= $ errmsg ."<br /> \r\n" ;
967+ }
968+ }
969+ break ;
944970 case 'ISV6PREFIX ' :
945- $ v6_prefix_ok = 0 ;
946- $ explode_field_value = explode (': ' , $ field_value );
971+ $ v6_prefix_ok= 0 ;
972+ $ explode_field_value = explode (': ' ,$ field_value );
947973 if ($ explode_field_value [count ($ explode_field_value )-1 ]=='' && $ explode_field_value [count ($ explode_field_value )-2 ]=='' ){
948974 if ( count ($ explode_field_value ) <= 9 ) {
949- if (filter_var (substr ($ field_value , 0 , strlen ($ field_value )-2 ), FILTER_VALIDATE_IP , FILTER_FLAG_IPV6 ) or filter_var (substr ($ field_value , 0 , strlen ($ field_value )-2 ).'::0 ' , FILTER_VALIDATE_IP , FILTER_FLAG_IPV6 ) or filter_var (substr ($ field_value , 0 , strlen ($ field_value )-2 ).':0 ' , FILTER_VALIDATE_IP , FILTER_FLAG_IPV6 ) ) {
975+ if (filter_var (substr ($ field_value ,0 , strlen ($ field_value )-2 ),FILTER_VALIDATE_IP ,FILTER_FLAG_IPV6 ) or filter_var (substr ($ field_value ,0 , strlen ($ field_value )-2 ).'::0 ' ,FILTER_VALIDATE_IP ,FILTER_FLAG_IPV6 ) or filter_var (substr ($ field_value ,0 , strlen ($ field_value )-2 ).':0 ' ,FILTER_VALIDATE_IP ,FILTER_FLAG_IPV6 ) ) {
950976 $ v6_prefix_ok = 1 ;
951977 }
952978 }
953- } else {
954- $ v6_prefix_ok = 2 ;
955979 }
956- // check subnet against defined server-ipv6
957- $ sql_v6 = $ app ->db ->queryOneRecord ("SELECT ip_address FROM server_ip WHERE ip_type = 'IPv6' AND virtualhost = 'y' LIMIT 0,1 " );
958- $ sql_v6_explode =explode (': ' , $ sql_v6 ['ip_address ' ]);
959- if ( count ($ sql_v6_explode ) < count ($ explode_field_value ) && isset ($ sql_v6 ['ip_address ' ]) ) {
960- $ v6_prefix_ok = 3 ;
961- }
962- if ($ v6_prefix_ok == 0 ) {
980+ if ($ v6_prefix_ok <> 1 ) {
963981 $ errmsg = $ validator ['errmsg ' ];
964- }
965- if ($ v6_prefix_ok == 2 ) {
966- $ errmsg = 'IPv6 Prefix must end with :: ' ;
967- }
968- if ($ v6_prefix_ok == 3 ) {
969- $ errmsg = 'IPv6 Prefix too long (according to Server IP Addresses) ' ;
970- }
971- if ($ v6_prefix_ok <> 1 ){
972- $ this ->errorMessage .= $ errmsg ."<br /> \r\n" ;
982+ if (isset ($ this ->wordbook [$ errmsg ])) {
983+ $ this ->errorMessage .= $ this ->wordbook [$ errmsg ]."<br /> \r\n" ;
984+ } else {
985+ $ this ->errorMessage .= $ errmsg ."<br /> \r\n" ;
986+ }
973987 }
974988 break ;
989+
990+
991+
975992 case 'ISIPV4 ' :
976993 $ vip =1 ;
977994 if (preg_match ("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/ " , $ field_value )){
0 commit comments