diff --git a/interface/lib/classes/tform.inc.php b/interface/lib/classes/tform.inc.php
index e58af0dfa09ed9cdc451b993629ef3196e09d1b1..dbaf686e113cc733e202a157ba38bd3d7e818635 100644
--- a/interface/lib/classes/tform.inc.php
+++ b/interface/lib/classes/tform.inc.php
@@ -805,6 +805,36 @@ class tform {
$this->errorMessage .= $errmsg."
\r\n";
}
}
+ break;
+ case 'ISIP':
+ //* Check if its a IPv4 or IPv6 address
+ if(function_exists('filter_var')) {
+ if(!filter_var($field_value,FILTER_VALIDATE_IP)) {
+ $errmsg = $validator['errmsg'];
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."
\r\n";
+ }
+ }
+ } else {
+ //* Check content with regex, if we use php < 5.2
+ $ip_ok = 0;
+ if(preg_match("/^(\:\:([a-f0-9]{1,4}\:){0,6}?[a-f0-9]{0,4}|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){0,6}?\:\:|[a-f0-9]{1,4}(\:[a-f0-9]{1,4}){1,6}?\:\:([a-f0-9]{1,4}\:){1,6}?[a-f0-9]{1,4})(\/\d{1,3})?$/i", $field_value)){
+ $ip_ok = 1;
+ }
+ if(preg_match("/^[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}(\.)[0-9]{1,3}$/", $field_value)){
+ $ip_ok = 1;
+ }
+ if($ip_ok == 0) {
+ $errmsg = $validator['errmsg'];
+ if(isset($this->wordbook[$errmsg])) {
+ $this->errorMessage .= $this->wordbook[$errmsg]."
\r\n";
+ } else {
+ $this->errorMessage .= $errmsg."
\r\n";
+ }
+ }
+ }
break;
case 'CUSTOM':
// Calls a custom class to validate this record
diff --git a/interface/web/admin/form/server_ip.tform.php b/interface/web/admin/form/server_ip.tform.php
index 62851daa03a8d420e6c1dbdc6e590a15c3ab7830..2832efbc4bbe14487bd3c5a91e28d3ea77686654 100644
--- a/interface/web/admin/form/server_ip.tform.php
+++ b/interface/web/admin/form/server_ip.tform.php
@@ -95,10 +95,27 @@ $form["tabs"]['server_ip'] = array (
),
'value' => ''
),
+ 'client_id' => array (
+ 'datatype' => 'INTEGER',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => 'SELECT client_id,contact_name FROM client WHERE {AUTHSQL} ORDER BY contact_name',
+ 'keyfield'=> 'client_id',
+ 'valuefield'=> 'contact_name'
+ ),
+ 'value' => array(0 => ' ')
+ ),
+ 'ip_type' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'SELECT',
+ 'default' => '',
+ 'value' => array('IPv4' => 'IPv4', 'IPv6' => 'IPv6')
+ ),
'ip_address' => array (
'datatype' => 'VARCHAR',
'formtype' => 'TEXT',
- 'validators' => array ( 0 => array ( 'type' => 'ISIPV4',
+ 'validators' => array ( 0 => array ( 'type' => 'ISIP',
'errmsg'=> 'ip_error_wrong'),
1 => array ( 'type' => 'UNIQUE',
'errmsg'=> 'ip_error_unique'),
@@ -117,6 +134,17 @@ $form["tabs"]['server_ip'] = array (
'default' => 'y',
'value' => array(0 => 'n',1 => 'y')
),
+ 'virtualhost_port' => array (
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'TEXT',
+ 'default' => '',
+ 'value' => '',
+ 'separator' => '',
+ 'width' => '15',
+ 'maxlength' => '15',
+ 'rows' => '',
+ 'cols' => ''
+ ),
##################################
# ENDE Datenbankfelder
##################################
diff --git a/interface/web/admin/lib/lang/en_server_ip.lng b/interface/web/admin/lib/lang/en_server_ip.lng
index ae4717c5383e54fda6d958eddfb952b0c87ff4c5..f67e8e82cb3270ee08bafc4ee97ff55436078426 100644
--- a/interface/web/admin/lib/lang/en_server_ip.lng
+++ b/interface/web/admin/lib/lang/en_server_ip.lng
@@ -1,7 +1,10 @@
\ No newline at end of file
diff --git a/interface/web/admin/lib/lang/en_server_ip_list.lng b/interface/web/admin/lib/lang/en_server_ip_list.lng
index 008dfc4e0032a5d3e87f248353803cffb35277a3..489967b20e8b028b6d9d13dd17ebd118e5c6d41d 100644
--- a/interface/web/admin/lib/lang/en_server_ip_list.lng
+++ b/interface/web/admin/lib/lang/en_server_ip_list.lng
@@ -1,6 +1,10 @@
\ No newline at end of file
diff --git a/interface/web/admin/list/server_ip.list.php b/interface/web/admin/list/server_ip.list.php
index d589a63bb8b604131d2c5dabd5de8b5cefedf573..10001fb11434eab03d2aafe430162768ad0a3835 100644
--- a/interface/web/admin/list/server_ip.list.php
+++ b/interface/web/admin/list/server_ip.list.php
@@ -1,4 +1,4 @@
- 'server_id',
'width' => '',
'value' => '');
+$liste['item'][] = array( 'field' => 'client_id',
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'SELECT',
+ 'op' => 'like',
+ 'prefix' => '%',
+ 'suffix' => '%',
+ 'datasource' => array ( 'type' => 'SQL',
+ 'querystring' => 'SELECT client_id,contact_name FROM client WHERE {AUTHSQL} ORDER BY contact_name',
+ 'keyfield'=> 'client_id',
+ 'valuefield'=> 'contact_name'
+ ),
+ 'width' => '',
+ 'value' => '');
+
+$liste['item'][] = array( 'field' => 'ip_type',
+ 'datatype' => 'VARCHAR',
+ 'formtype' => 'SELECT',
+ 'op' => '=',
+ 'prefix' => '',
+ 'suffix' => '',
+ 'width' => '',
+ 'value' => array('IPv4' => 'IPv4', 'IPv6' => 'IPv6'));
+
$liste['item'][] = array( 'field' => 'ip_address',
'datatype' => 'VARCHAR',
'op' => '=',
@@ -65,4 +88,21 @@ $liste['item'][] = array( 'field' => 'ip_address',
'suffix' => '',
'width' => '');
+$liste["item"][] = array( 'field' => "virtualhost",
+ 'datatype' => "VARCHAR",
+ 'formtype' => "SELECT",
+ 'op' => "=",
+ 'prefix' => "",
+ 'suffix' => "",
+ 'width' => "",
+ 'value' => array('y' => "