From 62752db4c49a8679b51d5996003fd3a23c2a3f2d Mon Sep 17 00:00:00 2001 From: Adam Date: Thu, 25 Aug 2011 18:24:06 -0400 Subject: Rewrote mlock saving/loading code to not use this silly extensible hack --- modules/database/db_mysql.cpp | 21 +++++++++++++-------- 1 file changed, 13 insertions(+), 8 deletions(-) (limited to 'modules/database/db_mysql.cpp') diff --git a/modules/database/db_mysql.cpp b/modules/database/db_mysql.cpp index 19d41bb6e..a90276274 100644 --- a/modules/database/db_mysql.cpp +++ b/modules/database/db_mysql.cpp @@ -512,14 +512,19 @@ class DBMySQL : public Module continue; } - std::vector mlocks; - ci->GetExtRegular("db_mlock", mlocks); - - Anope::string modestring = r.Get(i, "status") + " " + r.Get(i, "mode") + " " + r.Get(i, "setter") + " " + r.Get(i, "created") + " " + r.Get(i, "param"); - - mlocks.push_back(modestring); - - ci->Extend("db_mlock", new ExtensibleItemRegular >(mlocks)); + Anope::string mode_name = r.Get(i, "mode"); + bool set = r.Get(i, "status") == "1" ? true : false; + Anope::string setter = r.Get(i, "setter"); + time_t mcreated = r.Get(i, "created").is_pos_number_only() ? convertTo(r.Get(i, "created")) : Anope::CurTime; + Anope::string param = r.Get(i, "param"); + + for (size_t j = CMODE_BEGIN + 1; j < CMODE_END; ++j) + if (ChannelModeNameStrings[j] == mode_name) + { + ChannelModeName n = static_cast(j); + ci->mode_locks.insert(std::make_pair(n, ModeLock(set, n, param, setter, mcreated))); + break; + } } query = "SELECT * FROM `anope_ms_info`"; -- cgit