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:
@@ -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),
|
||||
|
||||
@@ -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 */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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 */
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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'));
|
||||
|
||||
Reference in New Issue
Block a user