aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--config/Fit123/cass.xml59
-rw-r--r--config/Fit123/ddns.xml38
-rw-r--r--config/Fit123/fit123.inc143
-rw-r--r--config/Fit123/fit123.xml6
-rwxr-xr-xpkg_config.7.xml7
5 files changed, 228 insertions, 25 deletions
diff --git a/config/Fit123/cass.xml b/config/Fit123/cass.xml
new file mode 100644
index 00000000..7d4fcf05
--- /dev/null
+++ b/config/Fit123/cass.xml
@@ -0,0 +1,59 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE packagegui SYSTEM "../schema/packages.dtd">
+<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
+<packagegui>
+ <copyright></copyright>
+ <description>Describe your package here</description>
+ <requirements>Describe your package requirements here</requirements>
+ <faq>Currently there are no FAQ items provided.</faq>
+ <name>cass</name>
+ <title>CASS</title>
+ <include_file>/usr/local/pkg/fit123.inc</include_file>
+ <tabs>
+ <tab>
+ <text>Fit123</text>
+ <url>/pkg_edit.php?xml=fit123.xml&amp;id=0</url>
+ <active/>
+ </tab>
+ <tab>
+ <text>DDNS</text>
+ <url>/pkg_edit.php?xml=ddns.xml&amp;id=0</url>
+ </tab>
+ <tab>
+ <text>CASS</text>
+ <url>/pkg_edit.php?xml=cass.xml&amp;id=0</url>
+ </tab>
+ </tabs>
+ <fields>
+ <field>
+ <fielddescr>Clear a single state</fielddescr>
+ <fieldname>cass2</fieldname>
+ <description>
+ When your dynamic ip on wan changes, the states of your voip phone needs to be cleared. </description>
+ <type>checkbox</type>
+ </field>
+ <field>
+ <fielddescr>Your phone ip address</fielddescr>
+ <fieldname>ypia</fieldname>
+ <description>
+ </description>
+ <type>input</type>
+ <size>15</size>
+ </field>
+ <field>
+ <fielddescr>IP address of your VOIP </fielddescr>
+ <fieldname>iaoyv</fieldname>
+ <description>
+ </description>
+ <type>input</type>
+ <size>15</size>
+ </field>
+ </fields>
+ <custom_add_php_command></custom_add_php_command>
+ <custom_php_command_before_form>cass_config();</custom_php_command_before_form>
+ <custom_php_after_form_command></custom_php_after_form_command>
+ <custom_php_validation_command></custom_php_validation_command>
+ <custom_php_resync_config_command></custom_php_resync_config_command>
+ <custom_php_install_command>Fit123_install_config();</custom_php_install_command>
+ <custom_php_deinstall_command>Fit123_install_deinstall();</custom_php_deinstall_command>
+</packagegui>
diff --git a/config/Fit123/ddns.xml b/config/Fit123/ddns.xml
index ea461254..09b34669 100644
--- a/config/Fit123/ddns.xml
+++ b/config/Fit123/ddns.xml
@@ -6,28 +6,32 @@
<description>Describe your package here</description>
<requirements>Describe your package requirements here</requirements>
<faq>Currently there are no FAQ items provided.</faq>
- <name>ddns</name>
- <title>DDNS</title>
- <include_file>/usr/local/pkg/fit123.inc</include_file>
- <tabs>
- <tab>
- <text>Fit123</text>
- <url>/pkg_edit.php?xml=fit123.xml&amp;id=0</url>
- <active/>
+ <name>ddns</name>
+ <title>DDNS</title>
+ <include_file>/usr/local/pkg/fit123.inc</include_file>
+ <tabs>
+ <tab>
+ <text>Fit123</text>
+ <url>/pkg_edit.php?xml=fit123.xml&amp;id=0</url>
+ <active/>
</tab>
- <tab>
- <text>DDNS</text>
- <url>/pkg_edit.php?xml=ddns.xml&amp;id=0</url>
+ <tab>
+ <text>DDNS</text>
+ <url>/pkg_edit.php?xml=ddns.xml&amp;id=0</url>
</tab>
- </tabs>
- <fields>
- <field>
- <fielddescr>Dynamic DNS</fielddescr>
- <fieldname>enable</fieldname>
+ <tab>
+ <text>CASS</text>
+ <url>/pkg_edit.php?xml=cass.xml&amp;id=0</url>
+ </tab>
+ </tabs>
+ <fields>
+ <field>
+ <fielddescr>Dynamic DNS</fielddescr>
+ <fieldname>enable</fieldname>
<description>
A more customize way to update dynamic dns and mainly for IP's that doesn't change very often.&lt;br&gt;
Will check for ip change every 5 min via local shell script and will only contact provider on change.&lt;br&gt;
- </description>
+ </description>
<type>checkbox</type>
</field>
<field>
diff --git a/config/Fit123/fit123.inc b/config/Fit123/fit123.inc
index fb3ed8d4..f8e5bab3 100644
--- a/config/Fit123/fit123.inc
+++ b/config/Fit123/fit123.inc
@@ -14,8 +14,8 @@ function Fit123_install_config() {
config_lock();
exec("cd ..");
//Adding new themes
- exec("tar -zxovf /usr/local/pkg/code-red.tar.gz");
- exec("mv code-red /usr/local/www/themes/code-red");
+// exec("tar -zxovf /usr/local/pkg/code-red.tar.gz");
+// exec("mv code-red /usr/local/www/themes/code-red");
//Creating backup directory
exec("mkdir /usr/local/pkg/Fit123");
exec("mkdir /usr/local/pkg/Fit123/backup");
@@ -23,8 +23,8 @@ function Fit123_install_config() {
//Date
exec("cp /usr/local/www/index.php /usr/local/pkg/Fit123/backup/");
//Captive Portal Add-On
- exec("cp /etc/inc/filter.inc /usr/local/pkg/Fit123/backup/");
- exec("cp /usr/local/www/services_captiveportal.php /usr/local/pkg/Fit123/backup/");
+// exec("cp /etc/inc/filter.inc /usr/local/pkg/Fit123/backup/");
+// exec("cp /usr/local/www/services_captiveportal.php /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/");
@@ -99,6 +99,141 @@ global $config;
exec("cp /usr/local/pkg/Fit123/backup/system.php /usr/local/www/system.php");
}
+function cass_config(){
+global $config;
+// Is CASS enable or not
+ $hoba2 = $config['installedpackages']['cass']['config'][0]['cass2'];
+ if($hoba2){
+ // Is CASS.sh already added as a conjob
+ $task_key = '/usr/local/pkg/Fit123/CASS.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 CASS.sh to config.xml
+ $cron_item = array();
+ $cron_item['minute'] = "*/1";
+ $cron_item['hour'] = "*";
+ $cron_item['mday'] = "*";
+ $cron_item['month'] = "*";
+ $cron_item['wday'] = "*";
+ $cron_item['who'] = "root";
+ $cron_item['command'] = "/usr/local/pkg/Fit123/CASS.sh";
+ $config['cron']['item'][] = $cron_item;
+ write_config();
+ configure_cron();
+ }
+ }
+ else
+ {
+ // Remove CASS.sh cron entry from config.xml
+ $task_key = '/usr/local/pkg/Fit123/CASS.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();
+}
+
+// Create local shell script to watch for wan ip change
+ $local_voip = $config['installedpackages']['cass']['config'][0]['ypia'];
+ $voip_p = $config['installedpackages']['cass']['config'][0]['iaoyv'];
+
+ //Open CASS.sh for writing
+ $hfd = fopen("/usr/local/pkg/Fit123/CASS.sh","w");
+ if(!$hfd) {
+ log_error("could not open /usr/local/pkg/Fit123/CASS.sh for writing");
+ exit;
+ }
+ // The start of the config file
+ fwrite($hfd, '#!/bin/sh');
+ fwrite($hfd, "\n");
+ fwrite($hfd, 'lip="');
+ fwrite($hfd, $local_voip);
+ fwrite($hfd, '"');
+ fwrite($hfd, "\n");
+ fwrite($hfd, 'rip="');
+ fwrite($hfd, $voip_p);
+ fwrite($hfd, '"');
+ fwrite($hfd, "\n");
+ fwrite($hfd, 'dns_file="/usr/local/pkg/Fit123/CASS.ip"');
+ 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=`fetch -qo- http://jackson.io/ip/`');
+ 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, ' /sbin/pfctl -k $lip -k $rip');
+ fwrite($hfd, "\n");
+ fwrite($hfd, ' echo $current_ip > $dns_file');
+ fwrite($hfd, "\n");
+ fwrite($hfd, ' echo "WAN ip address changed, clearing states entries.." | 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/CASS.sh");
+}
+
function ddns_config(){
global $config;
diff --git a/config/Fit123/fit123.xml b/config/Fit123/fit123.xml
index 77db722f..fc7f85c3 100644
--- a/config/Fit123/fit123.xml
+++ b/config/Fit123/fit123.xml
@@ -26,6 +26,10 @@
<text>DDNS</text>
<url>/pkg_edit.php?xml=ddns.xml&amp;id=0</url>
</tab>
+ <tab>
+ <text>CASS</text>
+ <url>/pkg_edit.php?xml=cass.xml&amp;id=0</url>
+ </tab>
</tabs>
<additional_files_needed>
<prefix>/usr/local/pkg/</prefix>
@@ -40,7 +44,7 @@
<additional_files_needed>
<prefix>/usr/local/pkg/</prefix>
<chmod>0644</chmod>
- <item>http://www.pfsense.com/packages/config/Fit123/bin/theme/code-red.tar.gz</item>
+ <item>http://www.pfsense.com/packages/config/Fit123/cass.xml</item>
</additional_files_needed>
<fields>
<field>
diff --git a/pkg_config.7.xml b/pkg_config.7.xml
index ee2b1f92..af94264e 100755
--- a/pkg_config.7.xml
+++ b/pkg_config.7.xml
@@ -433,11 +433,12 @@
<package>
<name>Fit123</name>
<website>http://pfsense.comuf.com</website>
- <descr>With Fit123 a small set of features can be added to pfSense 1.2.3 (Date)Adds current date to front page (LTSP)Adds 3th network boot option (After Filter Change) Clear states after filter reload (DNS Servers)Adds option for a 3th and 4th DNS Server (DDNS)A more customize way to update dynamic dns (Themes)On install Code-red and the pfsense ng theme are added to the list of avalible themes.</descr>
+ <descr>With Fit123 a small set of features can be added to pfSense 1.2.3 (Date)Adds current date to front page (LTSP)Adds 3th network boot option (After Filter Change) Clear states after filter reload (DNS Servers)Adds option for a 3th and 4th DNS Server (DDNS)A more customize way to update dynamic dns (CASS) Clear states for 1 voip client after dynamic ip update on wan.</descr>
<category>System</category>
- <version>0.0.5</version>
- <status>ALPHA</status>
+ <version>1.0</version>
+ <status>Beta</status>
<required_version>1.2.3</required_version>
+ <maximum_version>1.2.3</maximum_version>
<maintainer>crazypark2@yahoo.dk</maintainer>
<config_file>http://www.pfsense.com/packages/config/Fit123/fit123.xml</config_file>
<configurationfile>fit123.xml</configurationfile>