1
0
mirror of https://github.com/anope/anope.git synced 2026-06-27 19:06:39 +02:00

Save unconfirmed status and passcodes in the database.

Fix db_sql_live to not reinsert all records if there are extra columns.
Plexus has no chmode +r
This commit is contained in:
Adam
2013-08-24 22:23:04 -04:00
parent 8be5f53f1f
commit 446b3a910d
4 changed files with 14 additions and 11 deletions
+2 -2
View File
@@ -340,8 +340,8 @@ class NSRegister : public Module
CommandNSConfirm commandnsconfirm;
CommandNSResend commandnsrsend;
PrimitiveExtensibleItem<bool> unconfirmed;
PrimitiveExtensibleItem<Anope::string> passcode;
SerializableExtensibleItem<bool> unconfirmed;
SerializableExtensibleItem<Anope::string> passcode;
public:
NSRegister(const Anope::string &modname, const Anope::string &creator) : Module(modname, creator, VENDOR),
+6 -4
View File
@@ -243,11 +243,13 @@ class DBSQL : public Module, public Pipe
if (obj)
{
/* The Unserialize operation is destructive so rebuild the data for UpdateCache.
* Also the old data may contain columns that we don't use, so we reserialize the
* object to know for sure our cache is consistent
*/
Data data2;
/* The Unserialize operation is destructive so rebuild the data for UpdateCache */
for (std::map<Anope::string, Anope::string>::const_iterator rit = row.begin(), rit_end = row.end(); rit != rit_end; ++rit)
if (rit->first != "id" && rit->first != "timestamp")
data2[rit->first] << rit->second;
obj->Serialize(data2);
obj->UpdateCache(data2); /* We know this is the most up to date copy */
}
}
+6 -4
View File
@@ -216,11 +216,13 @@ class DBMySQL : public Module, public Pipe
new_s->id = id;
obj->objects[id] = new_s;
/* The Unserialize operation is destructive so rebuild the data for UpdateCache.
* Also the old data may contain columns that we don't use, so we reserialize the
* object to know for sure our cache is consistent
*/
Data data2;
/* The Unserialize operation is destructive so rebuild the data for UpdateCache */
for (std::map<Anope::string, Anope::string>::const_iterator rit = row.begin(), rit_end = row.end(); rit != rit_end; ++rit)
if (rit->first != "id" && rit->first != "timestamp")
data2[rit->first] << rit->second;
new_s->Serialize(data2);
new_s->UpdateCache(data2); /* We know this is the most up to date copy */
}
}
-1
View File
@@ -369,7 +369,6 @@ class ProtoPlexus : public Module
ModeManager::AddChannelMode(new ChannelMode("NOEXTERNAL", 'n'));
ModeManager::AddChannelMode(new ChannelMode("NONOTICE", 'N'));
ModeManager::AddChannelMode(new ChannelMode("PRIVATE", 'p'));
ModeManager::AddChannelMode(new ChannelModeNoone("REGISTERED", 'r'));
ModeManager::AddChannelMode(new ChannelMode("SECRET", 's'));
ModeManager::AddChannelMode(new ChannelMode("TOPIC", 't'));
ModeManager::AddChannelMode(new ChannelModeOperOnly("OPERONLY", 'O'));