#include <boost/foreach.hpp>
#include <boost/lexical_cast.hpp>
+#include <boost/algorithm/string/predicate.hpp>
#include <string>
// If the lengths are identical and the names match we're done.
if (req_len == dom_len) {
- if (fqdn == domain_name) {
+ if (boost::iequals(fqdn,domain_name)) {
// exact match, done
domain = map_pair.second;
return (true);
// prevents "onetwo.net" from matching "two.net".
size_t offset = req_len - dom_len;
if ((fqdn[offset - 1] == '.') &&
- (fqdn.compare(offset, std::string::npos, domain_name) == 0)) {
+ (boost::iequals(fqdn.substr(offset), domain_name))) {
// Fqdn contains domain name, keep it if its better than
// any we have matched so far.
if (dom_len > match_len) {
EXPECT_TRUE(cfg_mgr_->matchForward("tmark.org", match));
EXPECT_EQ("tmark.org", match->getName());
+ // Verify that search is case insensisitive.
+ EXPECT_TRUE(cfg_mgr_->matchForward("TMARK.ORG", match));
+ EXPECT_EQ("tmark.org", match->getName());
+
// Verify that an exact match works.
EXPECT_TRUE(cfg_mgr_->matchForward("one.tmark.org", match));
EXPECT_EQ("one.tmark.org", match->getName());
" \"dns_servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } "
" ] }, "
- "{ \"name\": \"2.0.3.0.8.B.D.0.1.0.0.2.ip6.arpa.\" , "
+ // Note mixed case to test case insensitivity.
+ "{ \"name\": \"2.0.3.0.8.b.d.0.1.0.0.2.IP6.ARPA.\" , "
" \"dns_servers\" : [ "
" { \"ip_address\": \"127.0.0.1\" } "
" ] },"
// Verify a IPv6 match.
EXPECT_TRUE(cfg_mgr_->matchReverse("2001:db8:302:99::",match));
- EXPECT_EQ("2.0.3.0.8.B.D.0.1.0.0.2.ip6.arpa.", match->getName());
+ EXPECT_EQ("2.0.3.0.8.b.d.0.1.0.0.2.IP6.ARPA.", match->getName());
// Verify a IPv6 wild card match.
EXPECT_TRUE(cfg_mgr_->matchReverse("2001:db8:99:302::",match));