0) { conf_mount_rw(); $ent = array(); if ($_POST['enable'] == 1) { //echo "enabled"; $config['installedpackages']['countryblock_settings']['config'][0]['enable'] = 1; //touch countries-white.txt to fix bug exec("touch /usr/local/www/packages/countryblock/countries-white.txt"); //Process list by downloading and extracting $myFile = "countries.txt"; $fileContents = file_get_contents($myFile); $lines = explode(PHP_EOL, $fileContents); //Remove DIR lists to eliminate duplates exec("rm -R lists"); //Process each list URL, Extract, and put in DIR lists exec("mkdir lists"); foreach ($lines as $line) { //echo("fetch -o lists http://www.countryipblocks.net/e_country_data/{$line}_cidr.txt"); //Fetch countries from server //exec("fetch -o lists/temp http://127.0.0.1//packages/countryblock/CIDR/{$line}_cidr.txt"); //Pull from local file since https or http on other ports may be used exec("cat CIDR/{$line}_cidr.txt >> lists/countries.txt"); //exec("fetch -o lists/temp http://www.countryipblocks.net/e_country_data/{$line}_cidr.txt"); //Remove cat lists/temp since fetch is not used //Thank you g4m3c4ck, 'He got a real pretty mouth ain't he', 1 Feb 2011 //exec("cat lists/temp >> lists/countries.txt"); $filename = basename($line); //Extract list //exec("gzip -d lists/$filename"); } //Prep pfctl mwexec("rm lists/temp"); //mwexec("touch lists/ipfw.ipfw"); //Now clear ipfw, and process each list to ipfw commands //mwexec("pfctl -t countryblock -T kill"); //mwexec("sed -i -e '/countryblock/d' /tmp/rules.debug"); mwexec("sh execute.sh"); //attempt to create a backup of countries.txt mwexec("cp /usr/local/www/packages/countryblock/countries.txt /usr/local/www/packages/countryblock_bkup/countries.txt"); } else { //echo "disabled"; $config['installedpackages']['countryblock_settings']['config'][0]['enable'] = 0; //Clear Lists mwexec("pfctl -t countryblock -T kill"); mwexec("rm -R /usr/local/www/packages/countryblock/lists"); mwexec("sed -i -e '/countryblock/d' /tmp/rules.debug"); mwexec("pfctl -o basic -f /tmp/rules.debug"); //Clear errorOUT.txt mwexec("rm errorOUT.txt"); } //write_config(); //services_dnsmasq_configure(); sleep(1); $savemsg_cb = "Country Block settings have been saved/updated. "; conf_mount_ro(); } ?>