summaryrefslogtreecommitdiff
path: root/modules/protocol
diff options
context:
space:
mode:
authorAdam <Adam@anope.org>2011-04-22 03:16:11 -0400
committerAdam <Adam@anope.org>2011-05-16 04:06:17 -0400
commitc8c23158a4ff74822d6c7d201dc53d879e3d91e8 (patch)
tree4bc9ae029691d5e7c03ebc1481683a010b733844 /modules/protocol
parent1782ce260c5bc214ec0b2e39257ab1371b68ae9c (diff)
Moved the core pseudo clients out into their own modules
Diffstat (limited to 'modules/protocol')
-rw-r--r--modules/protocol/bahamut.cpp27
-rw-r--r--modules/protocol/inspircd-ts6.h20
-rw-r--r--modules/protocol/inspircd11.cpp21
-rw-r--r--modules/protocol/inspircd12.cpp38
-rw-r--r--modules/protocol/inspircd20.cpp36
-rw-r--r--modules/protocol/plexus.cpp15
-rw-r--r--modules/protocol/ratbox.cpp26
-rw-r--r--modules/protocol/unreal32.cpp31
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> &params)
+static bool event_xs(const Anope::string &bot, const Anope::string &source, const std::vector<Anope::string> &params)
{
- 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> &params)
{
- 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> &params)
{
- 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> &params)
{
- 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> &params)
{
- 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> &params)
{
- 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> &params)
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> &params)
@@ -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> &params)
@@ -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> &params)
@@ -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