diff Framework/MySQL/MySQLDatabase.cpp @ 24:17f849b2af34

sharing plugin initialization code
author Sebastien Jodogne <s.jodogne@gmail.com>
date Thu, 12 Jul 2018 12:17:39 +0200
parents b2ff1cd2907a
children 6a574d810b98
line wrap: on
line diff
--- a/Framework/MySQL/MySQLDatabase.cpp	Thu Jul 12 10:44:17 2018 +0200
+++ b/Framework/MySQL/MySQLDatabase.cpp	Thu Jul 12 12:17:39 2018 +0200
@@ -300,18 +300,6 @@
   }
 
 
-  static void CheckAlphanumericString(const std::string& name)
-  {
-    for (size_t i = 0; i < name.length(); i++)
-    {
-      if (!isalnum(name[i]))
-      {
-        throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
-      }
-    }
-  }
-  
-
   bool MySQLDatabase::DoesTableExist(MySQLTransaction& transaction,
                                      const std::string& name)
   {
@@ -320,7 +308,10 @@
       throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
     }
 
-    CheckAlphanumericString(name);
+    if (!IsAlphanumericString(name))
+    {
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+    }
   
     Query query("SELECT COUNT(*) FROM information_schema.TABLES WHERE "
                 "(TABLE_SCHEMA = ${database}) AND (TABLE_NAME = ${table})", true);
@@ -349,7 +340,10 @@
       throw Orthanc::OrthancException(Orthanc::ErrorCode_BadSequenceOfCalls);
     }
 
-    CheckAlphanumericString(name);
+    if (!IsAlphanumericString(name))
+    {
+      throw Orthanc::OrthancException(Orthanc::ErrorCode_ParameterOutOfRange);
+    }
   
     Query query("SELECT COUNT(*) FROM information_schema.SCHEMATA "
                 "WHERE SCHEMA_NAME = ${database}", true);
@@ -464,4 +458,18 @@
   {
     mysql_library_end();
   } 
+
+
+  bool MySQLDatabase::IsAlphanumericString(const std::string& s)
+  {
+    for (size_t i = 0; i < s.length(); i++)
+    {
+      if (!isalnum(s[i]))
+      {
+        return false;
+      }
+    }
+
+    return true;
+  }
 }