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
76e1d3b2
Commit
76e1d3b2
authored
Feb 11, 2011
by
Michal 'vorner' Vaner
Browse files
[trac553] Tests for cancellation of wildcard
parent
d9fda268
Changes
1
Hide whitespace changes
Inline
Side-by-side
src/lib/datasrc/tests/memory_datasrc_unittest.cc
View file @
76e1d3b2
...
@@ -204,6 +204,7 @@ public:
...
@@ -204,6 +204,7 @@ public:
{
"*.dnamewild.example.org. 300 IN DNAME dnamewild.example."
,
{
"*.dnamewild.example.org. 300 IN DNAME dnamewild.example."
,
&
rr_dnamewild_
},
&
rr_dnamewild_
},
{
"*.child.example.org. 300 IN A 192.0.2.1"
,
&
rr_child_wild_
},
{
"*.child.example.org. 300 IN A 192.0.2.1"
,
&
rr_child_wild_
},
{
"bar.foo.wild.example.org. 300 IN A 192.0.2.2"
,
&
rr_not_wild_
},
{
NULL
,
NULL
}
{
NULL
,
NULL
}
};
};
...
@@ -254,6 +255,7 @@ public:
...
@@ -254,6 +255,7 @@ public:
RRsetPtr
rr_nested_emptywild_
;
RRsetPtr
rr_nested_emptywild_
;
RRsetPtr
rr_nswild_
,
rr_dnamewild_
;
RRsetPtr
rr_nswild_
,
rr_dnamewild_
;
RRsetPtr
rr_child_wild_
;
RRsetPtr
rr_child_wild_
;
RRsetPtr
rr_not_wild_
;
/**
/**
* \brief Test one find query to the zone.
* \brief Test one find query to the zone.
...
@@ -849,6 +851,62 @@ TEST_F(MemoryZoneTest, nestedEmptyWildcard) {
...
@@ -849,6 +851,62 @@ TEST_F(MemoryZoneTest, nestedEmptyWildcard) {
}
}
}
}
/*
* This tests that if there's a name between the wildcard domain and the
* searched one, it will not trigger wildcard, for example, if we have
* *.wild.example.org and bar.foo.example.org, then we know foo.example.org
* exists and is not wildcard. Therefore, search for aaa.foo.example.org should
* return NXDOMAIN.
*
* Tests few cases "around" the canceled wildcard match, to see something that
* shouldn't be canceled isn't.
*/
TEST_F
(
MemoryZoneTest
,
cancelWildcard
)
{
EXPECT_EQ
(
SUCCESS
,
zone_
.
add
(
rr_wild_
));
EXPECT_EQ
(
SUCCESS
,
zone_
.
add
(
rr_not_wild_
));
// These should be canceled
{
SCOPED_TRACE
(
"Canceled under foo.example.org"
);
findTest
(
Name
(
"aaa.foo.wild.example.org"
),
RRType
::
A
(),
Zone
::
NXDOMAIN
);
findTest
(
Name
(
"zzz.foo.wild.example.org"
),
RRType
::
A
(),
Zone
::
NXDOMAIN
);
}
// This is existing, non-wildcard domain, shouldn't wildcard at all
{
SCOPED_TRACE
(
"Existing domain under foo.example.org"
);
findTest
(
Name
(
"bar.foo.wild.example.org"
),
RRType
::
A
(),
Zone
::
SUCCESS
,
true
,
rr_not_wild_
);
}
// These should be caught by the wildcard
{
SCOPED_TRACE
(
"Neighbor wildcards to foo.example.org"
);
const
char
*
names
[]
=
{
"aaa.bbb.wild.example.org"
,
"aaa.zzz.wild.example.org"
,
"zzz.wild.example.org"
,
NULL
};
for
(
const
char
**
name
(
names
);
*
name
;
++
name
)
{
SCOPED_TRACE
(
string
(
"Node "
)
+
*
name
);
findTest
(
Name
(
*
name
),
RRType
::
A
(),
Zone
::
SUCCESS
,
false
,
rr_wild_
,
NULL
,
NULL
,
Zone
::
FIND_DEFAULT
,
true
);
}
}
// This shouldn't be wildcarded, it's an existing domain
{
SCOPED_TRACE
(
"The foo.wild.example.org itself"
);
findTest
(
Name
(
"foo.wild.example.org"
),
RRType
::
A
(),
Zone
::
NXRRSET
);
}
}
TEST_F
(
MemoryZoneTest
,
loadBadWildcard
)
{
TEST_F
(
MemoryZoneTest
,
loadBadWildcard
)
{
// We reject loading the zone if it contains a wildcard name for
// We reject loading the zone if it contains a wildcard name for
// NS or DNAME.
// NS or DNAME.
...
...
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