BIND 10 #2957: DHCP-DDNS: Develop the DHCP DDNS configuration manager class
BIND 10 Development
do-not-reply at isc.org
Mon Jul 1 19:24:09 UTC 2013
#2957: DHCP-DDNS: Develop the DHCP DDNS configuration manager class
-------------------------------------+-------------------------------------
Reporter: stephen | Owner: tmark
Type: enhancement | Status:
Priority: medium | reviewing
Component: dhcp-ddns | Milestone:
Keywords: | Sprint-DHCP-20130703
Sensitive: 0 | Resolution:
Sub-Project: DHCP | CVSS Scoring:
Estimated Difficulty: 0 | Defect Severity: N/A
Total Hours: 0 | Feature Depending on Ticket:
| Add Hours to Ticket: 0
| Internal?: 0
-------------------------------------+-------------------------------------
Changes (by stephen):
* owner: stephen => tmark
Comment:
Reviewed commit 971e77005e139347d5d4fedf0cc87bfb26b2685f
'''src/bin/d2/d2_config.h'''[[BR]]
!DnsServerInfo constructor: spaces required around the "=" signs.
'''src/bin/d2/d2_messages.mes'''[[BR]]
DCTL_ORDER_NO_ELEMENT: the description doesn't really give any
information. From what I can see, the error arises when the configuration
being parsed does not contain the elements that were specified when the
parse order was set up. In other words, there the configuration is
missing some elements expected by the program. A better explanation would
be something like:
"An error message output during a configuration update. The program is
expecting an item but has not found it in the new configuration. This may
mean that the BIND 10 configuration database is corrupt.
'''src/bin/d2/tests/d2_cfg_mgr_unittests.cc'''[[BR]]
>Various places in the file: in EXPECT_EQ, the expected value should be
the first argument and the actual value the second. (Google Test's failure
messages expect this order.)
This wasn't addressed but leave it for now - even if a test fails, you can
work out what was meant.
checKey(): brace should be on same line as "if".
tsigTest: add a "todo" to note that this should be expanded later. All
the test does is check that an empty list of keys is recognised, it
doesn't check that a list comprising valid elements is parsed correctly.
'''src/bin/d2/tests/d_test_stubs.h'''[[BR]]
Rather than include an #if...#endif to conditionally output the text if
fromJSON fails, stream the JSON text into an error message that will be
output if a test fails, e.g.
{{{
EXPECT_TRUE(fromJSON(config_text)) << config_text;
}}}
Similarly, rather than use conditional compilation for outputting the
checkAnswer rcode, change the assertion used. Rather than have the method
return a bool, have it return the actual result: then replace
{{{
EXPECT_TRUE(checkAnswer(expected_result));
}}}
with
{{{
EXPECT_EQ(expected_result, checkAnswer());
}}}
The message associated with an assertion failure will include both the
expected and actual values.
'''Other Issues'''[[BR]]
>> A FQDN ends with a ".". Where is this checked? As an aside, are the
list of search domains normalized on input (i.e. adding a trailing "." if
they don't have one?").
> Currently this not enforced and there's no normalization as you
describe. This would fall into the todo category. FQDN entry validation
should be enforced during configuration parsing.
I think we should follow the Postel dictum of "being liberal in what you
accept". As there is no default domain in the DDNS configuration, we have
to assume that everything entered is a FQDN. In other words, assume that
if someone entered "example.com" they really meant "example.com.". We
really need to ensure that this does not fall by the wayside - a missing
"." can be [http://royal.pingdom.com/2009/10/13/sweden%E2%80%99s-internet-
broken-by-dns-mistake really important].
'''!ChangeLog'''[[BR]]
This needs a !ChangeLog entry. Something like:
{{{
Added the configuration parsing module for the DHCP DDNS server.
}}}
... would do.
--
Ticket URL: <https://bind10.isc.org/ticket/2957#comment:11>
BIND 10 Development <http://bind10.isc.org>
BIND 10 Development
More information about the bind10-tickets
mailing list