aboutsummaryrefslogtreecommitdiffstats
path: root/config/powerdns.xml
diff options
context:
space:
mode:
Diffstat (limited to 'config/powerdns.xml')
-rw-r--r--config/powerdns.xml248
1 files changed, 248 insertions, 0 deletions
diff --git a/config/powerdns.xml b/config/powerdns.xml
new file mode 100644
index 00000000..214da5f4
--- /dev/null
+++ b/config/powerdns.xml
@@ -0,0 +1,248 @@
+<?xml version="1.0" encoding="utf-8" ?>
+<!DOCTYPE packagegui SYSTEM "./schema/packages.dtd">
+<?xml-stylesheet type="text/xsl" href="./xsl/package.xsl"?>
+<packagegui>
+ <copyright>
+ <![CDATA[
+/* $Id$ */
+/* ========================================================================== */
+/*
+ authng.xml
+ part of pfSense (http://www.pfSense.com)
+ Copyright (C) 2007 to whom it may belong
+ All rights reserved.
+
+ Based on m0n0wall (http://m0n0.ch/wall)
+ Copyright (C) 2003-2006 Manuel Kasper <mk@neon1.net>.
+ All rights reserved.
+ */
+/* ========================================================================== */
+/*
+ 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.
+
+ 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>
+ <name>powerdns</name>
+ <version>2.9.16_4</version>
+ <title>Services: PowerDNS</title>
+ <preoutput>yes</preoutput>
+ <donotsave>true</donotsave>
+ <!-- Menu is where this packages menu will appear -->
+ <menu>
+ <name>PowerDNS</name>
+ <tooltiptext></tooltiptext>
+ <section>Services</section>
+ <configfile>powerdns.xml</configfile>
+ </menu>
+ <!-- Do not save invokes a simple input menu and will not update
+ the configuration database. -->
+ <fields>
+ <field>
+ <fielddescr>pgsql Password</fielddescr>
+ <fieldname>password</fieldname>
+ <description>Enter the pgsql users password.</description>
+ <type>password</type>
+ </field>
+ <field>
+ <fielddescr>pgsql Password AGAIN</fielddescr>
+ <fieldname>passwordagain</fieldname>
+ <type>password</type>
+ </field>
+ <field>
+ <fielddescr>IP Address</fielddescr>
+ <fieldname>ipaddress</fieldname>
+ <description>(0.0.0.0 to bind to all)</description>
+ <type>input</type>
+ <value>0.0.0.0</value>
+ </field>
+ <field>
+ <fielddescr>Cache Time to Live</fielddescr>
+ <fieldname>cachettl</fieldname>
+ <description>Recommended value: 20</description>
+ <type>input</type>
+ <value>20</value>
+ </field>
+ <field>
+ <fielddescr>Master</fielddescr>
+ <fieldname>master</fieldname>
+ <type>select</type>
+ <options>
+ <option><name>Yes</name><value>yes</value></option>
+ <option><name>No</name><value>no</value></option>
+ </options>
+ </field>
+ <field>
+ <fielddescr>Slave</fielddescr>
+ <fieldname>slave</fieldname>
+ <type>select</type>
+ <options>
+ <option><name>No</name><value>no</value></option>
+ <option><name>Yes</name><value>yes</value></option>
+ </options>
+ </field>
+ </fields>
+ <custom_add_php_command>
+ if($password == $passwordagain) {
+ conf_mount_rw();
+ config_lock();
+ $fd = popen("/usr/sbin/pw usermod -n pgsql -H 0", "w");
+ $salt = md5(time());
+ $crypted_pw = crypt($_POST['password'],$salt);
+ fwrite($fd, $crypted_pw);
+ pclose($fd);
+ $fout = fopen("/usr/local/etc/pdns.conf","w");
+ fwrite($fout, "launch=gpgsql\n");
+ fwrite($fout, "gpgsql-host=127.0.0.1\n");
+ fwrite($fout, "gpgsql-dbname=powerdns\n");
+ fwrite($fout, "gpgsql-user=pgsql\n");
+ fwrite($fout, "gpgsql-password=" . $_POST['password'] . "\n");
+ fwrite($fout, "chroot=/var/empty\n");
+ fwrite($fout, "disable-tcp=no\n");
+ fwrite($fout, "guardian=yes\n");
+ fwrite($fout, "webserver=yes\n");
+ fwrite($fout, "webserver-address=127.0.0.1\n");
+ fwrite($fout, "webserver-port=8081\n");
+ fwrite($fout, "local-address=" . $_POST['ipaddress'] . "\n");
+ fwrite($fout, "master=" . $_POST['master'] . "\n");
+ fwrite($fout, "slave=" . $_POST['slave'] . "\n");
+ fwrite($fout, "cache-ttl=" . $_POST['cachettl'] . "\n");
+ /* XXX: TODO */
+ fwrite($fout, "# allow-axfr-ips=\n");
+ fwrite($fout, "# allow-recursion=\n");
+ fwrite($fout, "# config-dir=/etc\n");
+ fwrite($fout, "# config-name=\n");
+ fwrite($fout, "# control-console=no\n");
+ fwrite($fout, "# default-soa-name=ns.example.com\n");
+ fwrite($fout, "# disable-axfr=no\n");
+ fwrite($fout, "# distributor-threads=3\n");
+ fwrite($fout, "# fancy-records=no\n");
+ fwrite($fout, "# launch=\n");
+ fwrite($fout, "# lazy-recursion=yes\n");
+ fwrite($fout, "# load-modules=\n");
+ fwrite($fout, "# local-ipv6=\n");
+ fwrite($fout, "# local-port=53\n");
+ fwrite($fout, "# log-dns-details=\n");
+ fwrite($fout, "# log-failed-updates=\n");
+ fwrite($fout, "# logfile=pdns.log\n");
+ fwrite($fout, "# logging-facility=\n");
+ fwrite($fout, "# loglevel=4\n");
+ fwrite($fout, "# max-queue-length=5000\n");
+ fwrite($fout, "# max-tcp-connections=10\n");
+ fwrite($fout, "# module-dir=/usr/local/bin/../lib\n");
+ fwrite($fout, "# negquery-cache-ttl=60\n");
+ fwrite($fout, "# only-soa=org\n");
+ fwrite($fout, "# out-of-zone-additional-processing=no\n");
+ fwrite($fout, "# query-cache-ttl=20\n");
+ fwrite($fout, "# query-logging=no\n");
+ fwrite($fout, "# queue-limit=1500\n");
+ fwrite($fout, "# receiver-threads=1\n");
+ fwrite($fout, "# recursive-cache-ttl=10\n");
+ fwrite($fout, "# recursor=no\n");
+ fwrite($fout, "# setgid=\n");
+ fwrite($fout, "# setuid=\n");
+ fwrite($fout, "# skip-cname=no\n");
+ fwrite($fout, "# slave=no\n");
+ fwrite($fout, "# slave-cycle-interval=60\n");
+ fwrite($fout, "# soa-minimum-ttl=3600\n");
+ fwrite($fout, "# soa-serial-offset=0\n");
+ fwrite($fout, "# socket-dir=/var/run\n");
+ fwrite($fout, "# strict-rfc-axfrs=no\n");
+ fwrite($fout, "# urlredirector=127.0.0.1\n");
+ fwrite($fout, "# use-logfile=no\n");
+ fwrite($fout, "# webserver-password=\n");
+ fwrite($fout, "# webserver-print-arguments=no\n");
+ fwrite($fout, "# wildcard-url=no\n");
+ fwrite($fout, "# wildcards=\n");
+ fclose($fout);
+ conf_mount_ro();
+ config_unlock();
+ system("/usr/local/bin/pg_ctl -m smart 2>/dev/null");
+ system("/usr/local/bin/pg_ctl -D /usr/local/pgsql/data -l logfile start 2>/dev/null");
+ } else {
+ echo "Passwords do not much!";
+ exit;
+ }
+ </custom_add_php_command>
+ <custom_php_install_command>
+ echo "&lt;pre&gt;";
+ echo "Creating DB...";
+ system("/usr/bin/su -l pgsql -c initdb");
+ system("/usr/local/etc/rc.d/010.pgsql.sh start");
+ system("/usr/bin/su -l pgsql -c \"dropdb powerdns\" ");
+ system("/usr/bin/su -l pgsql -c \"createdb powerdns\" ");
+ $fout = fopen("/usr/local/pkg/powerdns.schema","w");
+ /* DATABASE SCHEMA */
+ fwrite($fout, "create table domains (\n");
+ fwrite($fout, "id SERIAL PRIMARY KEY,\n");
+ fwrite($fout, "name VARCHAR(255) NOT NULL,\n");
+ fwrite($fout, "master VARCHAR(20) DEFAULT NULL,\n");
+ fwrite($fout, "last_check INT DEFAULT NULL,\n");
+ fwrite($fout, "type VARCHAR(6) NOT NULL,\n");
+ fwrite($fout, "notified_serial INT DEFAULT NULL,\n");
+ fwrite($fout, "account VARCHAR(40) DEFAULT NULL\n");
+ fwrite($fout, ");\n");
+ fwrite($fout, "CREATE UNIQUE INDEX name_index ON domains(name);\n");
+ fwrite($fout, "CREATE TABLE records (\n");
+ fwrite($fout, " id SERIAL PRIMARY KEY,\n");
+ fwrite($fout, " domain_id INT DEFAULT NULL,\n");
+ fwrite($fout, " name VARCHAR(255) DEFAULT NULL,\n");
+ fwrite($fout, " type VARCHAR(6) DEFAULT NULL,\n");
+ fwrite($fout, " content VARCHAR(255) DEFAULT NULL,\n");
+ fwrite($fout, " ttl INT DEFAULT NULL,\n");
+ fwrite($fout, " prio INT DEFAULT NULL,\n");
+ fwrite($fout, " change_date INT DEFAULT NULL,\n");
+ fwrite($fout, " CONSTRAINT domain_exists\n");
+ fwrite($fout, " FOREIGN KEY(domain_id) REFERENCES domains(id)\n");
+ fwrite($fout, " ON DELETE CASCADE\n");
+ fwrite($fout, ");\n");
+ fwrite($fout, "CREATE INDEX rec_name_index ON records(name);\n");
+ fwrite($fout, "CREATE INDEX nametype_index ON records(name,type);\n");
+ fwrite($fout, "CREATE INDEX domain_id ON records(domain_id);\n");
+ fwrite($fout, "create table supermasters (\n");
+ fwrite($fout, " ip VARCHAR(25) NOT NULL,\n");
+ fwrite($fout, " nameserver VARCHAR(255) NOT NULL,\n");
+ fwrite($fout, " account VARCHAR(40) DEFAULT NULL\n");
+ fwrite($fout, ");\n");
+ fwrite($fout, "GRANT SELECT ON supermasters TO pgsql;\n");
+ fwrite($fout, "GRANT ALL ON domains TO pgsql;\n");
+ fwrite($fout, "GRANT ALL ON domains_id_seq TO pgsql;\n");
+ fwrite($fout, "GRANT ALL ON records TO pgsql;\n");
+ fwrite($fout, "GRANT ALL ON records_id_seq TO pgsql;\n");
+ fclose($fout);
+ system("cat /usr/local/pkg/powerdns.schema | /usr/bin/su -l pgsql -c \"psql powerdns\" ");
+ echo "Installation completed!";
+ </custom_php_install_command>
+ <custom_php_deinstall_command>
+ system("/usr/local/bin/pg_ctl -m immediate");
+ rmdir_recursive("/usr/local/pgsql");
+ system("/usr/sbin/pw userdel pgsql");
+ system("/usr/bin/killall -9 postgres");
+ echo "&lt;p&gt;";
+ echo "Reboot required... One moment...";
+ echo "&lt;p&gt;";
+ /* system("/sbin/shutdown -r now"); */
+ </custom_php_deinstall_command>
+</packagegui>