#!/usr/bin/php-cgi
<?php
/*************************************************************************88
ALLOW IP 
--------
Allow IP even if no internet

AUTHOR: JOSE MARI REYES

HISTORY:

    	09-15-2017      	REDPORT VERSION
		12-07-2017		Fixed Parsing
		11/21/2018		Additional -w switch on iptables
     	01/23/2020		Rebooting removed
	
****************************************************************************/
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Origin: *");
header("Access-Control-Allow-Origin: *");

define("ALLOW_URL_FP", "/etc/chilli/allowd_url");
define("CONFIG", "/etc/init.d/chilli");
define("ALIAS_FILE", "/etc/smsg/allowip.set");
define("FIREWALL_FILE", "/etc/smsg/firesmsg");		


	
	if (isset($_REQUEST['set']))
	{
		$ips = $_REQUEST['set'];
		
		file_put_contents(ALIAS_FILE, $ips); //save to alias file
		
		$ips = explode("|", $ips);
		
		$ipl = filter_save_firewall($ips[0]);
		save_allowed_ip($ipl);
		save_to_config_redport($ipl);		
		exit;
	}	
	
	//get_allowed_ip();
	$v = file_get_contents(ALIAS_FILE);
	echo $v;	
	
	exit;



function filter_save_firewall($ips)
{

	$ipl = explode(';', $ips);
	
	$ips = "";
	
	for ($i = 0; $i < count($ipl); $i++)
	{
		if (strpos($ipl[$i], ":") > 0)
		{
			$v = explode(":", $ipl[$i]);
			$ip = $v[0];
			$port = $v[1];
			
			$exemp = "iptables -w -I delegate_forward -s $ip -p tcp --sport $port -j ACCEPT\n";
        	 	$exemp .= "iptables -w -I delegate_forward -d $ip -p tcp --dport $port -j ACCEPT\n";
			file_put_contents(FIREWALL_FILE, $exemp, FILE_APPEND);
			
			$ips .= $ip . ",";
		}	
		else
			$ips .= $ipl[$i] . ",";
						
	}
	 
	
	return trim($ips, ",");

}



function save_to_config_redport($ips)
{
	$ret = file_get_contents(CONFIG);
	$ret = explode("\n", $ret);
	
	$iplist = str_replace(';', ",", $ips);
	
	//echo "<pre>";
	//print_r($ret);
    	$conf = "";
	
	for ($i = 0; $i < count($ret); $i++)
	{
		if (strpos($ret[$i], "uamallow") !== false)
		{ 
			//echo $ret[$i];
			$conf .= "\tchilli_list \"$1\" uamallow \"redportglobal.com, $iplist\" >> " . '$CFGFILE' . "\n";
		}
		else
			$conf .= $ret[$i] . "\n";
			
	}
	
	
	//echo "$conf</pre>";
	file_put_contents(CONFIG, $conf);
	
}




function save_allowed_ip($ips)
{
	$v = str_replace(';', "\n", $ips);
	file_put_contents(ALLOW_URL_FP, $v);
}

function get_allowed_ip()
{
	
	$v = file_get_contents(ALLOW_URL_FP);
	$v = str_replace("\n", ";", $v);
	echo $v;
	
}
	

?> 
