diff options
author | Sadie Powell <sadie@witchery.services> | 2025-03-30 12:17:23 +0100 |
---|---|---|
committer | Sadie Powell <sadie@witchery.services> | 2025-03-30 12:17:23 +0100 |
commit | 665b0fdef8dd39ff84a3323be3a325b5b30ed4aa (patch) | |
tree | 207967eef7dee79e0f1b8298c3e3bb3ad758d966 /modules | |
parent | 0802d9d3ffaae3b116fafa2b6a2fe2825eb6c75d (diff) |
Refuse to import data that already exists in db_atheme.
Diffstat (limited to 'modules')
-rw-r--r-- | modules/database/db_atheme.cpp | 27 |
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); |