diff options
Diffstat (limited to 'config/tinydns')
-rw-r--r-- | config/tinydns/tinydns.inc | 47 | ||||
-rw-r--r-- | config/tinydns/tinydns.xml | 124 |
2 files changed, 95 insertions, 76 deletions
diff --git a/config/tinydns/tinydns.inc b/config/tinydns/tinydns.inc index 5effa10c..f2bda436 100644 --- a/config/tinydns/tinydns.inc +++ b/config/tinydns/tinydns.inc @@ -63,6 +63,21 @@ function tinydns_custom_php_install_command() { if($config['installedpackages']['tinydns']['config'][0]['refreshinterval']) $refreshinterval = $config['installedpackages']['tinydns']['config'][0]['refreshinterval']; + $pf_version=substr(trim(file_get_contents("/etc/version")),0,3); + if ($pf_version == "2.2") { + $svscan_path = "/usr/pbi/djbdns-" . php_uname("m") . "/local/bin/svscan"; + $svc_path = "/usr/pbi/djbdns-" . php_uname("m") . "/local/bin/svc"; + $tinydns_path = "/usr/pbi/djbdns-" . php_uname("m") . "/local/bin"; + } else if ($pf_version == "2.1") { + $svscan_path = "/usr/pbi/djbdns-" . php_uname("m") . "/bin/svscan"; + $svc_path = "/usr/pbi/djbdns-" . php_uname("m") . "/bin/svc"; + $tinydns_path = "/usr/pbi/djbdns-" . php_uname("m") . "/bin"; + } else { + $svscan_path = "/usr/local/bin/svscan"; + $svc_path = "/usr/local/bin/svc"; + $tinydns_path = "/usr/local/bin"; + } + $svscan = <<<EOD #!/bin/sh @@ -74,7 +89,7 @@ function tinydns_custom_php_install_command() { name="svscan" rcvar="\${name}_enable" -command="/usr/local/bin/svscan" +command="{$svscan_path}" svscan_enable=\${svscan_enable-"YES"} svscan_servicedir=\${svscan_servicedir-"{$g['varrun_path']}/service"} logdir="/var/log/svscan" @@ -90,7 +105,7 @@ svscan_start () { echo "Starting svscan." mkdir -p \$logdir /usr/bin/env \ - PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin \ + PATH={$tinydns_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; @@ -105,7 +120,7 @@ $svscan .= <<<EOD svscan_stop_post () { echo "Stopping svscan." - find -L "\$svscan_servicedir" -mindepth 1 -maxdepth 2 -type d \( \! -path "\$svscan_servicedir/*/*" -or -name 'log' \) -print0 | xargs -0 /usr/local/bin/svc -dx + find -L "\$svscan_servicedir" -mindepth 1 -maxdepth 2 -type d \( \! -path "\$svscan_servicedir/*/*" -or -name 'log' \) -print0 | xargs -0 {$svc_path} -dx /bin/pkill -F /var/run/ping_hosts.pid } @@ -132,11 +147,11 @@ ENDPHP\n"; $stop = ""; $interfaces = explode(",", $config['installedpackages']['tinydns']['config'][0]['interface']); foreach ($interfaces as $dnsidx => $dnsif) - $stop .= "\t/usr/local/bin/svc -dx {$g['varrun_path']}/service/dnscache{$dnsidx}\n"; + $stop .= "\t{$svc_path} -dx {$g['varrun_path']}/service/dnscache{$dnsidx}\n"; $stop .= <<<ENDSH - /usr/local/bin/svc -dx {$g['varrun_path']}/service/tinydns - /usr/local/bin/svc -dx {$g['varrun_path']}/service/axfrdns + {$svc_path} -dx {$g['varrun_path']}/service/tinydns + {$svc_path} -dx {$g['varrun_path']}/service/axfrdns /bin/rm -rf {$g['varrun_path']}/service/tinydns 2>/dev/null /bin/rm -rf {$g['varetc_path']}/tinydns 2>/dev/null /bin/rm -rf {$g['varrun_path']}/dnscache* 2>/dev/null @@ -161,9 +176,19 @@ function tinydns_custom_php_deinstall_command() { global $g, $config; conf_mount_rw(); + + $pf_version=substr(trim(file_get_contents("/etc/version")),0,3); + if ($pf_version == "2.2") { + $svc_path = "/usr/pbi/djbdns-" . php_uname("m") . "/local/bin/svc"; + } else if ($pf_version == "2.1") { + $svc_path = "/usr/pbi/djbdns-" . php_uname("m") . "/bin/svc"; + } else { + $svc_path = "/usr/local/bin/svc"; + } + /* destroy all daemontools items */ - exec("/usr/local/bin/svc -xk {$g['varetc_path']}/tinydns*"); - exec("/usr/local/bin/svc -xk {$g['varetc_path']}/dnscache*"); + exec("{$svc_path} -xk {$g['varetc_path']}/tinydns*"); + exec("{$svc_path} -xk {$g['varetc_path']}/dnscache*"); exec("/usr/local/etc/rc.d/tinydns.sh stop"); exec("/usr/local/etc/rc.d/svscan.sh stop"); exec("/usr/bin/killall supervise"); @@ -225,7 +250,7 @@ function tinydns_custom_php_changeip_command() { } exec("echo {$dnsserverip} > {$g['varetc_path']}/tinydns/env/IP"); - exec("/usr/local/bin/svc -xk {$g['varrun_path']}/service/tinydns"); + exec("{$svc_path} -xk {$g['varrun_path']}/service/tinydns"); if(!empty($config['installedpackages']['tinydns']['config'][0]['enableforwarding'])) { @@ -277,7 +302,7 @@ function tinydns_custom_php_changeip_command() { /* setup symlink to start dnscache */ exec("/bin/ln -s {$g['varetc_path']}/dnscache{$dnsidx} {$g['varrun_path']}/service/"); - exec("/usr/local/bin/svc -xk {$g['varetc_path']}/dnscache{$dnsidx}"); + exec("{$svc_path} -xk {$g['varetc_path']}/dnscache{$dnsidx}"); } } else { $interfaces = explode(",", $$config['installedpackages']['tinydns']['config'][0]['interface']); @@ -285,7 +310,7 @@ function tinydns_custom_php_changeip_command() { if(is_dir("{$g['varetc_path']}/dnscache{$dnsidx}")) dnscache_use_root_servers($dnsidx); } - exec("/usr/local/bin/svc -xk {$g['varetc_path']}/dnscache*"); + exec("{$svc_path} -xk {$g['varetc_path']}/dnscache*"); } /* a wee bit of magic - something seems to start up a broken dnscache, the below kills it, and svc restarts it correctly. */ diff --git a/config/tinydns/tinydns.xml b/config/tinydns/tinydns.xml index fa80953c..55ee3269 100644 --- a/config/tinydns/tinydns.xml +++ b/config/tinydns/tinydns.xml @@ -2,45 +2,47 @@ <!DOCTYPE packagegui SYSTEM "../schema/packages.dtd"> <?xml-stylesheet type="text/xsl" href="../xsl/package.xsl"?> <packagegui> - <copyright> - <![CDATA[ + <copyright> + <![CDATA[ /* $Id$ */ -/* ========================================================================== */ +/* ====================================================================================== */ /* - tinydns.xml - part of pfSense (http://www.pfSense.com) - Copyright (C) 2007 to whom it may belong - All rights reserved. - */ -/* ========================================================================== */ + tinydns.xml + part of pfSense (https://www.pfSense.org/) + Copyright (C) 2009 Bill Marquette + Copyright (C) 2010 Ermal Luçi + Copyright (C) 2010-2011 Scott Ullrich + Copyright (C) 2012-2015 ESF, LLC + All rights reserved. +*/ +/* ====================================================================================== */ /* - Redistribution and use in source and binary forms, with or without - modification, are permitted provided that the following conditions are met: + Redistribution and use in source and binary forms, with or without + modification, are permitted provided that the following conditions are met: - 1. Redistributions of source code must retain the above copyright notice, - this list of conditions and the following disclaimer. - 2. Redistributions in binary form must reproduce the above copyright - notice, this list of conditions and the following disclaimer in the - documentation and/or other materials provided with the distribution. + 1. Redistributions of source code must retain the above copyright notice, + this list of conditions and the following disclaimer. - THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, - INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY - AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE - AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, - OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF - SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS - INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN - CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) - ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE - POSSIBILITY OF SUCH DAMAGE. - */ -/* ========================================================================== */ - ]]> - </copyright> - <description>Describe your package here</description> - <requirements>Describe your package requirements here</requirements> - <faq>Currently there are no FAQ items provided.</faq> + 2. Redistributions in binary form must reproduce the above copyright + notice, this list of conditions and the following disclaimer in the + documentation and/or other materials provided with the distribution. + + + THIS SOFTWARE IS PROVIDED ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, + INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY + AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE + AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, + OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + POSSIBILITY OF SUCH DAMAGE. +*/ +/* ====================================================================================== */ + ]]> + </copyright> <name>tinydns</name> <version>1.0</version> <title>DNS Server: Settings</title> @@ -94,62 +96,53 @@ <configpath>installedpackages->package->tinydns</configpath> <additional_files_needed> <prefix>/usr/local/pkg/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns.inc</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/pkg/pf/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_xmlrpc_sync.php</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/pkg/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_domains.xml</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/www/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_status.php</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/www/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_dhcp_filter.php</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/www/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_filter.php</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/pkg/</prefix> - <chmod>077</chmod> + <chmod>0775</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_down.php</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/pkg/</prefix> - <chmod>077</chmod> + <chmod>0775</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_up.php</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/pkg/</prefix> - <chmod>077</chmod> + <chmod>0775</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_parse_logs.php</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/www/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_view_logs.php</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/pkg/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/tinydns_sync.xml</item> </additional_files_needed> <additional_files_needed> <prefix>/usr/local/www/wizards/</prefix> - <chmod>077</chmod> <item>https://packages.pfsense.org/packages/config/tinydns/new_zone_wizard.xml</item> </additional_files_needed> <fields> @@ -237,23 +230,23 @@ <field> <fielddescr>Hosts allowed to perform DNS Zone Transfers - Note: this requires TCP port 53 firewall permit rule!</fielddescr> <fieldname>none</fieldname> - <type>rowhelper</type> - <rowhelper> - <rowhelperfield> - <fielddescr>IP Address</fielddescr> - <fieldname>ztipaddress</fieldname> - <description>Enter the IP Address that is allowed to transfer zone records (ex: 4.2.2.1)</description> - <type>input</type> - <size>20</size> - </rowhelperfield> - <rowhelperfield> - <fielddescr>DNS Zone - Use * for all Zones</fielddescr> - <fieldname>dnszone</fieldname> - <description>Enter the DNS zone that this IP address is allowed to transfer (ex: domain.com)</description> - <type>input</type> - <size>20</size> - </rowhelperfield> - </rowhelper> + <type>rowhelper</type> + <rowhelper> + <rowhelperfield> + <fielddescr>IP Address</fielddescr> + <fieldname>ztipaddress</fieldname> + <description>Enter the IP Address that is allowed to transfer zone records (ex: 4.2.2.1)</description> + <type>input</type> + <size>20</size> + </rowhelperfield> + <rowhelperfield> + <fielddescr>DNS Zone - Use * for all Zones</fielddescr> + <fieldname>dnszone</fieldname> + <description>Enter the DNS zone that this IP address is allowed to transfer (ex: domain.com)</description> + <type>input</type> + <size>20</size> + </rowhelperfield> + </rowhelper> </field> </fields> <custom_delete_php_command> @@ -290,9 +283,10 @@ </custom_php_deinstall_command> <custom_php_command_before_form> <![CDATA[ - unset($_POST['temp']); - if(!is_process_running("svscan")) - $savemsg = "NOTE: svscan is not running. Please <a href='/status_services.php?mode=restartservice&service=svscan'>start svscan</a> to bring up the DNS Server"; + unset($_POST['temp']); + if (!is_process_running("svscan")) { + $savemsg = "NOTE: svscan is not running. Please <a href='/status_services.php?mode=restartservice&service=svscan'>start svscan</a> to bring up the DNS Server"; + } ]]> </custom_php_command_before_form> </packagegui> |