summaryrefslogtreecommitdiff
path: root/modules
diff options
context:
space:
mode:
authorSadie Powell <sadie@witchery.services>2025-03-30 12:17:23 +0100
committerSadie Powell <sadie@witchery.services>2025-03-30 12:17:23 +0100
commit665b0fdef8dd39ff84a3323be3a325b5b30ed4aa (patch)
tree207967eef7dee79e0f1b8298c3e3bb3ad758d966 /modules
parent0802d9d3ffaae3b116fafa2b6a2fe2825eb6c75d (diff)
Refuse to import data that already exists in db_atheme.
Diffstat (limited to 'modules')
-rw-r--r--modules/database/db_atheme.cpp27
1 files changed, 24 insertions, 3 deletions
diff --git a/modules/database/db_atheme.cpp b/modules/database/db_atheme.cpp
index 133d82c93..db8758d06 100644
--- a/modules/database/db_atheme.cpp
+++ b/modules/database/db_atheme.cpp
@@ -555,7 +555,14 @@ private:
if (!row)
return row.LogError(this);
- auto *bi = new BotInfo(nick, user, host, real);
+ auto *bi = BotInfo::Find(nick);
+ if (bi)
+ {
+ Log(this) << "Refusing to import duplicate bot: " << nick;
+ return true;
+ }
+
+ bi = new BotInfo(nick, user, host, real);
bi->oper_only = operonly;
bi->created = created;
return true;
@@ -1308,7 +1315,14 @@ private:
return false;
}
- auto *na = new NickAlias(nick, nc);
+ auto *na = NickAlias::Find(nick);
+ if (na)
+ {
+ Log(this) << "Refusing to import duplicate nick: " << nick;
+ return true;
+ }
+
+ na = new NickAlias(nick, nc);
na->time_registered = regtime;
na->last_seen = lastseen ? regtime : na->time_registered;
@@ -1353,7 +1367,14 @@ private:
if (!row)
return row.LogError(this);
- auto *nc = new NickCore(display);
+ auto *nc = NickCore::Find(display);
+ if (nc)
+ {
+ Log(this) << "Refusing to import duplicate account: " << display;
+ return true;
+ }
+
+ nc = new NickCore(display);
nc->email = email;
nc->time_registered = regtime;
ApplyPassword(nc, flags, pass);