Skip to content

Commit b01718a

Browse files
author
Marius Burkard
committed
Merge branch 'master' into 'stable-3.1'
Master See merge request !287
2 parents 7d2d677 + 99fcaa5 commit b01718a

File tree

4 files changed

+65
-4
lines changed

4 files changed

+65
-4
lines changed
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
<?php
2+
3+
/**
4+
Copyright (c) 2016, Florian Schaal, schaal @it
5+
All rights reserved.
6+
7+
Redistribution and use in source and binary forms, with or without modification,
8+
are permitted provided that the following conditions are met:
9+
10+
* Redistributions of source code must retain the above copyright notice,
11+
this list of conditions and the following disclaimer.
12+
* Redistributions in binary form must reproduce the above copyright notice,
13+
this list of conditions and the following disclaimer in the documentation
14+
and/or other materials provided with the distribution.
15+
* Neither the name of ISPConfig nor the names of its contributors
16+
may be used to endorse or promote products derived from this software without
17+
specific prior written permission.
18+
19+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" AND
20+
ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
21+
WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
22+
IN NO EVENT SHALL THE COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
23+
INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
24+
BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE,
25+
DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY
26+
OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
27+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE,
28+
EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
29+
30+
@author Florian Schaal, info@schaal-24.de
31+
*/
32+
33+
34+
class validate_server {
35+
36+
function get_error($errmsg) {
37+
global $app;
38+
if(isset($app->tform->wordbook[$errmsg])) {
39+
return $app->tform->wordbook[$errmsg]."<br>\r\n";
40+
} else {
41+
return $errmsg."<br>\r\n";
42+
}
43+
}
44+
45+
/**
46+
* Validator function for server-ip
47+
*/
48+
function check_server_ip($field_name, $field_value, $validator) {
49+
if($_POST['ip_type'] == 'IPv4') {
50+
if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV4)) {
51+
return $this->get_error($validator['errmsg']);
52+
}
53+
} elseif ($_POST['ip_type'] == 'IPv6') {
54+
if(!filter_var($field_value, FILTER_VALIDATE_IP, FILTER_FLAG_IPV6)) {
55+
return $this->get_error($validator['errmsg']);
56+
}
57+
} else return $this->get_error($validator['errmsg']);
58+
}
59+
60+
}
61+

interface/web/admin/form/server_ip.tform.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -121,7 +121,7 @@
121121
'ip_address' => array (
122122
'datatype' => 'VARCHAR',
123123
'formtype' => 'TEXT',
124-
'validators' => array ( 0 => array ( 'type' => 'ISIP',
124+
'validators' => array ( 0 => array ( 'type' => 'CUSTOME', 'class' => 'validate_server', 'function' => 'check_server_ip',
125125
'errmsg'=> 'ip_error_wrong'),
126126
1 => array ( 'type' => 'UNIQUE',
127127
'errmsg'=> 'ip_error_unique'),

interface/web/admin/form/server_ip_map.tform.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -69,7 +69,7 @@
6969
'datatype' => 'VARCHAR',
7070
'formtype' => 'TEXT',
7171
'validators' => array (
72-
0 => array ( 'type' => 'ISIP', 'errmsg'=> 'ip_error_wrong'),
72+
0 => array ( 'type' => 'ISIPV4', 'errmsg'=> 'ip_error_wrong'),
7373
1 => array ( 'type' => 'NOTEMPTY', 'errmsg'=> 'destination_ip_empty'),
7474
),
7575
'default' => '',

server/plugins-available/network_settings_plugin.inc.php

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ function update($event_name, $data) {
110110
/*
111111
* don't insert the main-ip again!
112112
*/
113-
if ($rec['ip_address'] != $server_config['ip_address'])
113+
if ($rec['ip_address'] != $server_config['ip_address'] && filter_var($rec['ip_address'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4))
114114
{
115115
$ip_records[$n] = array(
116116
'id' => $n,
@@ -188,7 +188,7 @@ function update($event_name, $data) {
188188
/*
189189
* don't insert the main-ip again!
190190
*/
191-
if ($rec['ip_address'] != $server_config['ip_address'])
191+
if ($rec['ip_address'] != $server_config['ip_address'] && filter_var($rec['ip_address'], FILTER_VALIDATE_IP, FILTER_FLAG_IPV4))
192192
{
193193
$ip_records[$n] = array(
194194
'id' => $n,

0 commit comments

Comments
 (0)