summaryrefslogtreecommitdiff
path: root/modules/commands/cs_seen.cpp
diff options
context:
space:
mode:
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;