Database fallback for clientprefs is now more "intelligent" (bug 3564, r=pred).
This commit is contained in:
parent
7d3ebce7d1
commit
50e1c5ba1f
@ -46,6 +46,7 @@ CookieTypeHandler g_CookieTypeHandler;
|
||||
HandleType_t g_CookieIterator = 0;
|
||||
CookieIteratorHandler g_CookieIteratorHandler;
|
||||
DbDriver g_DriverType;
|
||||
static const DatabaseInfo *storage_local = NULL;
|
||||
|
||||
bool ClientPrefs::SDK_OnLoad(char *error, size_t maxlength, bool late)
|
||||
{
|
||||
@ -58,6 +59,20 @@ bool ClientPrefs::SDK_OnLoad(char *error, size_t maxlength, bool late)
|
||||
{
|
||||
DBInfo = dbi->FindDatabaseConf("default");
|
||||
|
||||
if (DBInfo == NULL ||
|
||||
(strcmp(DBInfo->host, "localhost") == 0 &&
|
||||
strcmp(DBInfo->database, "sourcemod") == 0 &&
|
||||
strcmp(DBInfo->user, "root") == 0 &&
|
||||
strcmp(DBInfo->pass, "") == 0 &&
|
||||
strcmp(DBInfo->driver, "") == 0))
|
||||
{
|
||||
storage_local = dbi->FindDatabaseConf("storage-local");
|
||||
if (DBInfo == NULL)
|
||||
{
|
||||
DBInfo = storage_local;
|
||||
}
|
||||
}
|
||||
|
||||
if (DBInfo == NULL)
|
||||
{
|
||||
snprintf(error, maxlength, "Could not find \"clientprefs\" or \"default\" database configs");
|
||||
@ -176,6 +191,14 @@ void ClientPrefs::DatabaseConnect()
|
||||
|
||||
Database = Driver->Connect(DBInfo, true, error, sizeof(error));
|
||||
|
||||
if (Database == NULL &&
|
||||
DBInfo != storage_local &&
|
||||
storage_local != NULL)
|
||||
{
|
||||
DBInfo = storage_local;
|
||||
Database = Driver->Connect(DBInfo, true, error, sizeof(error));
|
||||
}
|
||||
|
||||
if (Database == NULL)
|
||||
{
|
||||
g_pSM->LogError(myself, error);
|
||||
|
Loading…
Reference in New Issue
Block a user