diff options
author | Jim P <jim@pingle.org> | 2012-08-29 05:47:44 -0700 |
---|---|---|
committer | Jim P <jim@pingle.org> | 2012-08-29 05:47:44 -0700 |
commit | 0a8b30591971a6a84c20bbdbe911d99a6fa62bbd (patch) | |
tree | 0edf6d842e886bcfdc3f168ac21f27aa5b9ebed9 | |
parent | 9cf3245b7731367aac7ad2146ef9c3940c8b74a5 (diff) | |
parent | 9ef793166596542a282d00b8c2a45acd1e53a7e0 (diff) | |
download | pfsense-packages-0a8b30591971a6a84c20bbdbe911d99a6fa62bbd.tar.gz pfsense-packages-0a8b30591971a6a84c20bbdbe911d99a6fa62bbd.tar.bz2 pfsense-packages-0a8b30591971a6a84c20bbdbe911d99a6fa62bbd.zip |
Merge pull request #316 from bguerin/master
Stabilisation of DNS server
-rw-r--r-- | config/tinydns/tinydns.inc | 53 | ||||
-rw-r--r-- | config/tinydns/tinydns.xml | 54 |
2 files changed, 34 insertions, 73 deletions
diff --git a/config/tinydns/tinydns.inc b/config/tinydns/tinydns.inc index 1b3e7c0c..70e149e1 100644 --- a/config/tinydns/tinydns.inc +++ b/config/tinydns/tinydns.inc @@ -53,33 +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']; - - $minsegment = "10240"; - $maxfilesize = "10240"; - $maxsegment = "20480"; - $maxfd = "100"; - $maxchild = "40"; - if($config['installedpackages']['tinydns']['config'][0]['minsegment']) - $minsegment = $config['installedpackages']['tinydns']['config'][0]['minsegment']; - - if($config['installedpackages']['tinydns']['config'][0]['maxfilesize']) - $maxfilesize = $config['installedpackages']['tinydns']['config'][0]['maxfilesize']; - - if($config['installedpackages']['tinydns']['config'][0]['maxsegment']) - $maxsegment = $config['installedpackages']['tinydns']['config'][0]['maxsegment']; - - if($config['installedpackages']['tinydns']['config'][0]['maxfd']) - $maxfd = $config['installedpackages']['tinydns']['config'][0]['maxfd']; - - if($config['installedpackages']['tinydns']['config'][0]['maxchild']) - $maxchild = $config['installedpackages']['tinydns']['config'][0]['maxchild']; + $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']; @@ -97,6 +77,7 @@ rcvar=`set_rcvar` command="/usr/local/bin/svscan" svscan_enable=\${svscan_enable-"YES"} svscan_servicedir=\${svscan_servicedir-"{$g['varrun_path']}/service"} +logdir="/var/log/svscan" start_cmd="svscan_start" stop_postcmd="svscan_stop_post" @@ -107,10 +88,18 @@ required_dirs="\${svscan_servicedir}" svscan_start () { echo "Starting svscan." + mkdir -p \$logdir /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/readproctitle service errors: ................................................................................................................................................................................................................................................................................................................................................................................................................ &" > /dev/null + /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 () { @@ -130,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 = ""; @@ -636,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."); } @@ -704,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 fba16905..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> @@ -249,46 +255,6 @@ </rowhelperfield> </rowhelper> </field> - <field> - <type>listtopic</type> - <name>Advanced tunables (OPTIONAL)</name> - <fieldname>temp</fieldname> - </field> - <field> - <fielddescr>Minimum segment size</fielddescr> - <fieldname>minsegment</fieldname> - <description>Recommended size: 10240 or larger.</description> - <type>input</type> - <value>10240</value> - </field> - <field> - <fielddescr>Maximum file size</fielddescr> - <fieldname>maxfilesize</fieldname> - <description>Recommended size: 10240 or larger.</description> - <type>input</type> - <value>10240</value> - </field> - <field> - <fielddescr>Max Segment size</fielddescr> - <fieldname>maxsegment</fieldname> - <description>Recommended size: 20480 or larger.</description> - <type>input</type> - <value>20480</value> - </field> - <field> - <fielddescr>Maximum file descriptors</fielddescr> - <fieldname>maxfd</fieldname> - <description>Recommended size: 100 or larger.</description> - <type>input</type> - <value>100</value> - </field> - <field> - <fielddescr>Maximum children processes</fielddescr> - <fieldname>maxchild</fieldname> - <description>Recommended size: 40 or larger.</description> - <type>input</type> - <value>40</value> - </field> </fields> <custom_delete_php_command> tinydns_custom_php_changeip_command(); |