diff options
Diffstat (limited to 'config/Fit123/fit123.inc')
-rw-r--r-- | config/Fit123/fit123.inc | 298 |
1 files changed, 298 insertions, 0 deletions
diff --git a/config/Fit123/fit123.inc b/config/Fit123/fit123.inc new file mode 100644 index 00000000..646ab65f --- /dev/null +++ b/config/Fit123/fit123.inc @@ -0,0 +1,298 @@ +<?php + +function Fit123_install_deinstall() { + conf_mount_rw();
+ config_lock(); + exec("cd .."); + exec("rm -d -R /usr/local/pkg/Fit123"); + conf_mount_ro();
+ config_unlock(); +} + +function Fit123_install_config() { + conf_mount_rw();
+ config_lock(); + exec("cd .."); +//Creating backup directory + exec("mkdir /usr/local/pkg/Fit123"); + exec("mkdir /usr/local/pkg/Fit123/backup"); +//Copy orignal files to backup dir + //Date + exec("cp /usr/local/www/index.php /usr/local/pkg/Fit123/backup/"); + //Code-Red Nervecenter Theme + exec("cp /usr/local/www/themes/nervecenter/all.css /usr/local/pkg/Fit123/backup/"); + exec("cp /usr/local/www/themes/nervecenter/images/background.gif /usr/local/pkg/Fit123/backup/"); + exec("cp /usr/local/www/themes/nervecenter/images/footer.png /usr/local/pkg/Fit123/backup/"); + exec("cp /usr/local/www/themes/nervecenter/images/header.png /usr/local/pkg/Fit123/backup/"); + //LTSP network boot Option + exec("cp /etc/inc/services.inc /usr/local/pkg/Fit123/backup/"); + exec("cp /usr/local/www/services_dhcp.php /usr/local/pkg/Fit123/backup/"); + //DNS Server adds option for a 3th and 4th DNS Server + exec("cp /usr/local/www/system.php /usr/local/pkg/Fit123/backup/"); +//Greate directories and downloading files to them + //Date + exec("mkdir /usr/local/pkg/Fit123/date"); + exec("fetch -o /usr/local/pkg/Fit123/date/index.php http://www.pfsense.com/packages/config/Fit123/bin/date/index.abc"); + //Code-Red Nervecenter Theme + exec("mkdir /usr/local/pkg/Fit123/code-red"); + exec("fetch -o /usr/local/pkg/Fit123/code-red/ http://www.pfsense.com/packages/config/Fit123/bin/code-red/all.css"); + exec("fetch -o /usr/local/pkg/Fit123/code-red/ http://www.pfsense.com/packages/config/Fit123/bin/code-red/background.gif"); + exec("fetch -o /usr/local/pkg/Fit123/code-red/ http://www.pfsense.com/packages/config/Fit123/bin/code-red/footer.png"); + exec("fetch -o /usr/local/pkg/Fit123/code-red/ http://www.pfsense.com/packages/config/Fit123/bin/code-red/header.png"); + //LTSP 3th network boot Option + exec("mkdir /usr/local/pkg/Fit123/LTSP"); + exec("fetch -o /usr/local/pkg/Fit123/LTSP/ http://www.pfsense.com/packages/config/Fit123/bin/ltsp/services.inc"); + exec("fetch -o /usr/local/pkg/Fit123/LTSP/services_dhcp.php http://www.pfsense.com/packages/config/Fit123/bin/ltsp/services_dhcp.abc"); + //AFC Reset's states after filter change + exec("mkdir /usr/local/pkg/Fit123/afc"); + exec("fetch -o /usr/local/pkg/Fit123/afc/reset_states.sh http://www.pfsense.com/packages/config/Fit123/bin/afc/reset_states.sh"); + exec("chmod 744 /usr/local/pkg/Fit123/afc/reset_states.sh"); + //DDNS + exec("mkdir /usr/local/pkg/Fit123/ddns"); + //DNS Server adds option for a 3th and 4th DNS Server + exec("mkdir /usr/local/pkg/Fit123/dnssrv"); + exec("fetch -o /usr/local/pkg/Fit123/dnssrv/system.php http://www.pfsense.com/packages/config/Fit123/bin/dnssrv/system.abc"); + conf_mount_ro();
+ config_unlock(); +} + +function Fit123_config() { +global $config; + + $adddate = $config['installedpackages']['fit123']['config'][0]['adddate'];
+ if($adddate) + exec("cp /usr/local/pkg/Fit123/date/index.php /usr/local/www/index.php");
+ else + exec("cp /usr/local/pkg/Fit123/backup/index.php /usr/local/www/index.php");
+ + $codered = $config['installedpackages']['fit123']['config'][0]['codered'];
+ if($codered){
+ exec("cp /usr/local/pkg/Fit123/code-red/all.css /usr/local/www/themes/nervecenter/all.css"); + exec("cp /usr/local/pkg/Fit123/code-red/background.gif /usr/local/www/themes/nervecenter/images/background.gif"); + exec("cp /usr/local/pkg/Fit123/code-red/footer.png /usr/local/www/themes/nervecenter/images/footer.png"); + exec("cp /usr/local/pkg/Fit123/code-red/header.png /usr/local/www/themes/nervecenter/images/header.png"); + } + else + { + exec("cp /usr/local/pkg/Fit123/backup/all.css /usr/local/www/themes/nervecenter/all.css"); + exec("cp /usr/local/pkg/Fit123/backup/background.gif /usr/local/www/themes/nervecenter/images/background.gif"); + exec("cp /usr/local/pkg/Fit123/backup/footer.png /usr/local/www/themes/nervecenter/images/footer.png"); + exec("cp /usr/local/pkg/Fit123/backup/header.png /usr/local/www/themes/nervecenter/images/header.png"); + } + + $ltsp = $config['installedpackages']['fit123']['config'][0]['ltsp'];
+ if($ltsp){ + exec("cp /usr/local/pkg/Fit123/LTSP/services.inc /etc/inc/services.inc"); + exec("cp /usr/local/pkg/Fit123/LTSP/services_dhcp.php /usr/local/www/services_dhcp.php"); + } + else
+ { + exec("cp /usr/local/pkg/Fit123/backup/services.inc /etc/inc/services.inc"); + exec("cp /usr/local/pkg/Fit123/backup/services_dhcp.php /usr/local/www/services_dhcp.php"); + } + + $afc = $config['installedpackages']['fit123']['config'][0]['afc']; + if($afc) + $config['system']['afterfilterchangeshellcmd'] = "/usr/local/bin/reset_states.sh"; + else + $config['system']['afterfilterchangeshellcmd'] = ""; + + $dnssrv = $config['installedpackages']['fit123']['config'][0]['dnssrv'];
+ if($dnssrv) + exec("cp /usr/local/pkg/Fit123/dnssrv/system.php /usr/local/www/system.php");
+ else + exec("cp /usr/local/pkg/Fit123/backup/system.php /usr/local/www/system.php"); +} + +function ddns_config(){ +global $config; + +// Is DDNS enable or not + $hoba = $config['installedpackages']['ddns']['config'][0]['enable']; + if($hoba){ + // Is DDNS.sh already added as a conjob + $task_key = '/usr/local/pkg/Fit123/ddns/DDNS.sh'; + $x_name=''; + $x=0; + foreach($config['cron']['item'] as $item) { + if($item['command']==$task_key) { + $x_name = $x; + } + $x++; + } + unset($x); + if(!$x_name > 0) + { + // Add cron job DDNS.sh to config.xml + $cron_item = array(); + $cron_item['minute'] = "*/5"; + $cron_item['hour'] = "*"; + $cron_item['mday'] = "*"; + $cron_item['month'] = "*"; + $cron_item['wday'] = "*"; + $cron_item['who'] = "root"; + $cron_item['command'] = "/usr/local/pkg/Fit123/ddns/DDNS.sh"; + $config['cron']['item'][] = $cron_item; + write_config(); + configure_cron(); + } + } + else + { + // Remove DDNS.sh cron entry from config.xml + $task_key = '/usr/local/pkg/Fit123/ddns/DDNS.sh'; + $x_name=''; + $x=0; + foreach($config['cron']['item'] as $item) { + if($item['command']==$task_key) { + $x_name = $x; + } + $x++; + } + unset($x); + if($x_name > 0) + { + unset($config['cron']['item'][$x_name]); + write_config(); + } + configure_cron(); + } + +// Created DDNS updater file ddns.php + + //Get user entry from config.xml + $line1text = $config['installedpackages']['ddns']['config'][0]['line1']; + $line2text = $config['installedpackages']['ddns']['config'][0]['line2']; + $line3text = $config['installedpackages']['ddns']['config'][0]['line3']; + + // Open ddns.php for writing + $hf = fopen("/usr/local/pkg/Fit123/ddns/ddns.php","w"); + if(!$hf) { + log_error("could not open /usr/local/pkg/Fit123/ddns/ddns.php for writing"); + exit; + } + + // The start of the config file + fwrite($hf, '<?php'); + fwrite($hf, "\n"); + fwrite($hf, '$ch = curl_init();'); + fwrite($hf, "\n"); + fwrite($hf, 'curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);'); + fwrite($hf, "\n"); + // add to config file + if ($line1text != ""){ + fwrite($hf, 'curl_setopt($ch, CURLOPT_URL, "'); + fwrite($hf, $line1text); + fwrite($hf, '");'); + fwrite($hf, "\n"); + fwrite($hf, '$result = curl_exec($ch);'); + fwrite($hf, "\n"); + } + if ($line2text != ""){ + fwrite($hf, 'curl_setopt($ch, CURLOPT_URL, "'); + fwrite($hf, $line2text); + fwrite($hf, '");'); + fwrite($hf, "\n"); + fwrite($hf, '$result = curl_exec($ch);'); + fwrite($hf, "\n"); + } + if ($line3text != ""){ + fwrite($hf, 'curl_setopt($ch, CURLOPT_URL, "'); + fwrite($hf, $line3text); + fwrite($hf, '");'); + fwrite($hf, "\n"); + fwrite($hf, '$result = curl_exec($ch);'); + fwrite($hf, "\n"); + } + // The end of the config file + fwrite($hf, 'curl_close ($ch);'); + fwrite($hf, "\n"); + fwrite($hf, '?>'); + fwrite($hf, "\n"); + fclose($hf); + +// Create local shell script to watch for wan ip change + + // Get WAN nic name from config.xml + $wannic = $config['interfaces']['wan']['if']; + + //Open DDNS.sh for writing + $hfd = fopen("/usr/local/pkg/Fit123/ddns/DDNS.sh","w"); + if(!$hfd) { + log_error("could not open /usr/local/pkg/Fit123/ddns/DDNS.sh for writing"); + exit; + } + // The start of the config file + fwrite($hfd, '#!/bin/sh'); + fwrite($hfd, "\n"); + fwrite($hfd, 'ext_if="'); + fwrite($hfd, $wannic); + fwrite($hfd, '"'); + fwrite($hfd, "\n"); + fwrite($hfd, 'dns_file="/usr/local/pkg/Fit123/ddns/DDNS.ip"'); + fwrite($hfd, "\n"); + fwrite($hfd, 'update_file="/usr/local/bin/php /usr/local/pkg/Fit123/ddns/ddns.php"'); + fwrite($hfd, "\n"); + fwrite($hfd, 'EXIT_SUCCESS=0'); + fwrite($hfd, "\n"); + fwrite($hfd, 'EXIT_FAILURE=1'); + fwrite($hfd, "\n"); + fwrite($hfd, 'if [ `id -u` -ne 0 ]'); + fwrite($hfd, "\n"); + fwrite($hfd, 'then'); + fwrite($hfd, "\n"); + fwrite($hfd, ' echo "Only root may run this program."'); + fwrite($hfd, "\n"); + fwrite($hfd, ' exit $EXIT_FAILURE'); + fwrite($hfd, "\n"); + fwrite($hfd, 'fi'); + fwrite($hfd, "\n"); + fwrite($hfd, 'get_ip(){'); + fwrite($hfd, "\n"); + fwrite($hfd, ' if [ -f $dns_file ]'); + fwrite($hfd, "\n"); + fwrite($hfd, ' then'); + fwrite($hfd, "\n"); + fwrite($hfd, ' registered_ip=`cat ${dns_file}`'); + fwrite($hfd, "\n"); + fwrite($hfd, ' else'); + fwrite($hfd, "\n"); + fwrite($hfd, ' registered_ip=""'); + fwrite($hfd, "\n"); + fwrite($hfd, ' fi'); + fwrite($hfd, "\n"); + fwrite($hfd, ' current_ip=`ifconfig ${ext_if} | awk '); + fwrite($hfd, "'"); + fwrite($hfd, '/inet / { print $2 }'); + fwrite($hfd, "'"); + fwrite($hfd, '`'); + fwrite($hfd, "\n"); + fwrite($hfd, '}'); + fwrite($hfd, "\n"); + fwrite($hfd, 'update_hosts(){'); + fwrite($hfd, "\n"); + fwrite($hfd, ' if [ "$registered_ip" != "$current_ip" ]'); + fwrite($hfd, "\n"); + fwrite($hfd, ' then'); + fwrite($hfd, "\n"); + fwrite($hfd, ' $update_file'); + fwrite($hfd, "\n"); + fwrite($hfd, ' echo $current_ip > $dns_file'); + fwrite($hfd, "\n"); + fwrite($hfd, ' echo "Your DDNS records have been updated" | logger'); + fwrite($hfd, "\n"); + fwrite($hfd, ' fi'); + fwrite($hfd, "\n"); + fwrite($hfd, '}'); + fwrite($hfd, "\n"); + fwrite($hfd, 'get_ip'); + fwrite($hfd, "\n"); + fwrite($hfd, 'update_hosts'); + fwrite($hfd, "\n"); + fwrite($hfd, 'exit $EXIT_SUCCESS'); + fwrite($hfd, "\n"); + fclose($hfd); + + exec("chmod 744 /usr/local/pkg/Fit123/ddns/DDNS.sh"); +} +?> |