Improve parsing of firewall rules

This commit is contained in:
steve-lad 2021-07-30 14:05:00 +02:00
parent 1338336dd9
commit e8cabfbd1a
4 changed files with 19 additions and 19 deletions

View file

@ -218,7 +218,7 @@ and open the template in the editor. Base Version before all crash :-)
<label>Device Connect Address / Name </label> <label>Device Connect Address / Name </label>
<name>ccm_address</name> <name>ccm_address</name>
<cbutton field="internal" value="internal">Internal</cbutton> <cbutton field="internal" value="internal">Internal</cbutton>
<default>0.0.0.0/2000</default> <default>0.0.0.0:2000</default>
<input value="NONE" field="ip" nameseparator=":"> <input value="NONE" field="ip" nameseparator=":">
<options placeholder="0.0.0.0 / pbx.org"/> <options placeholder="0.0.0.0 / pbx.org"/>
<class></class> <class></class>

View file

@ -1,7 +1,7 @@
<module> <module>
<rawname>sccp_manager</rawname> <rawname>sccp_manager</rawname>
<name>SCCP Manager</name> <name>SCCP Manager</name>
<version>14.3.0.1</version> <version>14.3.0.0</version>
<type>setup</type> <type>setup</type>
<category>SCCP Connectivity</category> <category>SCCP Connectivity</category>
<publisher>Steve Lad, Alex GP</publisher> <publisher>Steve Lad, Alex GP</publisher>

View file

@ -213,7 +213,6 @@ class formcreate
} }
if (empty($res_value)) { if (empty($res_value)) {
$res_value = array((string) $child->default); $res_value = array((string) $child->default);
// $res_value = explode('/', (string) $child->default);
} }
?> ?>
<div class="element-container"> <div class="element-container">
@ -280,17 +279,19 @@ class formcreate
?> ?>
<div class = "<?php echo $res_id;?> form-group form-inline" data-nextid=<?php echo $i+1;?> > <div class = "<?php echo $res_id;?> form-group form-inline" data-nextid=<?php echo $i+1;?> >
<?php <?php
$res_vf = explode('/', $dat_v); //$res_vf = explode('/', $dat_v);
$i2 = 0; $i2 = 0;
foreach ($child->xpath('input') as $value) { foreach ($child->xpath('input') as $value) {
$res_n = $res_id.'['.$i.']['.$value['field'].']'; $res_n = $res_id.'['.$i.']['.$value['field'].']';
$fields_id = (string)$value['field']; $fields_id = (string)$value['field'];
$opt_at[$fields_id]['nameseparator']=(string)$value['nameseparator']; //$opt_at[$fields_id]['nameseparator']=(string)$value['nameseparator'];
if (!empty($value->class)) { if (!empty($value->class)) {
$opt_at[$fields_id]['class']='form-control ' .(string)$value->class; $opt_at[$fields_id]['class']='form-control ' .(string)$value->class;
} }
$opt_at[$fields_id]['nameseparator']=(string)$value['nameseparator']; //$opt_at[$fields_id]['nameseparator']=(string)$value['nameseparator'];
if (!empty((string)$value['nameseparator'])) {
$res_vf = explode((string)$value['nameseparator'], $dat_v);
}
echo '<input type="text" name="'. $res_n.'" class="'.$opt_at[$fields_id]['class'].'" value="'.$res_vf[$i2].'"'; echo '<input type="text" name="'. $res_n.'" class="'.$opt_at[$fields_id]['class'].'" value="'.$res_vf[$i2].'"';
if (isset($value->options)) { if (isset($value->options)) {
foreach ($value->options ->attributes() as $optkey => $optval) { foreach ($value->options ->attributes() as $optkey => $optval) {

View file

@ -415,6 +415,7 @@ trait ajaxHelper {
} }
function handleSubmit($request, $validateonly = false) { function handleSubmit($request, $validateonly = false) {
dbug($request);
$hdr_prefix = 'sccp_'; $hdr_prefix = 'sccp_';
$hdr_arprefix = 'sccp-ar_'; $hdr_arprefix = 'sccp-ar_';
$save_settings = array(); $save_settings = array();
@ -477,29 +478,27 @@ trait ajaxHelper {
$arr_data = ''; $arr_data = '';
if (!empty($this->sccpvalues[$key])) { if (!empty($this->sccpvalues[$key])) {
foreach ($value as $vkey => $vval) { foreach ($value as $vkey => $vval) {
$tmp_data = ''; //$tmp_data = '';
foreach ($vval as $vkey => $vval) { foreach ($vval as $vkey => $vval) {
switch ($vkey) { switch ($vkey) {
case 'inherit': case 'inherit':
case 'internal': case 'internal':
if ($vval == 'on') { if ($vval == 'on') {
$tmp_data .= 'internal;'; $arr_data .= 'internal;';
} }
break; break;
case 'port':
$arr_data .= ":{$vval}";
break;
case 'mask':
$arr_data .= "/{$vval}";
break;
default: default:
$tmp_data .= $vval . '/'; $arr_data .= $vval;
break; break;
} }
} }
if (strlen($tmp_data) > 2) { //$arr_data .= $tmp_data;
while (substr($tmp_data, -1) == '/') {
$tmp_data = substr($tmp_data, 0, -1);
}
$arr_data .= $tmp_data . ';';
}
}
while (substr($arr_data, -1) == ';') {
$arr_data = substr($arr_data, 0, -1);
} }
if (!($this->sccpvalues[$key]['data'] == $arr_data)) { if (!($this->sccpvalues[$key]['data'] == $arr_data)) {
$save_settings[$key] = array( $save_settings[$key] = array(