* This program is free software: you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation, either version 3 of the License, or * (at your option) any later version. * * This program is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with this program. If not, see . */ /** * Merge config function * @author f0o * @copyright 2015 f0o, LibreNMS * @license GPL * @package LibreNMS * @subpackage Config */ function mergecnf($obj) { $pointer = array(); $val = $obj['config_value']; $obj = $obj['config_name']; $obj = explode('.',$obj,2); if( !isset($obj[1]) ) { if( filter_var($val,FILTER_VALIDATE_INT) ) { $val = (int) $val; } elseif( filter_var($val,FILTER_VALIDATE_FLOAT) ) { $val = (float) $val; } elseif( filter_var($val,FILTER_VALIDATE_BOOLEAN,FILTER_NULL_ON_FAILURE) !== NULL ) { $val = filter_var($val,FILTER_VALIDATE_BOOLEAN); } if( !empty($obj[0]) ) { return array($obj[0] => $val); } else { return array($val); } } else { $pointer[$obj[0]] = mergecnf(array('config_name'=>$obj[1],'config_value'=>$val)); } return $pointer; }