Commit c12cdc5f authored by JINMEI Tatuya's avatar JINMEI Tatuya

[master] fixed conflicts in changelog (due to me forgetting push?)

parents 1202e2c1 13fe9c1b
391. [func]* jinmei 392. [func]* jinmei
libdns++: revised the (Abstract)MessageRenderer class so that it libdns++: revised the (Abstract)MessageRenderer class so that it
has a default internal buffer and the buffer can be temporarily has a default internal buffer and the buffer can be temporarily
switched. The constructor interface was modified, and a new switched. The constructor interface was modified, and a new
method setBuffer() was added. method setBuffer() was added.
(Trac #1697, git 9cabc799f2bf9a3579dae7f1f5d5467c8bb1aa40) (Trac #1697, git 9cabc799f2bf9a3579dae7f1f5d5467c8bb1aa40)
391. [bug]* vorner
The long time unused configuration options of Xfrout "log_name",
"log_file", "log_severity", "log_version" and "log_max_bytes" were
removed, as they had no effect (Xfrout uses the global logging
framework). However, if you have them set, you need to remove
them from the configuration file or the configuration will be
rejected.
(Trac #1090, git ef1eba02e4cf550e48e7318702cff6d67c1ec82e)
bind10-devel-20120301 released on March 1, 2012 bind10-devel-20120301 released on March 1, 2012
390. [bug] vorner 390. [bug] vorner
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
.\" Title: b10-auth .\" Title: b10-auth
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\" Date: February 28, 2012 .\" Date: March 1, 2012
.\" Manual: BIND10 .\" Manual: BIND10
.\" Source: BIND10 .\" Source: BIND10
.\" Language: English .\" Language: English
.\" .\"
.TH "B10\-AUTH" "8" "February 28, 2012" "BIND10" "BIND10" .TH "B10\-AUTH" "8" "March 1, 2012" "BIND10" "BIND10"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -161,16 +161,18 @@ argument to select the process ID to stop\&. (Note that the BIND 10 boss process ...@@ -161,16 +161,18 @@ argument to select the process ID to stop\&. (Note that the BIND 10 boss process
.PP .PP
The statistics data collected by the The statistics data collected by the
\fBb10\-stats\fR \fBb10\-stats\fR
daemon include: daemon for
\(lqAuth\(rq
include:
.PP .PP
auth\&.queries\&.tcp queries\&.tcp
.RS 4 .RS 4
Total count of queries received by the Total count of queries received by the
\fBb10\-auth\fR \fBb10\-auth\fR
server over TCP since startup\&. server over TCP since startup\&.
.RE .RE
.PP .PP
auth\&.queries\&.udp queries\&.udp
.RS 4 .RS 4
Total count of queries received by the Total count of queries received by the
\fBb10\-auth\fR \fBb10\-auth\fR
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<refentry> <refentry>
<refentryinfo> <refentryinfo>
<date>February 28, 2012</date> <date>March 1, 2012</date>
</refentryinfo> </refentryinfo>
<refmeta> <refmeta>
...@@ -201,20 +201,20 @@ ...@@ -201,20 +201,20 @@
<para> <para>
The statistics data collected by the <command>b10-stats</command> The statistics data collected by the <command>b10-stats</command>
daemon include: daemon for <quote>Auth</quote> include:
</para> </para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term>auth.queries.tcp</term> <term>queries.tcp</term>
<listitem><simpara>Total count of queries received by the <listitem><simpara>Total count of queries received by the
<command>b10-auth</command> server over TCP since startup. <command>b10-auth</command> server over TCP since startup.
</simpara></listitem> </simpara></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>auth.queries.udp</term> <term>queries.udp</term>
<listitem><simpara>Total count of queries received by the <listitem><simpara>Total count of queries received by the
<command>b10-auth</command> server over UDP since startup. <command>b10-auth</command> server over UDP since startup.
</simpara></listitem> </simpara></listitem>
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
.\" Title: bind10 .\" Title: bind10
.\" Author: [see the "AUTHORS" section] .\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\" Date: February 28, 2012 .\" Date: March 1, 2012
.\" Manual: BIND10 .\" Manual: BIND10
.\" Source: BIND10 .\" Source: BIND10
.\" Language: English .\" Language: English
.\" .\"
.TH "BIND10" "8" "February 28, 2012" "BIND10" "BIND10" .TH "BIND10" "8" "March 1, 2012" "BIND10" "BIND10"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -297,9 +297,11 @@ will exit\&. ...@@ -297,9 +297,11 @@ will exit\&.
.PP .PP
The statistics data collected by the The statistics data collected by the
\fBb10\-stats\fR \fBb10\-stats\fR
daemon include: daemon for
\(lqBoss\(rq
include:
.PP .PP
bind10\&.boot_time boot_time
.RS 4 .RS 4
The date and time that the The date and time that the
\fBbind10\fR \fBbind10\fR
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<refentry> <refentry>
<refentryinfo> <refentryinfo>
<date>February 28, 2012</date> <date>March 1, 2012</date>
</refentryinfo> </refentryinfo>
<refmeta> <refmeta>
...@@ -433,13 +433,13 @@ xfrin ...@@ -433,13 +433,13 @@ xfrin
<para> <para>
The statistics data collected by the <command>b10-stats</command> The statistics data collected by the <command>b10-stats</command>
daemon include: daemon for <quote>Boss</quote> include:
</para> </para>
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term>bind10.boot_time</term> <term>boot_time</term>
<listitem><para> <listitem><para>
The date and time that the <command>bind10</command> The date and time that the <command>bind10</command>
process started. process started.
......
...@@ -2,12 +2,12 @@ ...@@ -2,12 +2,12 @@
.\" Title: b10-stats .\" Title: b10-stats
.\" Author: [FIXME: author] [see http://docbook.sf.net/el/author] .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/> .\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\" Date: February 28, 2012 .\" Date: March 1, 2012
.\" Manual: BIND10 .\" Manual: BIND10
.\" Source: BIND10 .\" Source: BIND10
.\" Language: English .\" Language: English
.\" .\"
.TH "B10\-STATS" "8" "February 28, 2012" "BIND10" "BIND10" .TH "B10\-STATS" "8" "March 1, 2012" "BIND10" "BIND10"
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
.\" * set default formatting .\" * set default formatting
.\" ----------------------------------------------------------------- .\" -----------------------------------------------------------------
...@@ -90,25 +90,22 @@ simply indicates that the daemon is running\&. ...@@ -90,25 +90,22 @@ simply indicates that the daemon is running\&.
.PP .PP
The The
\fBb10\-stats\fR \fBb10\-stats\fR
daemon contains these statistics: daemon contains these
\(lqStats\(rq
statistics:
.PP .PP
report_time boot_time
.RS 4
The latest report date and time in ISO 8601 format\&.
.RE
.PP
stats\&.boot_time
.RS 4 .RS 4
The date and time when this daemon was started in ISO 8601 format\&. This is a constant which can\'t be reset except by restarting The date and time when this daemon was started in ISO 8601 format\&. This is a constant which can\'t be reset except by restarting
\fBb10\-stats\fR\&. \fBb10\-stats\fR\&.
.RE .RE
.PP .PP
stats\&.last_update_time last_update_time
.RS 4 .RS 4
The date and time (in ISO 8601 format) when this daemon last received data from another component\&. The date and time (in ISO 8601 format) when this daemon last received data from another component\&.
.RE .RE
.PP .PP
stats\&.lname lname
.RS 4 .RS 4
This is the name used for the This is the name used for the
\fBb10\-msgq\fR \fBb10\-msgq\fR
...@@ -116,14 +113,19 @@ command\-control channel\&. (This is a constant which can\'t be reset except by ...@@ -116,14 +113,19 @@ command\-control channel\&. (This is a constant which can\'t be reset except by
\fBb10\-stats\fR\&.) \fBb10\-stats\fR\&.)
.RE .RE
.PP .PP
stats\&.start_time report_time
.RS 4
The latest report date and time in ISO 8601 format\&.
.RE
.PP
start_time
.RS 4 .RS 4
This is the date and time (in ISO 8601 format) when this daemon started collecting data\&. This is the date and time (in ISO 8601 format) when this daemon started collecting data\&.
.RE .RE
.PP .PP
stats\&.timestamp timestamp
.RS 4 .RS 4
The current date and time represented in seconds since UNIX epoch (1970\-01\-01T0 0:00:00Z) with precision (delimited with a period) up to one hundred thousandth of second\&. The current date and time represented in seconds since UNIX epoch (1970\-01\-01T00:00:00Z) with precision (delimited with a period) up to one hundred thousandth of second\&.
.RE .RE
.PP .PP
See other manual pages for explanations for their statistics that are kept track by See other manual pages for explanations for their statistics that are kept track by
......
...@@ -20,7 +20,7 @@ ...@@ -20,7 +20,7 @@
<refentry> <refentry>
<refentryinfo> <refentryinfo>
<date>February 28, 2012</date> <date>March 1, 2012</date>
</refentryinfo> </refentryinfo>
<refmeta> <refmeta>
...@@ -146,20 +146,15 @@ ...@@ -146,20 +146,15 @@
<title>STATISTICS DATA</title> <title>STATISTICS DATA</title>
<para> <para>
The <command>b10-stats</command> daemon contains these statistics: The <command>b10-stats</command> daemon contains these
<quote>Stats</quote> statistics:
</para> </para>
<variablelist> <variablelist>
<varlistentry>
<term>report_time</term>
<!-- TODO: why not named stats.report_time? -->
<listitem><simpara>The latest report date and time in
ISO 8601 format.</simpara></listitem>
</varlistentry>
<varlistentry> <varlistentry>
<term>stats.boot_time</term> <term>boot_time</term>
<listitem><simpara>The date and time when this daemon was <listitem><simpara>The date and time when this daemon was
started in ISO 8601 format. started in ISO 8601 format.
This is a constant which can't be reset except by restarting This is a constant which can't be reset except by restarting
...@@ -168,14 +163,14 @@ ...@@ -168,14 +163,14 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>stats.last_update_time</term> <term>last_update_time</term>
<listitem><simpara>The date and time (in ISO 8601 format) <listitem><simpara>The date and time (in ISO 8601 format)
when this daemon last received data from another component. when this daemon last received data from another component.
</simpara></listitem> </simpara></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>stats.lname</term> <term>lname</term>
<listitem><simpara>This is the name used for the <listitem><simpara>This is the name used for the
<command>b10-msgq</command> command-control channel. <command>b10-msgq</command> command-control channel.
(This is a constant which can't be reset except by restarting (This is a constant which can't be reset except by restarting
...@@ -184,16 +179,22 @@ ...@@ -184,16 +179,22 @@
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>stats.start_time</term> <term>report_time</term>
<listitem><simpara>The latest report date and time in
ISO 8601 format.</simpara></listitem>
</varlistentry>
<varlistentry>
<term>start_time</term>
<listitem><simpara>This is the date and time (in ISO 8601 format) <listitem><simpara>This is the date and time (in ISO 8601 format)
when this daemon started collecting data. when this daemon started collecting data.
</simpara></listitem> </simpara></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term>stats.timestamp</term> <term>timestamp</term>
<listitem><simpara>The current date and time represented in <listitem><simpara>The current date and time represented in
seconds since UNIX epoch (1970-01-01T0 0:00:00Z) with seconds since UNIX epoch (1970-01-01T00:00:00Z) with
precision (delimited with a period) up to precision (delimited with a period) up to
one hundred thousandth of second.</simpara></listitem> one hundred thousandth of second.</simpara></listitem>
</varlistentry> </varlistentry>
......
...@@ -115,33 +115,6 @@ ...@@ -115,33 +115,6 @@
See the <citetitle>BIND 10 Guide</citetitle> for configuration examples. See the <citetitle>BIND 10 Guide</citetitle> for configuration examples.
The default is an empty list, that is, no zone specific configuration. The default is an empty list, that is, no zone specific configuration.
</para> </para>
<para>
<varname>log_name</varname>
<!-- TODO -->
</para>
<para>
<varname>log_file</varname>
<!-- TODO -->
The location of the log file if using a file channel.
If undefined, then the file channel is closed.
The default is
<filename>/usr/local/var/bind10-devel/log/Xfrout.log</filename>.
</para>
<para>
<varname>log_severity</varname>
<!-- TODO -->
The default is "debug".
</para>
<para>
<varname>log_versions</varname>
<!-- TODO -->
The default is 5.
</para>
<para>
<varname>log_max_bytes</varname>
<!-- TODO -->
The default is 1048576.
</para>
<!-- TODO: log configurations not documented yet in here. jreed <!-- TODO: log configurations not documented yet in here. jreed
has some but waiting on decisions ... --> has some but waiting on decisions ... -->
......
...@@ -8,36 +8,6 @@ ...@@ -8,36 +8,6 @@
"item_optional": false, "item_optional": false,
"item_default": 10 "item_default": 10
}, },
{
"item_name": "log_name",
"item_type": "string",
"item_optional": false,
"item_default": "Xfrout"
},
{
"item_name": "log_file",
"item_type": "string",
"item_optional": false,
"item_default": "@@LOCALSTATEDIR@@/@PACKAGE@/log/Xfrout.log"
},
{
"item_name": "log_severity",
"item_type": "string",
"item_optional": false,
"item_default": "debug"
},
{
"item_name": "log_versions",
"item_type": "integer",
"item_optional": false,
"item_default": 5
},
{
"item_name": "log_max_bytes",
"item_type": "integer",
"item_optional": false,
"item_default": 1048576
},
{ {
"item_name": "transfer_acl", "item_name": "transfer_acl",
"item_type": "list", "item_type": "list",
......
...@@ -70,9 +70,9 @@ TEST(BenchMarkTest, run) { ...@@ -70,9 +70,9 @@ TEST(BenchMarkTest, run) {
const int sleep_time = 50000; // will sleep for 50ms const int sleep_time = 50000; // will sleep for 50ms
const struct timespec sleep_timespec = { 0, sleep_time * 1000 }; const struct timespec sleep_timespec = { 0, sleep_time * 1000 };
// we cannot expect particular accuracy on the measured duration, so // we cannot expect particular accuracy on the measured duration, so
// we'll include some conservative margin (25%) and perform range // we'll include some conservative margin (50%) and perform range
// comparison below. // comparison below.
const int duration_margin = 12500; // 12.5ms const int duration_margin = 25000; // 25ms
const int ONE_MILLION = 1000000; const int ONE_MILLION = 1000000;
// Prerequisite check: since the tests in this case may depend on subtle // Prerequisite check: since the tests in this case may depend on subtle
...@@ -80,6 +80,8 @@ TEST(BenchMarkTest, run) { ...@@ -80,6 +80,8 @@ TEST(BenchMarkTest, run) {
// where sleeping doesn't work as this test expects. So we check the // where sleeping doesn't work as this test expects. So we check the
// conditions before the tests, and if it fails skip the tests at the // conditions before the tests, and if it fails skip the tests at the
// risk of overlooking possible bugs. // risk of overlooking possible bugs.
// We do this with a tighter margin than the checks themselves
const int duration_soft_margin = 12500; // 12.5ms
struct timeval check_begin, check_end; struct timeval check_begin, check_end;
gettimeofday(&check_begin, NULL); gettimeofday(&check_begin, NULL);
nanosleep(&sleep_timespec, 0); nanosleep(&sleep_timespec, 0);
...@@ -93,8 +95,8 @@ TEST(BenchMarkTest, run) { ...@@ -93,8 +95,8 @@ TEST(BenchMarkTest, run) {
--check_end.tv_sec; --check_end.tv_sec;
} }
if (check_end.tv_sec != 0 || if (check_end.tv_sec != 0 ||
sleep_time - duration_margin > check_end.tv_usec || sleep_time - duration_soft_margin > check_end.tv_usec ||
sleep_time + duration_margin < check_end.tv_usec) { sleep_time + duration_soft_margin < check_end.tv_usec) {
cerr << "Prerequisite check failed. skipping test" << endl; cerr << "Prerequisite check failed. skipping test" << endl;
return; return;
} }
......
...@@ -21,6 +21,7 @@ libdatasrc_la_SOURCES += static_datasrc.h static_datasrc.cc ...@@ -21,6 +21,7 @@ libdatasrc_la_SOURCES += static_datasrc.h static_datasrc.cc
libdatasrc_la_SOURCES += sqlite3_datasrc.h sqlite3_datasrc.cc libdatasrc_la_SOURCES += sqlite3_datasrc.h sqlite3_datasrc.cc
libdatasrc_la_SOURCES += query.h query.cc libdatasrc_la_SOURCES += query.h query.cc
libdatasrc_la_SOURCES += cache.h cache.cc libdatasrc_la_SOURCES += cache.h cache.cc
libdatasrc_la_SOURCES += rbnode_rrset.h
libdatasrc_la_SOURCES += rbtree.h libdatasrc_la_SOURCES += rbtree.h
libdatasrc_la_SOURCES += zonetable.h zonetable.cc libdatasrc_la_SOURCES += zonetable.h zonetable.cc
libdatasrc_la_SOURCES += zone.h libdatasrc_la_SOURCES += zone.h
......
...@@ -34,6 +34,7 @@ ...@@ -34,6 +34,7 @@
#include <datasrc/memory_datasrc.h> #include <datasrc/memory_datasrc.h>
#include <datasrc/rbtree.h> #include <datasrc/rbtree.h>
#include <datasrc/rbnode_rrset.h>
#include <datasrc/logger.h> #include <datasrc/logger.h>
#include <datasrc/iterator.h> #include <datasrc/iterator.h>
#include <datasrc/data_source.h> #include <datasrc/data_source.h>
...@@ -419,14 +420,19 @@ struct InMemoryZoneFinder::InMemoryZoneFinderImpl { ...@@ -419,14 +420,19 @@ struct InMemoryZoneFinder::InMemoryZoneFinderImpl {
* access is without the impl_-> and it will get inlined anyway. * access is without the impl_-> and it will get inlined anyway.
*/ */
// Implementation of InMemoryZoneFinder::add // Implementation of InMemoryZoneFinder::add
result::Result add(const ConstRRsetPtr& rrset, ZoneData& zone_data) { result::Result add(const ConstRRsetPtr& rawrrset, ZoneData& zone_data) {
// Sanitize input. This will cause an exception to be thrown // Sanitize input. This will cause an exception to be thrown
// if the input RRset is empty. // if the input RRset is empty.
addValidation(rrset); addValidation(rawrrset);
// OK, can add the RRset. // OK, can add the RRset.
LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_ADD_RRSET). LOG_DEBUG(logger, DBG_TRACE_DATA, DATASRC_MEM_ADD_RRSET).
arg(rrset->getName()).arg(rrset->getType()).arg(origin_); arg(rawrrset->getName()).arg(rawrrset->getType()).arg(origin_);
// ... although instead of loading the RRset directly, we encapsulate
// it within an RBNodeRRset. This contains additional information that
// speeds up queries.
ConstRRsetPtr rrset(new internal::RBNodeRRset(rawrrset));
if (rrset->getType() == RRType::NSEC3()) { if (rrset->getType() == RRType::NSEC3()) {
return (addNSEC3(rrset, zone_data)); return (addNSEC3(rrset, zone_data));
......
// Copyright (C) 2012 Internet Systems Consortium, Inc. ("ISC")
//
// Permission to use, copy, modify, and/or distribute this software for any
// purpose with or without fee is hereby granted, provided that the above
// copyright notice and this permission notice appear in all copies.
//
// THE SOFTWARE IS PROVIDED "AS IS" AND ISC DISCLAIMS ALL WARRANTIES WITH
// REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
// AND FITNESS. IN NO EVENT SHALL ISC BE LIABLE FOR ANY SPECIAL, DIRECT,
// INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
// LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE
// OR OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
// PERFORMANCE OF THIS SOFTWARE.
#ifndef __RBNODE_RRSET_H
#define __RBNODE_RRSET_H
#include <dns/messagerenderer.h>
#include <dns/name.h>
#include <dns/rrclass.h>
#include <dns/rrset.h>
#include <dns/rrttl.h>
#include <dns/rrtype.h>
#include <util/buffer.h>
#include <string>
namespace isc {
namespace datasrc {
namespace internal {
/// \brief Special RRset for optimizing memory datasource requirement
///
/// To speed up the performance of the in-memory data source, at load time
/// associate relevant "additional section" data with each RRset in the
/// data source.
///
/// This class, derived from AbstractRRset, holds a "const" pointer to the
/// underlying RRset object. All calls to methods on the class are passed to
/// the underlying object. However, there are some restrictions:
///
/// - Calls to methods that change attributes of the underlying RRset (such as
/// TTL or Name) cause an exception to be thrown. The in-memory data source
/// does not allow modification of these attributes. In theory, it is a bad
/// practice in that it doesn't preserve the assumed behavior of the base
/// class. In practice, however, it should be acceptable because this
/// class is effectively hidden from applications and will only be given
/// to them as a const pointer to the base class via find() variants.
/// So the application cannot call non const methods anyway unless it
/// intentionally breaks the constness.
///
/// - Calls that add the pointer to the associated RRSIG to the RRset are
/// allowed (even though the pointer is to a "const" RRset). The reason here
/// is that RRSIGs are added to the in-memory data source after the
/// RBNodeRRset objects have been created. Thus there has to be the
/// capability of modifying this information.
///
/// The class is not derived from RRset itself to simplify coding: part of the
/// loading of the memory data source is handled in the BIND 10 "libdns++"
/// code, which creates RRsets and passes them to the data