aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJim P <jim@pingle.org>2012-08-29 05:47:44 -0700
committerJim P <jim@pingle.org>2012-08-29 05:47:44 -0700
commit0a8b30591971a6a84c20bbdbe911d99a6fa62bbd (patch)
tree0edf6d842e886bcfdc3f168ac21f27aa5b9ebed9
parent9cf3245b7731367aac7ad2146ef9c3940c8b74a5 (diff)
parent9ef793166596542a282d00b8c2a45acd1e53a7e0 (diff)
downloadpfsense-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.inc53
-rw-r--r--config/tinydns/tinydns.xml54
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();