]> granicus.if.org Git - pdns/commitdiff
wuh
authorBert Hubert <bert.hubert@netherlabs.nl>
Fri, 20 Dec 2002 16:12:06 +0000 (16:12 +0000)
committerBert Hubert <bert.hubert@netherlabs.nl>
Fri, 20 Dec 2002 16:12:06 +0000 (16:12 +0000)
git-svn-id: svn://svn.powerdns.com/pdns/trunk/pdns@92 d19b8d6e-7fed-0310-83ef-9ca221ded41b

pdns/backends/bind/bindbackend.cc
pdns/backends/bind/bindbackend.hh
pdns/docs/pdns.sgml

index 492eef2da86664636b2642dcfbecabe81c01ed17..a8b980a95d1cfbf3322a24b704994920366da8d6 100644 (file)
@@ -15,7 +15,7 @@
     along with this program; if not, write to the Free Software
     Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307  USA
 */
-// $Id: bindbackend.cc,v 1.8 2002/12/20 14:25:29 ahu Exp $ 
+// $Id: bindbackend.cc,v 1.9 2002/12/20 16:12:06 ahu Exp $ 
 #include <errno.h>
 #include <string>
 #include <map>
@@ -347,11 +347,10 @@ BBResourceRecord BindBackend::resourceMaker(int id, const string &qtype, const s
 
 static BindBackend *us;
 
-string BindBackend::DLReloadHandler(const vector<string>&parts, Utility::pid_t ppid)
+void BindBackend::reload()
 {
   for(map<u_int32_t,BBDomainInfo>::iterator i=us->d_bbds.begin();i!=us->d_bbds.end();++i) 
     i->second.d_checknow=true;
-  return "queued";
 }
 
 string BindBackend::DLReloadNowHandler(const vector<string>&parts, Utility::pid_t ppid)
@@ -467,7 +466,6 @@ BindBackend::BindBackend(const string &suffix)
 
   extern DynListener *dl;
   us=this;
-  dl->registerFunc("BIND-RELOAD", &DLReloadHandler);
   dl->registerFunc("BIND-RELOAD-NOW", &DLReloadNowHandler);
   dl->registerFunc("BIND-DOMAIN-STATUS", &DLDomStatusHandler);
   dl->registerFunc("BIND-LIST-REJECTS", &DLListRejectsHandler);
index 4f2d15a9977038e84c920294fe59ca34e22c20ec..dfaf6e70642ed4299d53620013df53259cef3b1b 100644 (file)
@@ -244,7 +244,7 @@ private:
   handle *d_handle;
   void queueReload(BBDomainInfo *bbd);
   BBResourceRecord resourceMaker(int id, const string &qtype, const string &content, int ttl, int prio);
-  static string DLReloadHandler(const vector<string>&parts, Utility::pid_t ppid);
+  void reload();
   static string DLDomStatusHandler(const vector<string>&parts, Utility::pid_t ppid);
   static string DLListRejectsHandler(const vector<string>&parts, Utility::pid_t ppid);
   static string DLReloadNowHandler(const vector<string>&parts, Utility::pid_t ppid);
index 797b41da0b8fb4aee1b3a6a4d108299bba4235a0..ea39dab12457fa1ba8d88d4fcdc1171408669664 100644 (file)
@@ -15,7 +15,7 @@
       </affiliation>
     </author>
     
-    <PubDate>v2.1 $Date: 2002/12/19 17:00:44 $</PubDate>
+    <PubDate>v2.1 $Date: 2002/12/20 16:12:06 $</PubDate>
     
     <Abstract>
        <para>  
       </para>
       <sect2 id="changelog-2-9-3"><title>Version 2.9.3</title> 
        <para>
-         Broad range of improvements. We now have an all-static .rpm and .deb for Linux users and a a link to an OpenBSD port.
+         Broad range of huge improvements. We now have an all-static .rpm and .deb for Linux users and a a link to an OpenBSD port.
          Major news is that work on the Bind backend has progressed to the point that we've just retired our last Bind server and 
          replaced it with PowerDNS in Bind mode! This server is operating a number of master and slave setups so it should stress the Bind backend 
          somewhat.
        </para>
+       <para>
+         This version is rapidly approaching the point where it is a better-Bind-than-Bind and nearly a drop-in replacement for authoritative 
+         setups. PowerDNS is now equipped with a powerful 
+         master/slave apparatus that offers a lot of insight and control to the user, even when operating from Bind zonefiles and a 
+         Bind configuration. Observe.
+       </para>
+       <para>
+         After the SOA of ds9a.nl was raised:
+         <screen>
+pdns[17495]: All slave domains are fresh
+pdns[17495]: 1 domain for which we are master needs notifications
+pdns[17495]: Queued notification of domain 'ds9a.nl' to 195.193.163.3
+pdns[17495]: Queued notification of domain 'ds9a.nl' to 213.156.2.1
+pdns[17520]: AXFR of domain 'ds9a.nl' initiated by 195.193.163.3
+pdns[17520]: AXFR of domain 'ds9a.nl' to 195.193.163.3 finished
+pdns[17521]: AXFR of domain 'ds9a.nl' initiated by 213.156.2.1
+pdns[17521]: AXFR of domain 'ds9a.nl' to 213.156.2.1 finished
+pdns[17495]: Removed from notification list: 'ds9a.nl' to 195.193.163.3 (was acknowledged)
+pdns[17495]: Removed from notification list: 'ds9a.nl' to 213.156.2.1 (was acknowledged)
+pdns[17495]: No master domains need notifications
+         </screen>
+         If however our slaves would ignore us, as some are prone to do, we can send some additional notifications:
+         <screen>
+$ sudo pdns_control notify ds9a.nl         
+Added to queue
+pdns[17492]: Notification request for domain 'ds9a.nl' received
+pdns[17492]: Queued notification of domain 'ds9a.nl' to 195.193.163.3
+pdns[17492]: Queued notification of domain 'ds9a.nl' to 213.156.2.1
+pdns[17495]: Removed from notification list: 'ds9a.nl' to 195.193.163.3 (was acknowledged)
+pdns[17495]: Removed from notification list: 'ds9a.nl' to 213.156.2.1 (was acknowledged)
+           </screen>
+         Conversely, if PowerDNS needs to be reminded to retrieve a zone from a master, a command is provided:
+           <screen>
+$ sudo pdns_control retrieve forfun.net
+Added retrieval request for 'forfun.net' from master 212.187.98.67
+pdns[17495]: AXFR started for 'forfun.net', transaction started
+pdns[17495]: Zone 'forfun.net' (/var/cache/bind/forfun.net) reloaded 
+pdns[17495]: AXFR done for 'forfun.net', zone committed
+         </screen>
+         Also, you can force PowerDNS to reload a zone from disk immediately with <command>pdns_control bind-reload-now</command>.
+         All this happens 'live', per your instructions. Without instructions, the right things also happen, but the operator is in charge.
+       </para>
+       <para>
+         A lot of the above is not yet documented here, that is expected to follow shortly.
+       </para>
        <para>
          <warning>
            <para>
                (Thanks to Hub Dohmen for reporting this for months on end).
              </para>
            </listitem>
+           <listitem>
+             <para>
+               Added <command>bind-domain-status</command> command that shows the status of all domains (when/if they were parsed, any errors
+               encountered while parsing them).
+             </para>
+           </listitem>
+           <listitem>
+             <para>
+               Added <command>bind-reload-now</command> command that tries to reload a zone from disk NOW, and reports back errors to the operator
+               immediatly.
+             </para>
+           </listitem>
+           <listitem>
+             <para>
+               Added <command>retrieve</command> command that queues a request to retrieve a zone from its master. 
+             </para>
+           </listitem>
+           <listitem>
+             <para>
+               Zones retrieved from masters are now stored way smaller on disk because the domain is stripped from records, which is derived
+               from the configuration file. Retrieved zones are now prefixed with some information on where they came from.
+             </para>
+           </listitem>
          </itemizedlist>
        </para>
        <para>
          <itemizedlist>
            <listitem>
              <para>
-               gpgsql and gmysql backends split out of the hybdid pgmysqlbackend. This again changed compilation instructions!
+               gpgsql and gmysql backends split out of the hybrid pgmysqlbackend. This again changed compilation instructions!
+             </para>
+           </listitem>
+           <listitem>
+             <para>
+               Bind backend now ignores 'hint' and 'forward' and other unsupported zone types.
+             </para>
+           </listitem>
+           <listitem>
+             <para>
+               AXFRs are now logged more heavily by default. An AXFR is a heavy operation anyhow, some more logging does not further 
+               increase the load materially. Does help in clearing up what slaves are doing.
+             </para>
+           </listitem>
+           <listitem>
+             <para>
+               A lot of master/slave chatter has been silenced, making output more relevant. No more repetitive 'No master domains need notifications' etc, only changes are reported now.
              </para>
            </listitem>
          </itemizedlist>
                Potential crashes with shortened packets addressed. An upgrade is advised!
              </para>
            </listitem>
+           <listitem>
+             <para>
+               <command>notify</command> (which was already there, just badly documented) no longer prints out debugging garbage.
+             </para>
+           </listitem>
            <listitem>
              <para>
                pgmysql backend had problems launching when not compiled in but available as a module. Workaround for 2.9.2 is 'load-modules=pgmysql',