{ "retry-interval", Element::integer },
{ "tkey-protocol", Element::string },
{ "fallback", Element::boolean },
+ { "exchange-timeout", Element::integer },
{ "servers", Element::list },
{ "user-context", Element::map },
{ "comment", Element::string }
srv->setFallback(fallback->boolValue());
}
- ConstElementPtr tkey_timeout = params->get("exchange-timeout");
+ ConstElementPtr tkey_timeout = map->get("exchange-timeout");
if (!tkey_timeout) {
tkey_timeout = global_tkey_timeout;
}
"\"retry-interval\": 240,\n"
"\"tkey-lifetime\": 7200,\n"
"\"tkey-protocol\": \"UDP\",\n"
+ "\"exchange-timeout\": 2000,\n"
"\"servers\": [\n"
" {\n"
" \"domain-names\": [ ],\n"
" \"rekey-interval\": 64800,\n"
" \"retry-interval\": 2880,\n"
" \"tkey-lifetime\": 86400,\n"
- " \"tkey-protocol\": \"UDP\"\n"
+ " \"tkey-protocol\": \"UDP\",\n"
+ " \"exchange-timeout\": 4000\n"
" },{\n"
" \"id\": \"bar\",\n"
" \"ip-address\": \"192.0.2.2\",\n"
EXPECT_EQ(2880, server->getRetryInterval());
EXPECT_EQ(86400, server->getKeyLifetime());
EXPECT_EQ(IOFetch::UDP, server->getKeyProto());
+ EXPECT_EQ(4000, server->getExchangeTimeout());
ASSERT_NO_THROW(server = servers.at(1));
ASSERT_TRUE(server);
EXPECT_EQ(240, server->getRetryInterval());
EXPECT_EQ(7200, server->getKeyLifetime());
EXPECT_EQ(IOFetch::UDP, server->getKeyProto());
+ EXPECT_EQ(2000, server->getExchangeTimeout());
}
/// @brief Check configure requires a map.
expected += location;
EXPECT_THROW_MSG(cfg.configure(json), BadValue, expected);
+ config = "{ \"exchange-timeout\": false }";
+ ASSERT_NO_THROW(json = Element::fromJSON(config));
+ ASSERT_TRUE(json);
+ expected = "gss_tsig 'exchange-timeout' parameter is not an integer";
+ expected += location;
+ EXPECT_THROW_MSG(cfg.configure(json), BadValue, expected);
+
config = "{ \"user-context\": [ ] }";
ASSERT_NO_THROW(json = Element::fromJSON(config));
ASSERT_TRUE(json);
expected += location;
EXPECT_THROW_MSG(cfg.configure(json), BadValue, expected);
+ config = prefix + " \"exchange-timeout\": false } ] }";
+ ASSERT_NO_THROW(json = Element::fromJSON(config));
+ ASSERT_TRUE(json);
+ expected = "gss_tsig server 'exchange-timeout' parameter is not an integer";
+ expected += location;
+ EXPECT_THROW_MSG(cfg.configure(json), BadValue, expected);
+
config = prefix + " \"user-context\": [ ] } ] }";
ASSERT_NO_THROW(json = Element::fromJSON(config));
ASSERT_TRUE(json);
expected = "'tkey-protocol' parameter must be UDP or TCP (<string>:1:129)";
EXPECT_THROW_MSG(cfg.configure(json), BadValue, expected);
+ config = prefix + " \"exchange-timeout\": -1 } ] }";
+ ASSERT_NO_THROW(json = Element::fromJSON(config));
+ ASSERT_TRUE(json);
+ expected = "'exchange-timeout' parameter is out of range ";
+ expected += "[0..4294967295] (<string>:1:132)";
+ EXPECT_THROW_MSG(cfg.configure(json), BadValue, expected);
+
+ config = prefix + " \"exchange-timeout\": 4294967296 } ] }";
+ ASSERT_NO_THROW(json = Element::fromJSON(config));
+ ASSERT_TRUE(json);
+ expected = "'exchange-timeout' parameter is out of range ";
+ expected += "[0..4294967295] (<string>:1:132)";
+ EXPECT_THROW_MSG(cfg.configure(json), BadValue, expected);
+
config = "{ \"servers\": [ { \"id\": \"\" } ] }";
ASSERT_NO_THROW(json = Element::fromJSON(config));
ASSERT_TRUE(json);