.
*
* Version 0.1
* Author: Octavio Benedi Sanchez
*/
// Predefined variables:
// $section contains the section folder name.
// echo "section=".$section."
";
// $plugin contains the plugin folder name.
// echo "plugin=".$plugin."
";
// $section and $plugin can be used to make a link to this plugin by just reference
// echo "This plugin"."
";
// $base_plugin contains the path that must be used as start to includes for
// plugin includes that need the local path.
// example: include_once $base_plugin.'php/my_include.php';
// echo "base_plugin=".$base_plugin."
";
// $url_plugin contains the url base that must be used to include html items
// such as images.
// example:
// echo "url_plugin=".$url_plugin."
";
// $API_core contains the path to the core API folder.
// example: include_once $API_core.'is_active.php';
// echo "API_core=".$API_core."
";
// Plugin server produced data will returned to the ajax call that made the
// request.
include_once $API_core.'complex_ajax_return_functions.php';
include_once $API_core.'json_api.php';
include_once $API_core.'parser_dhcp_server_new.php';
include_once $API_core.'save_dhcp_server_new.php';
include_once $API_core.'common_validators.php';
include_once $API_core.'auto_code_generators.php';
include_once $base_plugin.'php/interface_generator.php';
function check_data($dhcp_configuration)
{
global $error;
if (($dhcp_configuration['dhcp_server_eth0'])&&((!is_ip($dhcp_configuration['dhcp_start_eth0']))||(!is_ip($dhcp_configuration['dhcp_end_eth0']))||(!is_numeric($dhcp_configuration['dhcp_expire_eth0']))))
{
unset ($dhcp_configuration['dhcp_server_eth0']);
$error=true;
}
if (($dhcp_configuration['dhcp_server_ath0'])&&((!is_ip($dhcp_configuration['dhcp_start_ath0']))||(!is_ip($dhcp_configuration['dhcp_end_ath0']))||(!is_numeric($dhcp_configuration['dhcp_expire_ath0']))))
{
unset ($dhcp_configuration['dhcp_server_ath0']);
$error=true;
}
if (($dhcp_configuration['dhcp_server_ath1'])&&((!is_ip($dhcp_configuration['dhcp_start_ath1']))||(!is_ip($dhcp_configuration['dhcp_end_ath1']))||(!is_numeric($dhcp_configuration['dhcp_expire_ath1']))))
{
unset ($dhcp_configuration['dhcp_server_ath1']);
$error=true;
}
return $dhcp_configuration;
}
function merge($new_configuration,$old_configuration,$current_interface)
{
foreach($old_configuration as $interface =>$array)
{
$return['dhcp_server_'.$interface] = 'on';
$return['dhcp_start_'.$interface] = $old_configuration[$interface]['start'];
$return['dhcp_end_'.$interface] = $old_configuration[$interface]['end'];
$return['dhcp_expire_'.$interface] = $old_configuration[$interface]['expiration'];
}
$return['dhcp_server_'.$current_interface] = $new_configuration['dhcp_server_'.$current_interface] ;
$return['dhcp_start_'.$current_interface] = $new_configuration['dhcp_start_'.$current_interface] ;
$return['dhcp_end_'.$current_interface] = $new_configuration['dhcp_end_'.$current_interface] ;
$return['dhcp_expire_'.$current_interface] = $new_configuration['dhcp_expire_'.$current_interface] ;
return $return;
}
if (($_POST['type']=="save")||($_POST['type']=="save_restart"))
{
$error=false;
$entries=parse_dhcp_server($_POST['interface']);
$dhcp_configuration=jsondecode($_POST['form_fields']);
$dhcp_configuration=check_data($dhcp_configuration);
$dhcp_configuration=merge($dhcp_configuration,$entries,$_POST['interface']);
//response_additem("html",$_POST['interface']."
".print_r($entries,true).print_r($dhcp_configuration,true).print_r($dhcp_configuration2,true)."",'interface'); if (!$error) { save_dhcp_server($dhcp_configuration); exec ('sudo cp '.$base_plugin.'data/dnsmasq.more.conf /etc/dnsmasq.more.conf'); if ($_POST['type']=="save_restart") { exec ('sudo /etc/init.d/dnsmasq restart'); } response_additem("script", 'alert("Data saved");data_changed=false;'); } else { response_additem("script", 'alert("Configuration is not saved due to invalid values.")'); } response_return(); } elseif ($_POST['type']=="load_interface") { $_POST['interface']=trim($_POST['interface']); if(!empty($_POST['interface'])) { $entries=parse_dhcp_server($_POST['interface']); response_additem("html", make_input($_POST['interface'],$entries),'interface'); } else { response_additem("html", '','interface'); } response_return(); } ?>