Skip to content
GitLab
Menu
Projects
Groups
Snippets
Help
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Menu
Open sidebar
ISC Open Source Projects
Kea
Commits
cb404986
Commit
cb404986
authored
Feb 08, 2012
by
Michal 'vorner' Vaner
Browse files
[1581] Implement the returning of NXRRSET NSEC3 proof
parent
66a1a1ac
Changes
2
Hide whitespace changes
Inline
Side-by-side
src/bin/auth/query.cc
View file @
cb404986
...
...
@@ -236,6 +236,17 @@ Query::addNXRRsetProof(ZoneFinder& finder,
if
(
db_result
.
isWildcard
())
{
addWildcardNXRRSETProof
(
finder
,
db_result
.
rrset
);
}
}
else
if
(
db_result
.
isNSEC3Signed
())
{
ZoneFinder
::
FindNSEC3Result
result
(
finder
.
findNSEC3
(
qname_
,
false
));
if
(
result
.
matched
)
{
response_
.
addRRset
(
Message
::
SECTION_AUTHORITY
,
boost
::
const_pointer_cast
<
AbstractRRset
>
(
result
.
closest_proof
),
dnssec_
);
}
else
{
isc_throw
(
BadNSEC3
,
"No NSEC3 found for existing domain "
<<
qname_
.
toText
());
}
}
}
...
...
src/bin/auth/query.h
View file @
cb404986
...
...
@@ -270,6 +270,17 @@ public:
{}
};
/// An invalid result is given when a valid NSEC3 is expected
///
/// This can only happen when the underlying data source implementation or
/// the zone is broken. By throwing an exception we treat such cases
/// as SERVFAIL.
struct
BadNSEC3
:
public
BadZone
{
BadNSEC3
(
const
char
*
file
,
size_t
line
,
const
char
*
what
)
:
BadZone
(
file
,
line
,
what
)
{}
};
/// An invalid result is given when a valid DS records (or NXRRSET) is
/// expected
///
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment