diff OrthancServer/OrthancInitialization.cpp @ 690:2e67366aab83

case-insensitive matching of Application Entity Titles
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 04 Feb 2014 15:54:46 +0100
parents 2d0a347e8cfc
children 4c1860179cc5
line wrap: on
line diff
--- a/OrthancServer/OrthancInitialization.cpp	Mon Feb 03 16:06:58 2014 +0100
+++ b/OrthancServer/OrthancInitialization.cpp	Tue Feb 04 15:54:46 2014 +0100
@@ -465,6 +465,25 @@
   }
 
 
+  bool IsSameAETitle(const std::string& aet1,
+                     const std::string& aet2)
+  {
+    if (GetGlobalBoolParameter("StrictAetComparison", false))
+    {
+      // Case-sensitive matching
+      return aet1 == aet2;
+    }
+    else
+    {
+      // Case-insensitive matching (default)
+      std::string tmp1, tmp2;
+      Toolbox::ToLowerCase(tmp1, aet1);
+      Toolbox::ToLowerCase(tmp2, aet2);
+      return tmp1 == tmp2;
+    }
+  }
+
+
   bool LookupDicomModalityUsingAETitle(const std::string& aet,
                                        std::string& symbolicName,
                                        std::string& address,
@@ -482,7 +501,7 @@
         std::string thisAet;
         GetDicomModalityUsingSymbolicName(*it, thisAet, address, port, manufacturer);
         
-        if (aet == thisAet)
+        if (IsSameAETitle(aet, thisAet))
         {
           return true;
         }