diff options
| author | Adam <Adam@anope.org> | 2011-04-22 03:16:11 -0400 |
|---|---|---|
| committer | Adam <Adam@anope.org> | 2011-05-16 04:06:17 -0400 |
| commit | c8c23158a4ff74822d6c7d201dc53d879e3d91e8 (patch) | |
| tree | 4bc9ae029691d5e7c03ebc1481683a010b733844 /modules/protocol | |
| parent | 1782ce260c5bc214ec0b2e39257ab1371b68ae9c (diff) | |
Moved the core pseudo clients out into their own modules
Diffstat (limited to 'modules/protocol')
| -rw-r--r-- | modules/protocol/bahamut.cpp | 27 | ||||
| -rw-r--r-- | modules/protocol/inspircd-ts6.h | 20 | ||||
| -rw-r--r-- | modules/protocol/inspircd11.cpp | 21 | ||||
| -rw-r--r-- | modules/protocol/inspircd12.cpp | 38 | ||||
| -rw-r--r-- | modules/protocol/inspircd20.cpp | 36 | ||||
| -rw-r--r-- | modules/protocol/plexus.cpp | 15 | ||||
| -rw-r--r-- | modules/protocol/ratbox.cpp | 26 | ||||
| -rw-r--r-- | modules/protocol/unreal32.cpp | 31 |
8 files changed, 118 insertions, 96 deletions
diff --git a/modules/protocol/bahamut.cpp b/modules/protocol/bahamut.cpp index 68ff578ea..f4735132e 100644 --- a/modules/protocol/bahamut.cpp +++ b/modules/protocol/bahamut.cpp @@ -13,6 +13,7 @@ #include "services.h" #include "modules.h" +#include "nickserv.h" IRCDVar myIrcd[] = { {"Bahamut 1.8.x", /* ircd name */ @@ -219,7 +220,7 @@ class BahamutIRCdProto : public IRCDProto /* nc_change was = 1, and there is no na->status */ void SendUnregisteredNick(const User *u) { - ircdproto->SendMode(NickServ, u, "+d 1"); + ircdproto->SendMode(nickserv->Bot(), u, "+d 1"); } /* SERVER */ @@ -242,7 +243,7 @@ class BahamutIRCdProto : public IRCDProto if (!u->Account()) return; - ircdproto->SendMode(NickServ, u, "+d %d", u->timestamp); + ircdproto->SendMode(nickserv->Bot(), u, "+d %d", u->timestamp); } void SendChannel(Channel *c) @@ -291,17 +292,17 @@ class BahamutIRCdMessage : public IRCdMessage ip.ntop(AF_INET, params[8].c_str()); User *user = do_nick(source, params[0], params[4], params[5], params[6], params[9], Anope::string(params[2]).is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, ip.addr(), "", "", params[3]); - if (user) + if (user && nickserv) { NickAlias *na; if (user->timestamp == convertTo<time_t>(params[7]) && (na = findnick(user->nick))) { user->Login(na->nc); if (na->nc->HasFlag(NI_UNCONFIRMED) == false) - user->SetMode(NickServ, UMODE_REGISTERED); + user->SetMode(nickserv->Bot(), UMODE_REGISTERED); } else - validate_user(user); + nickserv->Validate(user); } } else @@ -464,12 +465,12 @@ class BahamutIRCdMessage : public IRCdMessage } }; -static bool event_xs(BotInfo *bi, const Anope::string &source, const std::vector<Anope::string> ¶ms) +static bool event_xs(const Anope::string &bot, const Anope::string &source, const std::vector<Anope::string> ¶ms) { - if (!params.empty() && bi) + if (!params.empty() && !bot.empty()) { std::vector<Anope::string> p; - p.push_back(bi->nick); + p.push_back(bot); p.push_back(params[0]); return ircdmessage->OnPrivmsg(source, p); } @@ -480,31 +481,31 @@ static bool event_xs(BotInfo *bi, const Anope::string &source, const std::vector /* EVENT : OS */ bool event_os(const Anope::string &source, const std::vector<Anope::string> ¶ms) { - return event_xs(OperServ, source, params); + return event_xs(Config->s_OperServ, source, params); } /* EVENT : NS */ bool event_ns(const Anope::string &source, const std::vector<Anope::string> ¶ms) { - return event_xs(NickServ, source, params); + return event_xs(Config->s_NickServ, source, params); } /* EVENT : MS */ bool event_ms(const Anope::string &source, const std::vector<Anope::string> ¶ms) { - return event_xs(MemoServ, source, params); + return event_xs(Config->s_MemoServ, source, params); } /* EVENT : HS */ bool event_hs(const Anope::string &source, const std::vector<Anope::string> ¶ms) { - return event_xs(HostServ, source, params); + return event_xs(Config->s_HostServ, source, params); } /* EVENT : CS */ bool event_cs(const Anope::string &source, const std::vector<Anope::string> ¶ms) { - return event_xs(ChanServ, source, params); + return event_xs(Config->s_ChanServ, source, params); } bool event_burst(const Anope::string &source, const std::vector<Anope::string> ¶ms) diff --git a/modules/protocol/inspircd-ts6.h b/modules/protocol/inspircd-ts6.h index ce226407c..eaa02467b 100644 --- a/modules/protocol/inspircd-ts6.h +++ b/modules/protocol/inspircd-ts6.h @@ -33,25 +33,28 @@ class InspIRCdTS6Proto : public IRCDProto private: void SendChgIdentInternal(const Anope::string &nick, const Anope::string &vIdent) { + User *u = finduser(Config->s_HostServ); if (!has_chgidentmod) - ircdproto->SendGlobops(OperServ, "CHGIDENT not loaded!"); + Log() << "CHGIDENT not loaded!"; else - send_cmd(HostServ ? HostServ->GetUID() : Config->Numeric, "CHGIDENT %s %s", nick.c_str(), vIdent.c_str()); + send_cmd(u ? u->GetUID() : Config->Numeric, "CHGIDENT %s %s", nick.c_str(), vIdent.c_str()); } void SendChgHostInternal(const Anope::string &nick, const Anope::string &vhost) { + User *u = finduser(Config->s_HostServ); if (!has_chghostmod) - ircdproto->SendGlobops(OperServ, "CHGHOST not loaded!"); + Log() << "CHGHOST not loaded!"; else - send_cmd(HostServ ? HostServ->GetUID() : Config->Numeric, "CHGHOST %s %s", nick.c_str(), vhost.c_str()); + send_cmd(u ? u->GetUID() : Config->Numeric, "CHGHOST %s %s", nick.c_str(), vhost.c_str()); } public: void SendAkillDel(const XLine *x) { - send_cmd(OperServ ? OperServ->GetUID() : Config->Numeric, "GLINE %s", x->Mask.c_str()); + User *u = finduser(Config->s_OperServ); + send_cmd(u ? u->GetUID() : Config->Numeric, "GLINE %s", x->Mask.c_str()); } void SendTopic(BotInfo *whosets, Channel *c) @@ -76,7 +79,8 @@ class InspIRCdTS6Proto : public IRCDProto time_t timeleft = x->Expires - Anope::CurTime; if (timeleft > 172800 || !x->Expires) timeleft = 172800; - send_cmd(OperServ ? OperServ->GetUID() : Config->Numeric, "ADDLINE G %s@%s %s %ld %ld :%s", x->GetUser().c_str(), x->GetHost().c_str(), x->By.c_str(), static_cast<long>(Anope::CurTime), static_cast<long>(timeleft), x->Reason.c_str()); + User *u = finduser(Config->s_OperServ); + send_cmd(u ? u->GetUID() : Config->Numeric, "ADDLINE G %s@%s %s %ld %ld :%s", x->GetUser().c_str(), x->GetHost().c_str(), x->By.c_str(), static_cast<long>(Anope::CurTime), static_cast<long>(timeleft), x->Reason.c_str()); } void SendSVSKillInternal(const BotInfo *source, const User *user, const Anope::string &buf) @@ -175,13 +179,13 @@ class InspIRCdTS6Proto : public IRCDProto /* SVSHOLD - set */ void SendSVSHold(const Anope::string &nick) { - send_cmd(NickServ->GetUID(), "SVSHOLD %s %u :Being held for registered user", nick.c_str(), static_cast<unsigned>(Config->NSReleaseTimeout)); + send_cmd(nickserv->Bot()->GetUID(), "SVSHOLD %s %u :Being held for registered user", nick.c_str(), static_cast<unsigned>(Config->NSReleaseTimeout)); } /* SVSHOLD - release */ void SendSVSHoldDel(const Anope::string &nick) { - send_cmd(NickServ->GetUID(), "SVSHOLD %s", nick.c_str()); + send_cmd(nickserv->Bot()->GetUID(), "SVSHOLD %s", nick.c_str()); } /* UNSZLINE */ diff --git a/modules/protocol/inspircd11.cpp b/modules/protocol/inspircd11.cpp index ce0611916..0e787b0fe 100644 --- a/modules/protocol/inspircd11.cpp +++ b/modules/protocol/inspircd11.cpp @@ -13,6 +13,7 @@ #include "services.h" #include "modules.h" +#include "nickserv.h" IRCDVar myIrcd[] = { {"InspIRCd 1.1", /* ircd name */ @@ -59,7 +60,11 @@ void inspircd_cmd_chghost(const Anope::string &nick, const Anope::string &vhost) send_cmd(Config->s_OperServ, "CHGHOST %s %s", nick.c_str(), vhost.c_str()); } else - ircdproto->SendGlobops(OperServ, "CHGHOST not loaded!"); + { + BotInfo *bi = findbot(Config->s_OperServ); + if (bi) + ircdproto->SendGlobops(bi, "CHGHOST not loaded!"); + } } bool event_idle(const Anope::string &source, const std::vector<Anope::string> ¶ms) @@ -210,7 +215,7 @@ class InspIRCdProto : public IRCDProto send_cmd(Config->s_OperServ, "CHGIDENT %s %s", nick.c_str(), vIdent.c_str()); } else - ircdproto->SendGlobops(OperServ, "CHGIDENT not loaded!"); + Log() << "CHGIDENT not loaded!"; } /* SVSHOLD - set */ @@ -307,7 +312,7 @@ class InspircdIRCdMessage : public IRCdMessage time_t ts = Anope::string(params[0]).is_pos_number_only() ? convertTo<time_t>(params[0]) : 0; User *user = do_nick("", params[1], params[4], params[2], source, params[7], ts, params[6], params[3], "", params[5]); - if (user) + if (user && nickserv) { user->SetCloakedHost(params[3]); @@ -317,10 +322,10 @@ class InspircdIRCdMessage : public IRCdMessage { user->Login(na->nc); if (na->nc->HasFlag(NI_UNCONFIRMED)) - user->SetMode(NickServ, UMODE_REGISTERED); + user->SetMode(nickserv->Bot(), UMODE_REGISTERED); } else - validate_user(user); + nickserv->Validate(user); } } else if (params.size() == 1) @@ -567,11 +572,11 @@ class InspircdIRCdMessage : public IRCdMessage return false; } if (!has_svsholdmod) - ircdproto->SendGlobops(OperServ, "SVSHOLD missing, Usage disabled until module is loaded."); + Log() << "SVSHOLD missing, Usage disabled until module is loaded."; if (!has_chghostmod) - ircdproto->SendGlobops(OperServ, "CHGHOST missing, Usage disabled until module is loaded."); + Log() << "CHGHOST missing, Usage disabled until module is loaded."; if (!has_chgidentmod) - ircdproto->SendGlobops(OperServ, "CHGIDENT missing, Usage disabled until module is loaded."); + Log() << "CHGIDENT missing, Usage disabled until module is loaded."; ircd->svshold = has_svsholdmod; } diff --git a/modules/protocol/inspircd12.cpp b/modules/protocol/inspircd12.cpp index 82d43434c..4723a21af 100644 --- a/modules/protocol/inspircd12.cpp +++ b/modules/protocol/inspircd12.cpp @@ -13,6 +13,7 @@ #include "services.h" #include "modules.h" +#include "nickserv.h" /* inspircd-ts6.h uses these */ static bool has_globopsmod = false; @@ -57,11 +58,12 @@ void inspircd_cmd_chghost(const Anope::string &nick, const Anope::string &vhost) { if (!has_chghostmod) { - ircdproto->SendGlobops(OperServ, "CHGHOST not loaded!"); + Log() << "CHGHOST not loaded!"; return; } - send_cmd(HostServ ? HostServ->GetUID() : Config->Numeric, "CHGHOST %s %s", nick.c_str(), vhost.c_str()); + User *u = finduser(nick); + send_cmd(u ? u->GetUID() : Config->Numeric, "CHGHOST %s %s", nick.c_str(), vhost.c_str()); } bool event_idle(const Anope::string &source, const std::vector<Anope::string> ¶ms) @@ -260,13 +262,14 @@ bool event_metadata(const Anope::string &source, const std::vector<Anope::string else if (params[1].equals_cs("accountname")) { User *u = finduser(params[0]); - NickAlias *user_na = u ? findnick(u->nick) : NULL; NickCore *nc = findcore(params[2]); if (u && nc) { u->Login(nc); - if (user_na && user_na->nc == nc && user_na->nc->HasFlag(NI_UNCONFIRMED) == false) - u->SetMode(NickServ, UMODE_REGISTERED); + + NickAlias *user_na = findnick(u->nick); + if (nickserv && user_na && user_na->nc == nc && user_na->nc->HasFlag(NI_UNCONFIRMED) == false) + u->SetMode(nickserv->Bot(), UMODE_REGISTERED); } } @@ -383,8 +386,8 @@ class Inspircd12IRCdMessage : public InspircdIRCdMessage for (unsigned i = 9; i < params.size() - 1; ++i) modes += " " + params[i]; User *user = do_nick("", params[2], params[5], params[3], source, params[params.size() - 1], ts, params[6], params[4], params[0], modes); - if (user && user->server->IsSynced()) - validate_user(user); + if (user && user->server->IsSynced() && nickserv) + nickserv->Validate(user); return true; } @@ -709,11 +712,11 @@ class Inspircd12IRCdMessage : public InspircdIRCdMessage return false; } if (!has_svsholdmod) - ircdproto->SendGlobops(OperServ, "SVSHOLD missing, Usage disabled until module is loaded."); + Log() << "SVSHOLD missing, Usage disabled until module is loaded."; if (!has_chghostmod) - ircdproto->SendGlobops(OperServ, "CHGHOST missing, Usage disabled until module is loaded."); + Log() << "CHGHOST missing, Usage disabled until module is loaded."; if (!has_chgidentmod) - ircdproto->SendGlobops(OperServ, "CHGIDENT missing, Usage disabled until module is loaded."); + Log() << "CHGIDENT missing, Usage disabled until module is loaded."; ircd->svshold = has_svsholdmod; } @@ -763,17 +766,18 @@ class ProtoInspIRCd : public Module /* InspIRCd 1.2 doesn't set -r on nick change, remove -r here. Note that if we have to set +r later * this will cancel out this -r, resulting in no mode changes. */ - u->RemoveMode(NickServ, UMODE_REGISTERED); + u->RemoveMode(nickserv->Bot(), UMODE_REGISTERED); } void OnServerSync(Server *s) { - for (Anope::insensitive_map<User *>::iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) - { - User *u = it->second; - if (u->server == s && !u->IsIdentified()) - validate_user(u); - } + if (nickserv) + for (Anope::insensitive_map<User *>::iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) + { + User *u = it->second; + if (u->server == s && !u->IsIdentified()) + nickserv->Validate(u); + } } }; diff --git a/modules/protocol/inspircd20.cpp b/modules/protocol/inspircd20.cpp index 575958bd8..3cb4979a9 100644 --- a/modules/protocol/inspircd20.cpp +++ b/modules/protocol/inspircd20.cpp @@ -13,6 +13,7 @@ #include "services.h" #include "modules.h" +#include "nickserv.h" /* inspircd-ts6.h uses these */ static bool has_chghostmod = false; @@ -56,11 +57,12 @@ void inspircd_cmd_chghost(const Anope::string &nick, const Anope::string &vhost) { if (!has_chghostmod) { - ircdproto->SendGlobops(OperServ, "CHGHOST not loaded!"); + Log() << "CHGHOST not loaded!"; return; } - send_cmd(HostServ ? HostServ->GetUID() : Config->Numeric, "CHGHOST %s %s", nick.c_str(), vhost.c_str()); + User *u = finduser(nick); + send_cmd(u ? u->GetUID() : Config->Numeric, "CHGHOST %s %s", nick.c_str(), vhost.c_str()); } bool event_idle(const Anope::string &source, const std::vector<Anope::string> ¶ms) @@ -270,13 +272,14 @@ bool event_metadata(const Anope::string &source, const std::vector<Anope::string else if (params[1].equals_cs("accountname")) { User *u = finduser(params[0]); - NickAlias *user_na = u ? findnick(u->nick) : NULL; NickCore *nc = findcore(params[2]); if (u && nc) { u->Login(nc); - if (user_na && user_na->nc == nc && user_na->nc->HasFlag(NI_UNCONFIRMED) == false) - u->SetMode(NickServ, UMODE_REGISTERED); + + NickAlias *user_na = findnick(u->nick); + if (nickserv && user_na && user_na->nc == nc && user_na->nc->HasFlag(NI_UNCONFIRMED) == false) + u->SetMode(nickserv->Bot(), UMODE_REGISTERED); } } @@ -414,8 +417,8 @@ class Inspircd20IRCdMessage : public InspircdIRCdMessage for (unsigned i = 9; i < params.size() - 1; ++i) modes += Anope::string(" ") + params[i]; User *user = do_nick("", params[2], params[5], params[3], source, params[params.size() - 1], ts, params[6], params[4], params[0], modes); - if (user && user->server->IsSynced()) - validate_user(user); + if (user && user->server->IsSynced() && nickserv) + nickserv->Validate(user); return true; } @@ -704,11 +707,11 @@ class Inspircd20IRCdMessage : public InspircdIRCdMessage return false; } if (!has_svsholdmod) - ircdproto->SendGlobops(OperServ, "SVSHOLD missing, Usage disabled until module is loaded."); + Log() << "SVSHOLD missing, Usage disabled until module is loaded."; if (!has_chghostmod) - ircdproto->SendGlobops(OperServ, "CHGHOST missing, Usage disabled until module is loaded."); + Log() << "CHGHOST missing, Usage disabled until module is loaded."; if (!has_chgidentmod) - ircdproto->SendGlobops(OperServ, "CHGIDENT missing, Usage disabled until module is loaded."); + Log() << "CHGIDENT missing, Usage disabled until module is loaded."; ircd->svshold = has_svsholdmod; } @@ -759,12 +762,13 @@ class ProtoInspIRCd : public Module void OnServerSync(Server *s) { - for (Anope::insensitive_map<User *>::iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) - { - User *u = it->second; - if (u->server == s && !u->IsIdentified()) - validate_user(u); - } + if (nickserv) + for (Anope::insensitive_map<User *>::iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) + { + User *u = it->second; + if (u->server == s && !u->IsIdentified()) + nickserv->Validate(u); + } } }; diff --git a/modules/protocol/plexus.cpp b/modules/protocol/plexus.cpp index 3b299e962..a078e6b77 100644 --- a/modules/protocol/plexus.cpp +++ b/modules/protocol/plexus.cpp @@ -11,6 +11,7 @@ #include "services.h" #include "modules.h" +#include "nickserv.h" static Anope::string TS6UPLINK; @@ -100,19 +101,19 @@ class PlexusProto : public IRCDProto void SendSGLineDel(const XLine *x) { - BotInfo *bi = OperServ; + BotInfo *bi = findbot(Config->s_OperServ); send_cmd(bi ? bi->GetUID() : Config->s_OperServ, "UNXLINE * %s", x->Mask.c_str()); } void SendSGLine(User *, const XLine *x) { - BotInfo *bi = OperServ; + BotInfo *bi = findbot(Config->s_OperServ); send_cmd(bi ? bi->GetUID() : Config->s_OperServ, "XLINE * %s 0 :%s", x->Mask.c_str(), x->Reason.c_str()); } void SendAkillDel(const XLine *x) { - BotInfo *bi = OperServ; + BotInfo *bi = findbot(Config->s_OperServ); send_cmd(bi ? bi->GetUID() : Config->s_OperServ, "UNKLINE * %s %s", x->GetUser().c_str(), x->GetHost().c_str()); } @@ -132,7 +133,7 @@ class PlexusProto : public IRCDProto void SendAkill(User *, const XLine *x) { - BotInfo *bi = OperServ; + BotInfo *bi = findbot(Config->s_OperServ); send_cmd(bi ? bi->GetUID() : Config->s_OperServ, "KLINE * %ld %s %s :%s", static_cast<long>(x->Expires - Anope::CurTime), x->GetUser().c_str(), x->GetHost().c_str(), x->Reason.c_str()); } @@ -269,7 +270,7 @@ class PlexusIRCdMessage : public IRCdMessage ip.clear(); User *user = do_nick("", params[0], params[4], params[9], source, params[10], Anope::string(params[2]).is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, ip, params[5], params[7], params[3]); if (user && user->server->IsSynced()) - validate_user(user); + nickserv->Validate(user); return true; } @@ -528,7 +529,7 @@ bool event_encap(const Anope::string &source, const std::vector<Anope::string> & { u->Login(nc); if (user_na && user_na->nc == nc && user_na->nc->HasFlag(NI_UNCONFIRMED) == false) - u->SetMode(NickServ, UMODE_REGISTERED); + u->SetMode(nickserv->Bot(), UMODE_REGISTERED); } } @@ -648,7 +649,7 @@ class ProtoPlexus : public Module { User *u = it->second; if (u->server == s && !u->IsIdentified()) - validate_user(u); + nickserv->Validate(u); } } }; diff --git a/modules/protocol/ratbox.cpp b/modules/protocol/ratbox.cpp index 62a8d5a72..11d4ccfe6 100644 --- a/modules/protocol/ratbox.cpp +++ b/modules/protocol/ratbox.cpp @@ -11,6 +11,7 @@ #include "services.h" #include "modules.h" +#include "nickserv.h" static Anope::string TS6UPLINK; @@ -103,19 +104,19 @@ class RatboxProto : public IRCDProto void SendSGLineDel(const XLine *x) { - BotInfo *bi = OperServ; + BotInfo *bi = findbot(Config->s_OperServ); send_cmd(bi ? bi->GetUID() : Config->s_OperServ, "UNXLINE * %s", x->Mask.c_str()); } void SendSGLine(User *, const XLine *x) { - BotInfo *bi = OperServ; + BotInfo *bi = findbot(Config->s_OperServ); send_cmd(bi ? bi->GetUID() : Config->s_OperServ, "XLINE * %s 0 :%s", x->Mask.c_str(), x->Reason.c_str()); } void SendAkillDel(const XLine *x) { - BotInfo *bi = OperServ; + BotInfo *bi = findbot(Config->s_OperServ); send_cmd(bi ? bi->GetUID() : Config->s_OperServ, "UNKLINE * %s %s", x->GetUser().c_str(), x->GetHost().c_str()); } @@ -142,7 +143,7 @@ class RatboxProto : public IRCDProto void SendAkill(User *, const XLine *x) { - BotInfo *bi = OperServ; + BotInfo *bi = findbot(Config->s_OperServ); send_cmd(bi ? bi->GetUID() : Config->s_OperServ, "KLINE * %ld %s %s :%s", static_cast<long>(x->Expires - Anope::CurTime), x->GetUser().c_str(), x->GetHost().c_str(), x->Reason.c_str()); } @@ -269,8 +270,8 @@ class RatboxIRCdMessage : public IRCdMessage { /* Source is always the server */ User *user = do_nick("", params[0], params[4], params[5], source, params[8], Anope::string(params[2]).is_pos_number_only() ? convertTo<time_t>(params[2]) : 0, params[6], "*", params[7], params[3]); - if (user && user->server->IsSynced()) - validate_user(user); + if (user && user->server->IsSynced() && nickserv) + nickserv->Validate(user); return true; } @@ -579,12 +580,13 @@ class ProtoRatbox : public Module void OnServerSync(Server *s) { - for (Anope::insensitive_map<User *>::iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) - { - User *u = it->second; - if (u->server == s && !u->IsIdentified()) - validate_user(u); - } + if (nickserv) + for (Anope::insensitive_map<User *>::iterator it = UserListByNick.begin(); it != UserListByNick.end(); ++it) + { + User *u = it->second; + if (u->server == s && !u->IsIdentified()) + nickserv->Validate(u); + } } }; diff --git a/modules/protocol/unreal32.cpp b/modules/protocol/unreal32.cpp index b6e438461..7e874838d 100644 --- a/modules/protocol/unreal32.cpp +++ b/modules/protocol/unreal32.cpp @@ -13,6 +13,7 @@ #include "services.h" #include "modules.h" +#include "nickserv.h" IRCDVar myIrcd[] = { {"UnrealIRCd 3.2.x", /* ircd name */ @@ -107,11 +108,11 @@ class UnrealIRCdProto : public IRCDProto void SendVhostDel(User *u) { - u->RemoveMode(HostServ, UMODE_CLOAK); - u->RemoveMode(HostServ, UMODE_VHOST); - ModeManager::ProcessModes(); - u->SetMode(HostServ, UMODE_CLOAK); + BotInfo *bi = findbot(Config->s_HostServ); + u->RemoveMode(bi, UMODE_CLOAK); + u->RemoveMode(bi, UMODE_VHOST); ModeManager::ProcessModes(); + u->SetMode(bi, UMODE_CLOAK); } void SendAkill(User *, const XLine *x) @@ -322,12 +323,12 @@ class UnrealIRCdProto : public IRCDProto if (!u->Account()) return; - ircdproto->SendMode(NickServ, u, "+d %d", u->timestamp); + ircdproto->SendMode(nickserv->Bot(), u, "+d %d", u->timestamp); } void SendUnregisteredNick(const User *u) { - ircdproto->SendMode(NickServ, u, "+d 1"); + ircdproto->SendMode(nickserv->Bot(), u, "+d 1"); } void SendChannel(Channel *c) @@ -335,7 +336,7 @@ class UnrealIRCdProto : public IRCDProto /* Unreal does not support updating a channels TS without actually joining a user, * so we will join and part us now */ - BotInfo *bi = whosends(c->ci); + BotInfo *bi = c->ci->WhoSends(); if (c->FindUser(bi) == NULL) { bi->Join(c); @@ -529,11 +530,11 @@ class Unreal32IRCdMessage : public IRCdMessage if (na && user->timestamp == convertTo<time_t>(params[6])) { user->Login(na->nc); - if (na->nc->HasFlag(NI_UNCONFIRMED) == false) - user->SetMode(NickServ, UMODE_REGISTERED); + if (na->nc->HasFlag(NI_UNCONFIRMED) == false && nickserv) + user->SetMode(nickserv->Bot(), UMODE_REGISTERED); } - else - validate_user(user); + else if (nickserv) + nickserv->Validate(user); } } else if (params.size() != 2) @@ -551,11 +552,11 @@ class Unreal32IRCdMessage : public IRCdMessage if (na && user->timestamp == convertTo<time_t>(params[6])) { user->Login(na->nc); - if (na->nc->HasFlag(NI_UNCONFIRMED) == false) - user->SetMode(NickServ, UMODE_REGISTERED); + if (na->nc->HasFlag(NI_UNCONFIRMED) == false && nickserv) + user->SetMode(nickserv->Bot(), UMODE_REGISTERED); } - else - validate_user(user); + else if (nickserv) + nickserv->Validate(user); } } else |
