Browse Source

[trac1004] also make sure 'foobar' is ignored when root is 'foo'

Jelte Jansen 14 years ago
parent
commit
690dafd743
2 changed files with 9 additions and 1 deletions
  1. 1 1
      src/lib/config/ccsession.cc
  2. 8 0
      src/lib/config/tests/ccsession_unittests.cc

+ 1 - 1
src/lib/config/ccsession.cc

@@ -260,7 +260,7 @@ getRelatedLoggers(ConstElementPtr loggers) {
 
     BOOST_FOREACH(ConstElementPtr cur_logger, loggers->listValue()) {
         const std::string cur_name = cur_logger->get("name")->stringValue();
-        if (cur_name.find(root_name) == 0) {
+        if (cur_name == root_name || cur_name.find(root_name + ".") == 0) {
             our_names.insert(cur_name);
             result->add(cur_logger);
         }

+ 8 - 0
src/lib/config/tests/ccsession_unittests.cc

@@ -649,11 +649,19 @@ TEST(LogConfigTest, relatedLoggersTest) {
     // The default root logger name is "bind10"
     doRelatedLoggersTest("[{ \"name\": \"other_module\" }]",
                          "[]");
+    doRelatedLoggersTest("[{ \"name\": \"other_module.somelib\" }]",
+                         "[]");
+    doRelatedLoggersTest("[{ \"name\": \"bind10_other\" }]",
+                         "[]");
+    doRelatedLoggersTest("[{ \"name\": \"bind10_other.somelib\" }]",
+                         "[]");
     doRelatedLoggersTest("[ { \"name\": \"other_module\" },"
                          "  { \"name\": \"bind10\" }]",
                          "[ { \"name\": \"bind10\" } ]");
     doRelatedLoggersTest("[ { \"name\": \"bind10\" }]",
                          "[ { \"name\": \"bind10\" } ]");
+    doRelatedLoggersTest("[ { \"name\": \"bind10.somelib\" }]",
+                         "[ { \"name\": \"bind10.somelib\" } ]");
     doRelatedLoggersTest("[ { \"name\": \"other_module.somelib\" },"
                          "  { \"name\": \"bind10.somelib\" }]",
                          "[ { \"name\": \"bind10.somelib\" } ]");