diff options
-rw-r--r-- | config/tinydns/tinydns.inc | 28 | ||||
-rw-r--r-- | config/tinydns/tinydns.xml | 14 |
2 files changed, 31 insertions, 11 deletions
diff --git a/config/tinydns/tinydns.inc b/config/tinydns/tinydns.inc index 7c8f15d7..70e149e1 100644 --- a/config/tinydns/tinydns.inc +++ b/config/tinydns/tinydns.inc @@ -53,12 +53,13 @@ function tinydns_custom_php_install_command() { log_error("Could not open /usr/local/etc/rc.d/svscan.sh for writing."); return; } - + // Ensure svscan.sh has a+rx exec("chmod a+rx /usr/local/etc/rc.d/svscan.sh"); - + $ipaddress = $config['installedpackages']['tinydns']['config'][0]['ipaddress']; + $enableipmonitoring = $config['installedpackages']['tinydns']['config'][0]['enableipmonitoring']; if($config['installedpackages']['tinydns']['config'][0]['refreshinterval']) $refreshinterval = $config['installedpackages']['tinydns']['config'][0]['refreshinterval']; @@ -91,7 +92,14 @@ svscan_start () { /usr/bin/env \ PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ /usr/sbin/daemon -f /bin/sh -c "\$command \$svscan_servicedir 2>&1 | /usr/local/bin/multilog t \$logdir" > /dev/null +EOD; +if ($enableipmonitoring) { + $svscan .= <<<EOD minicron {$refreshinterval} {$g['varrun_path']}/ping_hosts.pid "/etc/ping_hosts.sh; cd {$g['varetc_path']}/tinydns/root && /usr/local/bin/tinydns-data" +EOD; +} +$svscan .= <<<EOD + } svscan_stop_post () { @@ -111,9 +119,11 @@ EOD; <?php require_once(\"/usr/local/pkg/tinydns.inc\"); tinydns_custom_php_changeip_command(); - tinydns_create_zone_file(); - tinydns_setup_ping_items(); -?> + tinydns_create_zone_file();\n"; + if ($enableipmonitoring) { + $start .= "tinydns_setup_ping_items();\n"; + } + $start .= "?> ENDPHP\n"; $stop = ""; @@ -617,7 +627,9 @@ function tinydns_sync_on_changes() { tinydns_do_xmlrpc_sync($sync_to_ip, $password); } tinydns_create_zone_file(); - tinydns_setup_ping_items(); + if ($config['installedpackages']['tinydns']['config'][0]['enableipmonitoring']) { + tinydns_setup_ping_items(); + } log_error("[tinydns] tinydns_xmlrpc_sync.php is ending."); } @@ -685,7 +697,9 @@ function tinydns_do_xmlrpc_sync($sync_to_ip, $password) { $execcmd = "require_once('/usr/local/pkg/tinydns.inc');\n"; $execcmd .= "tinydns_custom_php_changeip_command();\n"; $execcmd .= "tinydns_create_zone_file();\n"; - $execcmd .= "tinydns_setup_ping_items();\n"; + if ($config['installedpackages']['tinydns']['config'][0]['enableipmonitoring']) { + $execcmd .= "tinydns_setup_ping_items();\n"; + } /* assemble xmlrpc payload */ $params = array( diff --git a/config/tinydns/tinydns.xml b/config/tinydns/tinydns.xml index b90a2cb3..546980f1 100644 --- a/config/tinydns/tinydns.xml +++ b/config/tinydns/tinydns.xml @@ -194,7 +194,7 @@ <fieldname>regdhcpstatic</fieldname> <description>Register static DHCP leases with TinyDNS server using the Fully Qualified Domain Name specified in System: General.</description> <type>checkbox</type> - </field> + </field> <field> <fielddescr>Register DHCP leases with server</fielddescr> <fieldname>regdhcp</fieldname> @@ -203,8 +203,14 @@ </field> <field> <type>listtopic</type> - <name>Monitoring IP refresh interval</name> - <fieldname>temp</fieldname> + <name>IP Monitoring</name> + <fieldname>temp</fieldname> + </field> + <field> + <fielddescr>Enable IP monitoring</fielddescr> + <fieldname>enableipmonitoring</fieldname> + <description>Wheather or not to monitor IP address</description> + <type>checkbox</type> </field> <field> <fielddescr>Refresh Interval</fielddescr> @@ -215,7 +221,7 @@ <field> <type>listtopic</type> <name>Sync TinyDNS settings via XMLRPC</name> - <fieldname>temp</fieldname> + <fieldname>temp</fieldname> </field> <field> <fielddescr>XMLRPC Sync</fielddescr> |