mirror of
https://gitlab.isc.org/isc-projects/kea
synced 2025-09-03 23:45:27 +00:00
[2390] Add MX implementation
This commit is contained in:
@@ -35,6 +35,7 @@ import sys
|
||||
new_rdata_factory_users = [('aaaa', 'in'),
|
||||
('hinfo', 'generic'),
|
||||
('naptr', 'generic'),
|
||||
('mx', 'generic'),
|
||||
('soa', 'generic'),
|
||||
('spf', 'generic'),
|
||||
('txt', 'generic')
|
||||
|
@@ -57,6 +57,19 @@ MX::MX(const std::string& mx_str) :
|
||||
mxname_ = Name(mxname);
|
||||
}
|
||||
|
||||
MX::MX(MasterLexer& lexer, const Name*, MasterLoader::Options,
|
||||
MasterLoaderCallbacks&) :
|
||||
preference_(0), mxname_(".")
|
||||
{
|
||||
uint32_t num = lexer.getNextToken(MasterToken::NUMBER).getNumber();
|
||||
if (num > 65535) {
|
||||
isc_throw(InvalidRdataText, "Invalid MX preference");
|
||||
}
|
||||
|
||||
preference_ = static_cast<uint16_t>(num);
|
||||
mxname_ = Name(lexer.getNextToken(MasterToken::QSTRING).getString());
|
||||
}
|
||||
|
||||
MX::MX(uint16_t preference, const Name& mxname) :
|
||||
preference_(preference), mxname_(mxname)
|
||||
{}
|
||||
|
@@ -70,6 +70,10 @@ TEST_F(Rdata_MX_Test, createFromLexer) {
|
||||
// Exceptions cause NULL to be returned.
|
||||
EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
|
||||
"10 mx. example.com"));
|
||||
|
||||
// 65536 is larger than maximum possible preference
|
||||
EXPECT_FALSE(test::createRdataUsingLexer(RRType::MX(), RRClass::IN(),
|
||||
"65536 mx.example.com"));
|
||||
}
|
||||
|
||||
TEST_F(Rdata_MX_Test, toWireRenderer) {
|
||||
|
Reference in New Issue
Block a user