Skip to content
GitLab
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
4f9f077f
Commit
4f9f077f
authored
Aug 02, 2012
by
Mukund Sivaraman
Browse files
Merge branch 'master' into trac2054
parents
dca052ba
a3e59452
Changes
11
Hide whitespace changes
Inline
Side-by-side
ChangeLog
View file @
4f9f077f
456. [bug] muks
BIND 10 now compiles against log4cplus-1.1.0 (RC releases)
also. Thanks to John Lumby for sending a patch.
(Trac #2169, git 7d7e5269d57451191c0aef1b127d292d3615fe2c)
455. [func]* vorner
The server now uses newer API for data sources. This would be an
internal change, however, the data sources are now configured
...
...
src/bin/auth/tests/testdata/.gitignore
0 → 100644
View file @
4f9f077f
/badExampleQuery_fromWire.wire
/examplequery_fromWire.wire
/iqueryresponse_fromWire.wire
/multiquestion_fromWire.wire
/queryBadEDNS_fromWire.wire
/shortanswer_fromWire.wire
/simplequery_fromWire.wire
/simpleresponse_fromWire.wire
src/bin/cfgmgr/plugins/.gitignore
0 → 100644
View file @
4f9f077f
/datasrc.spec
/datasrc.spec.pre
src/bin/msgq/b10-msgq.8
View file @
4f9f077f
...
...
@@ -2,12 +2,12 @@
.\" Title: b10-msgq
.\" Author: [see the "AUTHORS" section]
.\" Generator: DocBook XSL Stylesheets v1.75.2 <http://docbook.sf.net/>
.\" Date:
August 4
, 201
0
.\" Date:
June 25
, 201
2
.\" Manual: BIND10
.\" Source: BIND10
.\" Language: English
.\"
.TH "B10\-MSGQ" "8" "
August 4
, 201
0
" "BIND10" "BIND10"
.TH "B10\-MSGQ" "8" "
June 25
, 201
2
" "BIND10" "BIND10"
.\" -----------------------------------------------------------------
.\" * set default formatting
.\" -----------------------------------------------------------------
...
...
@@ -87,8 +87,6 @@ is assigned a unique identifier \-\- this is the local name\&. The commands it h
.sp
.RE
.PP
It listens on 127\&.0\&.0\&.1\&.
.PP
The
\fBb10\-msgq\fR
daemon may be cleanly stopped by sending the SIGTERM signal to the process\&. This shutdown does not notify the subscribers\&.
...
...
src/lib/datasrc/memory/tests/.gitignore
0 → 100644
View file @
4f9f077f
/run_unittests
src/lib/datasrc/rbtree.h
View file @
4f9f077f
...
...
@@ -221,6 +221,26 @@ public:
return
(
dns
::
LabelSequence
(
getLabelsData
()));
}
/// \brief Return the absolute label sequence of the node.
///
/// This method returns the label sequence corresponding to the full
/// name of the node; i.e. the entire name as it appears in the zone.
///
/// It takes the (partial) name of the node itself, and extends it
/// with all upper nodes.
///
/// \note Care must be taken with the buffer that is used here; this
/// method overwrites its data, so it should not be associated with
/// any other LabelSequence during the lifetime of the LabelSequence
/// returned by this method. See LabelSequence::extend(), which is used
/// by this method.
///
/// \param buf A data buffer where the label sequence will be built.
/// The data in this buffer will be overwritten by this call.
/// \return A LabelSequence with the absolute name of this node.
isc
::
dns
::
LabelSequence
getAbsoluteLabels
(
uint8_t
buf
[
isc
::
dns
::
LabelSequence
::
MAX_SERIALIZED_LENGTH
])
const
;
/// \brief Return the data stored in this node.
///
/// You should not delete the data, it is handled by shared pointers.
...
...
@@ -502,6 +522,21 @@ RBNode<T>::getUpperNode() const {
return
(
current
->
getParent
());
}
template
<
typename
T
>
isc
::
dns
::
LabelSequence
RBNode
<
T
>::
getAbsoluteLabels
(
uint8_t
buf
[
isc
::
dns
::
LabelSequence
::
MAX_SERIALIZED_LENGTH
])
const
{
isc
::
dns
::
LabelSequence
result
(
getLabels
(),
buf
);
const
RBNode
<
T
>*
upper
=
getUpperNode
();
while
(
upper
!=
NULL
)
{
result
.
extend
(
upper
->
getLabels
(),
buf
);
upper
=
upper
->
getUpperNode
();
}
return
(
result
);
}
template
<
typename
T
>
const
RBNode
<
T
>*
RBNode
<
T
>::
abstractSuccessor
(
typename
RBNode
<
T
>::
RBNodePtr
RBNode
<
T
>::*
left
,
...
...
src/lib/datasrc/tests/rbtree_unittest.cc
View file @
4f9f077f
...
...
@@ -104,6 +104,7 @@ protected:
RBTree
<
int
>&
rbtree_expose_empty_node
;
RBNode
<
int
>*
rbtnode
;
const
RBNode
<
int
>*
crbtnode
;
uint8_t
buf
[
LabelSequence
::
MAX_SERIALIZED_LENGTH
];
};
TEST_F
(
RBTreeTest
,
nodeCount
)
{
...
...
@@ -449,6 +450,11 @@ TEST_F(RBTreeTest, chainLevel) {
tree
.
find
(
node_name
,
&
crbtnode
,
chain
));
EXPECT_EQ
(
1
,
chain
.
getLevelCount
());
// Check the name of the found node (should have '.' as both non-absolute
// and absolute name
EXPECT_EQ
(
"."
,
crbtnode
->
getLabels
().
toText
());
EXPECT_EQ
(
"."
,
crbtnode
->
getAbsoluteLabels
(
buf
).
toText
());
/*
* Now creating a possibly deepest tree with MAX_LABELS levels.
* it should look like:
...
...
@@ -472,6 +478,12 @@ TEST_F(RBTreeTest, chainLevel) {
EXPECT_EQ
(
RBTree
<
int
>::
EXACTMATCH
,
tree
.
find
(
node_name
,
&
crbtnode
,
found_chain
));
EXPECT_EQ
(
i
,
found_chain
.
getLevelCount
());
// The non-absolute name should only have the first label
EXPECT_EQ
(
"a"
,
crbtnode
->
getLabels
().
toText
());
// But the absolute name should have all labels
EXPECT_EQ
(
node_name
.
toText
(),
crbtnode
->
getAbsoluteLabels
(
buf
).
toText
());
}
// Confirm the last inserted name has the possible maximum length with
...
...
@@ -1018,4 +1030,45 @@ TEST_F(RBTreeTest, root) {
root
.
find
(
Name
(
"example.com"
),
&
crbtnode
));
EXPECT_EQ
(
rbtnode
,
crbtnode
);
}
TEST_F
(
RBTreeTest
,
getAbsoluteLabels
)
{
// The full absolute names of the nodes in the tree
// with the addition of the explicit root node
const
char
*
const
domain_names
[]
=
{
"c"
,
"b"
,
"a"
,
"x.d.e.f"
,
"z.d.e.f"
,
"g.h"
,
"i.g.h"
,
"o.w.y.d.e.f"
,
"j.z.d.e.f"
,
"p.w.y.d.e.f"
,
"q.w.y.d.e.f"
,
"k.g.h"
};
// The names of the nodes themselves, as they end up in the tree
const
char
*
const
first_labels
[]
=
{
"c"
,
"b"
,
"a"
,
"x"
,
"z"
,
"g.h"
,
"i"
,
"o"
,
"j"
,
"p"
,
"q"
,
"k"
};
const
int
name_count
=
sizeof
(
domain_names
)
/
sizeof
(
domain_names
[
0
]);
for
(
int
i
=
0
;
i
<
name_count
;
++
i
)
{
EXPECT_EQ
(
RBTree
<
int
>::
EXACTMATCH
,
rbtree
.
find
(
Name
(
domain_names
[
i
]),
&
crbtnode
));
// First make sure the names themselves are not absolute
const
LabelSequence
ls
(
crbtnode
->
getLabels
());
EXPECT_EQ
(
first_labels
[
i
],
ls
.
toText
());
EXPECT_FALSE
(
ls
.
isAbsolute
());
// Now check the absolute names
const
LabelSequence
abs_ls
(
crbtnode
->
getAbsoluteLabels
(
buf
));
EXPECT_EQ
(
Name
(
domain_names
[
i
]).
toText
(),
abs_ls
.
toText
());
EXPECT_TRUE
(
abs_ls
.
isAbsolute
());
}
// Explicitly add and find a root node, to see that getAbsoluteLabels
// also works when getLabels() already returns an absolute LabelSequence
rbtree
.
insert
(
mem_sgmt_
,
Name
(
"."
),
&
rbtnode
);
rbtnode
->
setData
(
RBNode
<
int
>::
NodeDataPtr
(
new
int
(
1
)));
EXPECT_EQ
(
RBTree
<
int
>::
EXACTMATCH
,
rbtree
.
find
(
Name
(
"."
),
&
crbtnode
));
EXPECT_TRUE
(
crbtnode
->
getLabels
().
isAbsolute
());
EXPECT_EQ
(
"."
,
crbtnode
->
getLabels
().
toText
());
EXPECT_TRUE
(
crbtnode
->
getAbsoluteLabels
(
buf
).
isAbsolute
());
EXPECT_EQ
(
"."
,
crbtnode
->
getAbsoluteLabels
(
buf
).
toText
());
}
}
src/lib/log/logger_impl.cc
View file @
4f9f077f
...
...
@@ -22,6 +22,7 @@
#include
<boost/static_assert.hpp>
#include
<log4cplus/configurator.h>
#include
<log4cplus/loggingmacros.h>
#include
<log/logger.h>
#include
<log/logger_impl.h>
...
...
src/lib/log/logger_level_impl.cc
View file @
4f9f077f
...
...
@@ -185,20 +185,22 @@ LoggerLevelImpl::logLevelFromString(const log4cplus::tstring& level) {
// Convert logging level to string. If the level is a valid debug level,
// return the string DEBUG, else return the empty string.
l
og
4cplus
::
ts
tring
L
og
gerLevelImpl
::
LogLevelS
tring
LoggerLevelImpl
::
logLevelToString
(
log4cplus
::
LogLevel
level
)
{
static
const
tstring
debug_string
(
"DEBUG"
);
static
const
tstring
empty_string
;
Level
bindlevel
=
convertToBindLevel
(
level
);
Severity
&
severity
=
bindlevel
.
severity
;
int
&
dbglevel
=
bindlevel
.
dbglevel
;
if
((
severity
==
DEBUG
)
&&
((
dbglevel
>=
MIN_DEBUG_LEVEL
)
&&
(
dbglevel
<=
MAX_DEBUG_LEVEL
)))
{
return
(
tstring
(
"DEBUG"
)
);
return
(
debug_string
);
}
// Unknown, so return empty string for log4cplus to try other conversion
// functions.
return
(
t
string
()
);
return
(
empty_
string
);
}
// Initialization. Register the conversion functions with the LogLevelManager.
...
...
src/lib/log/logger_level_impl.h
View file @
4f9f077f
...
...
@@ -16,6 +16,7 @@
#define __LOGGER_LEVEL_IMPL_H
#include
<log4cplus/logger.h>
#include
<log4cplus/version.h>
#include
<log/logger_level.h>
namespace
isc
{
...
...
@@ -65,6 +66,12 @@ namespace log {
class
LoggerLevelImpl
{
public:
#if (LOG4CPLUS_VERSION >= LOG4CPLUS_MAKE_VERSION(1, 1, 0))
typedef
log4cplus
::
tstring
const
&
LogLevelString
;
#else
typedef
log4cplus
::
tstring
LogLevelString
;
#endif
/// \brief Convert BIND 10 level to log4cplus logging level
///
/// Converts the BIND 10 severity level into a log4cplus logging level.
...
...
@@ -112,7 +119,7 @@ public:
/// \param level Extended logging level
///
/// \return Equivalent string.
static
l
og
4cplus
::
ts
tring
logLevelToString
(
log4cplus
::
LogLevel
level
);
static
L
og
LevelS
tring
logLevelToString
(
log4cplus
::
LogLevel
level
);
/// \brief Initialize extended logging levels
///
...
...
src/lib/log/logger_manager_impl.cc
View file @
4f9f077f
...
...
@@ -17,6 +17,7 @@
#include
<log4cplus/logger.h>
#include
<log4cplus/configurator.h>
#include
<log4cplus/hierarchy.h>
#include
<log4cplus/consoleappender.h>
#include
<log4cplus/fileappender.h>
#include
<log4cplus/syslogappender.h>
...
...
Write
Preview
Supports
Markdown
0%
Try again
or
attach a new 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