-// Copyright (C) 2012-2017 Internet Systems Consortium, Inc. ("ISC")
+// Copyright (C) 2012-2018 Internet Systems Consortium, Inc. ("ISC")
//
// This Source Code Form is subject to the terms of the Mozilla Public
// License, v. 2.0. If a copy of the MPL was not distributed with this
RCM_WHEN_PRESENT;
std::string generated_prefix = "the_prefix";
std::string qualifying_suffix = "the.suffix.";
+ std::string hostname_char_set = "[^A-Z]";
+ std::string hostname_char_replacement = "*";
// Verify that we can construct a valid, enabled instance.
ASSERT_NO_THROW(d2_client_config.reset(new
override_client_update,
replace_client_name_mode,
generated_prefix,
- qualifying_suffix)));
-
+ qualifying_suffix,
+ hostname_char_set,
+ hostname_char_replacement)));
ASSERT_TRUE(d2_client_config);
// Add user context
"\"replace-client-name\": \"when-present\",\n"
"\"generated-prefix\": \"the_prefix\",\n"
"\"qualifying-suffix\": \"the.suffix.\",\n"
+ "\"hostname-char-set\": \"[^A-Z]\",\n"
+ "\"hostname-char-replacement\": \"*\",\n"
"\"user-context\": { \"foo\": 1 }\n"
"}\n";
runToElementTest<D2ClientConfig>(expected, *d2_client_config);
override_client_update,
replace_client_name_mode,
generated_prefix,
- qualifying_suffix)),
+ qualifying_suffix,
+ hostname_char_set,
+ hostname_char_replacement)),
D2ClientError);
/// @todo if additional validation is added to ctor, this test needs to
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(ref_config);
// Check a configuration that is identical to reference configuration.
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_TRUE(*ref_config == *test_config);
EXPECT_FALSE(*ref_config != *test_config);
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
test_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 333, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, test_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, ref_address, 333, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, ref_address, 478, 2048,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, false, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, false, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_NEVER,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "bogus", "suf-fix")));
+ "bogus", "suf-fix", "[^A-Z]", "*")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
ref_address, 477, ref_address, 478, 1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "bogus")));
+ "pre-fix", "bogus", "[^A-Z]", "*")));
+ ASSERT_TRUE(test_config);
+ EXPECT_FALSE(*ref_config == *test_config);
+ EXPECT_TRUE(*ref_config != *test_config);
+
+ // Check a configuration that differs only by hostname_char_set
+ ASSERT_NO_THROW(test_config.reset(new D2ClientConfig(true,
+ ref_address, 477, ref_address, 478, 1024,
+ dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
+ true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
+ "pre-fix", "suf-fix", "[abc]", "*")));
+ ASSERT_TRUE(test_config);
+ EXPECT_FALSE(*ref_config == *test_config);
+ EXPECT_TRUE(*ref_config != *test_config);
+
+ // Check a configuration that differs only by hostname_char_replacment
+ ASSERT_NO_THROW(test_config.reset(new D2ClientConfig(true,
+ ref_address, 477, ref_address, 478, 1024,
+ dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
+ true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
+ "pre-fix", "suf-fix", "[^A-Z]", "x")));
ASSERT_TRUE(test_config);
EXPECT_FALSE(*ref_config == *test_config);
EXPECT_TRUE(*ref_config != *test_config);
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "", "")));
// Verify that we can assign a new, non-empty configuration.
ASSERT_NO_THROW(d2_client_mgr->setD2ClientConfig(new_cfg));
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
true, true, true, D2ClientConfig::RCM_WHEN_PRESENT,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "", "")));
// Verify that we can assign a new, non-empty configuration.
ASSERT_NO_THROW(d2_client_mgr->setD2ClientConfig(new_cfg));
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, false, D2ClientConfig::RCM_NEVER,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_TRUE(mgr.ddnsEnabled());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, false, D2ClientConfig::RCM_NEVER,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_TRUE(mgr.ddnsEnabled());
ASSERT_FALSE(cfg->getOverrideClientUpdate());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, true, false, D2ClientConfig::RCM_NEVER,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_TRUE(mgr.ddnsEnabled());
ASSERT_TRUE(cfg->getOverrideNoUpdate());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, true, D2ClientConfig::RCM_NEVER,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_TRUE(mgr.ddnsEnabled());
ASSERT_FALSE(cfg->getOverrideNoUpdate());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, true, false, D2ClientConfig::RCM_NEVER,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_TRUE(mgr.ddnsEnabled());
ASSERT_TRUE(cfg->getOverrideNoUpdate());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, true, D2ClientConfig::RCM_NEVER,
- "prefix", "suffix.com")));
+ "prefix", "suffix.com", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
// Verify that the qualifying suffix gets appended with trailing dot added.
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, true, D2ClientConfig::RCM_NEVER,
- "prefix", "suffix.com")));
+ "prefix", "suffix.com", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
partial_name = "somehost";
qualified_name = mgr.qualifyName(partial_name, false); //false means no dot
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, true, D2ClientConfig::RCM_NEVER,
- "prefix", ""))); //empty suffix
+ "prefix", "", "", ""))); //empty suffix
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
partial_name = "somehost";
qualified_name = mgr.qualifyName(partial_name, false); //false means no dot
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, true, D2ClientConfig::RCM_NEVER,
- "prefix", "hasdot.com.")));
+ "prefix", "hasdot.com.", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
// Verify that the qualifying suffix gets appended without dot added.
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, true, D2ClientConfig::RCM_NEVER,
- "prefix", "")));
+ "prefix", "", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
// Verify that a name with a trailing dot does not get an extraneous
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, true, D2ClientConfig::RCM_NEVER,
- "prefix", "suffix.com")));
+ "prefix", "suffix.com", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
// Verify that it works with an IPv4 address.
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, false, D2ClientConfig::RCM_NEVER,
- "prefix", "suffix.com")));
+ "prefix", "suffix.com", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_EQ(D2ClientConfig::RCM_NEVER, cfg->getReplaceClientNameMode());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, false, D2ClientConfig::RCM_WHEN_PRESENT,
- "prefix", "suffix.com")));
+ "prefix", "suffix.com", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_EQ(D2ClientConfig::RCM_WHEN_PRESENT, cfg->getReplaceClientNameMode());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, false, D2ClientConfig::RCM_NEVER,
- "prefix", "suffix.com")));
+ "prefix", "suffix.com", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_EQ(D2ClientConfig::RCM_NEVER, cfg->getReplaceClientNameMode());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, false, false, D2ClientConfig::RCM_WHEN_PRESENT,
- "prefix", "suffix.com")));
+ "prefix", "suffix.com", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_EQ(D2ClientConfig::RCM_WHEN_PRESENT, cfg->getReplaceClientNameMode());
1024,
dhcp_ddns::NCR_UDP, dhcp_ddns::FMT_JSON,
false, true, false, D2ClientConfig::RCM_NEVER,
- "pre-fix", "suf-fix")));
+ "pre-fix", "suf-fix", "", "")));
ASSERT_NO_THROW(mgr.setD2ClientConfig(cfg));
ASSERT_TRUE(mgr.ddnsEnabled());
ASSERT_TRUE(cfg->getOverrideNoUpdate());