summaryrefslogtreecommitdiff
path: root/modules/commands/cs_seen.cpp
diff options
context:
space:
mode:
authorDukePyrolator <DukePyrolator@anope.org>2012-11-02 18:35:33 +0100
committerDukePyrolator <DukePyrolator@anope.org>2012-11-02 18:35:33 +0100
commit792091b23c4c0f442cec27dc7e314079d1618498 (patch)
tree515a063bf21f580aae054dde8e13c5af960eb61e /modules/commands/cs_seen.cpp
parentb917361de88baeb2d23990bdc111cd8f6db622f8 (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.cpp8
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;