33 typedef std::list<SavedAddon> SavedAddonsList;
35 SavedAddonsList m_knownAddons;
51 Field* fields = result->Fetch();
56 m_knownAddons.push_back(
SavedAddon(name, crc));
60 while (result->NextRow());
65 TC_LOG_INFO(
"server.loading",
">> Loaded 0 known addons. DB table `addons` is empty!");
68 result =
CharacterDatabase.Query(
"SELECT id, name, version, UNIX_TIMESTAMP(timestamp) FROM banned_addons ORDER BY timestamp");
76 Field* fields = result->Fetch();
79 addon.
Id = fields[0].
GetUInt32() + dbcMaxBannedAddon;
83 std::string version = fields[2].
GetString();
88 m_bannedAddons.push_back(addon);
92 while (result->NextRow());
107 m_knownAddons.emplace_back(name, publicKeyCrc);
112 for (SavedAddonsList::const_iterator it = m_knownAddons.begin(); it != m_knownAddons.end(); ++it)
115 if (addon.
Name == name)
124 return &m_bannedAddons;
DBCStorage< BannedAddOnsEntry > sBannedAddOnsStore(BannedAddOnsfmt)
std::shared_ptr< ResultSet > QueryResult
DatabaseWorkerPool< CharacterDatabaseConnection > CharacterDatabase
Accessor to the character database.
#define TC_LOG_INFO(filterType__,...)
uint32 GetMSTimeDiffToNow(uint32 oldMSTime)
Class used to access individual fields of database query result.
std::string GetString() const
void setUInt32(uint8 index, uint32 value)
void setString(uint8 index, std::string const &value)
static Digest GetDigestOf(uint8 const *data, size_t len)
void SaveAddon(std::string const &name, uint32 publicKeyCrc)
std::vector< BannedAddon > BannedAddonList
SavedAddon const * GetAddonInfo(const std::string &name)
BannedAddonList const * GetBannedAddons()
std::array< uint8, 16 > NameMD5
std::array< uint8, 16 > VersionMD5