diff options
author | DukePyrolator <DukePyrolator@anope.org> | 2012-11-02 18:35:33 +0100 |
---|---|---|
committer | DukePyrolator <DukePyrolator@anope.org> | 2012-11-02 18:35:33 +0100 |
commit | 792091b23c4c0f442cec27dc7e314079d1618498 (patch) | |
tree | 515a063bf21f580aae054dde8e13c5af960eb61e /modules/commands/cs_seen.cpp | |
parent | b917361de88baeb2d23990bdc111cd8f6db622f8 (diff) |
cs_seen: do not read duplicate SeenInfo entries from the database
Diffstat (limited to 'modules/commands/cs_seen.cpp')
-rw-r--r-- | modules/commands/cs_seen.cpp | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/modules/commands/cs_seen.cpp b/modules/commands/cs_seen.cpp index c3d04cf55..cbbd1c35c 100644 --- a/modules/commands/cs_seen.cpp +++ b/modules/commands/cs_seen.cpp @@ -20,6 +20,7 @@ enum TypeInfo }; struct SeenInfo; +static SeenInfo *FindInfo(const Anope::string &nick); typedef Anope::insensitive_map<SeenInfo *> database_map; database_map database; @@ -58,7 +59,12 @@ struct SeenInfo : Serializable if (obj) s = anope_dynamic_static_cast<SeenInfo *>(obj); else - s = new SeenInfo(); + { + /* ignore duplicate entries in the db, created by an old bug */ + s = FindInfo(data["nick"].str()); + if (!s) + s = new SeenInfo(); + } data["nick"] >> s->nick; data["vhost"] >> s->vhost; |