Advertisement
Guest User

Untitled

a guest
Aug 7th, 2017
54
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.01 KB | None | 0 0
  1. diff --git a/mythtv/libs/libmythbase/mythdbcon.cpp b/mythtv/libs/libmythbase/mythdbcon.cpp
  2. index 6bdcb09..61f4e54 100644
  3. --- a/mythtv/libs/libmythbase/mythdbcon.cpp
  4. +++ b/mythtv/libs/libmythbase/mythdbcon.cpp
  5. @@ -19,6 +19,32 @@
  6.  
  7. static const uint kPurgeTimeout = 60 * 60;
  8.  
  9. +bool TestDatabase(QString dbHostName,
  10. + QString dbUserName,
  11. + QString dbPassword,
  12. + QString dbName,
  13. + int dbPort)
  14. +{
  15. + if (dbHostName.isEmpty() || dbUserName.isEmpty())
  16. + return false;
  17. +
  18. + MSqlDatabase *db = new MSqlDatabase("dbtest");
  19. +
  20. + if (!db)
  21. + return false;
  22. +
  23. + DatabaseParams dbparms;
  24. + dbparms.dbName = dbName;
  25. + dbparms.dbUserName = dbUserName;
  26. + dbparms.dbPassword = dbPassword;
  27. + dbparms.dbHostName = dbHostName;
  28. + dbparms.dbPort = dbPort;
  29. +
  30. + db->SetDBParams(dbparms);
  31. +
  32. + return db->OpenDatabase(true);
  33. +}
  34. +
  35. MSqlDatabase::MSqlDatabase(const QString &name)
  36. {
  37. m_name = name;
  38. @@ -55,7 +81,7 @@ bool MSqlDatabase::isOpen()
  39. return false;
  40. }
  41.  
  42. -bool MSqlDatabase::OpenDatabase()
  43. +bool MSqlDatabase::OpenDatabase(bool skipdb)
  44. {
  45. if (!m_db.isValid())
  46. {
  47. @@ -68,44 +94,45 @@ bool MSqlDatabase::OpenDatabase()
  48.  
  49. if (!m_db.isOpen())
  50. {
  51. - DatabaseParams dbparms = GetMythDB()->GetDatabaseParams();
  52. - m_db.setDatabaseName(dbparms.dbName);
  53. - m_db.setUserName(dbparms.dbUserName);
  54. - m_db.setPassword(dbparms.dbPassword);
  55. - m_db.setHostName(dbparms.dbHostName);
  56. + if (!skipdb)
  57. + m_dbparms = GetMythDB()->GetDatabaseParams();
  58. + m_db.setDatabaseName(m_dbparms.dbName);
  59. + m_db.setUserName(m_dbparms.dbUserName);
  60. + m_db.setPassword(m_dbparms.dbPassword);
  61. + m_db.setHostName(m_dbparms.dbHostName);
  62.  
  63. - if (dbparms.dbHostName.isEmpty()) // Bootstrapping without a database?
  64. + if (m_dbparms.dbHostName.isEmpty()) // Bootstrapping without a database?
  65. {
  66. connected = true; // Pretend to be connected
  67. return true; // to reduce errors
  68. }
  69.  
  70. - if (dbparms.dbPort)
  71. - m_db.setPort(dbparms.dbPort);
  72. + if (m_dbparms.dbPort)
  73. + m_db.setPort(m_dbparms.dbPort);
  74.  
  75. - if (dbparms.dbPort && dbparms.dbHostName == "localhost")
  76. + if (m_dbparms.dbPort && m_dbparms.dbHostName == "localhost")
  77. m_db.setHostName("127.0.0.1");
  78.  
  79. connected = m_db.open();
  80.  
  81. - if (!connected && dbparms.wolEnabled)
  82. + if (!connected && m_dbparms.wolEnabled)
  83. {
  84. int trycount = 0;
  85.  
  86. - while (!connected && trycount++ < dbparms.wolRetry)
  87. + while (!connected && trycount++ < m_dbparms.wolRetry)
  88. {
  89. VERBOSE(VB_GENERAL, QString(
  90. "Using WOL to wakeup database server (Try %1 of %2)")
  91. - .arg(trycount).arg(dbparms.wolRetry));
  92. + .arg(trycount).arg(m_dbparms.wolRetry));
  93.  
  94. - if (myth_system(dbparms.wolCommand) != GENERIC_EXIT_OK)
  95. + if (myth_system(m_dbparms.wolCommand) != GENERIC_EXIT_OK)
  96. {
  97. VERBOSE(VB_IMPORTANT,
  98. QString("Failed to run WOL command '%1'")
  99. - .arg(dbparms.wolCommand));
  100. + .arg(m_dbparms.wolCommand));
  101. }
  102.  
  103. - sleep(dbparms.wolReconnect);
  104. + sleep(m_dbparms.wolReconnect);
  105. connected = m_db.open();
  106. }
  107.  
  108. diff --git a/mythtv/libs/libmythbase/mythdbcon.h b/mythtv/libs/libmythbase/mythdbcon.h
  109. index 77fad59..e6fc099 100644
  110. --- a/mythtv/libs/libmythbase/mythdbcon.h
  111. +++ b/mythtv/libs/libmythbase/mythdbcon.h
  112. @@ -10,9 +10,16 @@
  113. #include <QList>
  114.  
  115. #include "mythbaseexp.h"
  116. +#include "mythdbparams.h"
  117.  
  118. class QSemaphore;
  119.  
  120. +MBASE_PUBLIC bool TestDatabase(QString dbHostName,
  121. + QString dbUserName,
  122. + QString dbPassword,
  123. + QString dbName = "mythconverg",
  124. + int dbPort = 3306);
  125. +
  126. /// \brief QSqlDatabase wrapper, used by MSqlQuery. Do not use directly.
  127. class MBASE_PUBLIC MSqlDatabase
  128. {
  129. @@ -22,9 +29,11 @@ class MBASE_PUBLIC MSqlDatabase
  130. MSqlDatabase(const QString &name);
  131. ~MSqlDatabase(void);
  132.  
  133. + bool OpenDatabase(bool skipdb = false);
  134. + void SetDBParams(DatabaseParams params) { m_dbparms = params; };
  135. +
  136. private:
  137. bool isOpen(void);
  138. - bool OpenDatabase(void);
  139. bool KickDatabase(void);
  140. QString GetConnectionName(void) const { return m_name; }
  141. QSqlDatabase db(void) const { return m_db; }
  142. @@ -34,6 +43,7 @@ class MBASE_PUBLIC MSqlDatabase
  143. QString m_name;
  144. QSqlDatabase m_db;
  145. QDateTime m_lastDBKick;
  146. + DatabaseParams m_dbparms;
  147. };
  148.  
  149. /// \brief DB connection pool, used by MSqlQuery. Do not use directly.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement