Modules: use public API

Avoid accessing protected member variables directly, so
there's a chance of cleaning up the module API later.
This commit is contained in:
J-P Nurmi
2014-10-06 19:18:31 +02:00
parent d9ae3fa7c8
commit 1bacec1dd3
40 changed files with 291 additions and 270 deletions
+6 -6
View File
@@ -50,11 +50,11 @@ public:
}
virtual void OnIRCConnected() {
Log("[" + m_pUser->GetUserName() + "/" + m_pNetwork->GetName() + "] connected to IRC: " + m_pNetwork->GetCurrentServer()->GetName());
Log("[" + GetUser()->GetUserName() + "/" + GetNetwork()->GetName() + "] connected to IRC: " + GetNetwork()->GetCurrentServer()->GetName());
}
virtual void OnIRCDisconnected() {
Log("[" + m_pUser->GetUserName() + "/" + m_pNetwork->GetName() + "] disconnected from IRC");
Log("[" + GetUser()->GetUserName() + "/" + GetNetwork()->GetName() + "] disconnected from IRC");
}
virtual EModRet OnRaw(CString& sLine) {
@@ -64,18 +64,18 @@ public:
CString sError(sLine.substr(6));
if (sError.Left(1) == ":")
sError.LeftChomp();
Log("[" + m_pUser->GetUserName() + "/" + m_pNetwork->GetName() + "] disconnected from IRC: " +
m_pNetwork->GetCurrentServer()->GetName() + " [" + sError + "]", LOG_NOTICE);
Log("[" + GetUser()->GetUserName() + "/" + GetNetwork()->GetName() + "] disconnected from IRC: " +
GetNetwork()->GetCurrentServer()->GetName() + " [" + sError + "]", LOG_NOTICE);
}
return CONTINUE;
}
virtual void OnClientLogin() {
Log("[" + m_pUser->GetUserName() + "] connected to ZNC from " + m_pClient->GetRemoteIP());
Log("[" + GetUser()->GetUserName() + "] connected to ZNC from " + GetClient()->GetRemoteIP());
}
virtual void OnClientDisconnect() {
Log("[" + m_pUser->GetUserName() + "] disconnected from ZNC from " + m_pClient->GetRemoteIP());
Log("[" + GetUser()->GetUserName() + "] disconnected from ZNC from " + GetClient()->GetRemoteIP());
}
virtual void OnFailedLogin(const CString& sUsername, const CString& sRemoteIP) {
+1 -1
View File
@@ -142,7 +142,7 @@ protected:
// Is that person us and we don't have op?
const CNick& pNick = Channel.GetNicks().begin()->second;
if (!pNick.HasPerm(CChan::Op) && pNick.NickEquals(m_pNetwork->GetCurNick())) {
if (!pNick.HasPerm(CChan::Op) && pNick.NickEquals(GetNetwork()->GetCurNick())) {
Channel.Cycle();
m_recentlyCycled.AddItem(Channel.GetName());
}
+3 -3
View File
@@ -218,7 +218,7 @@ public:
}
virtual void OnOp2(const CNick* pOpNick, const CNick& Nick, CChan& Channel, bool bNoChange) {
if (Nick.GetNick() == m_pNetwork->GetIRCNick().GetNick()) {
if (Nick.GetNick() == GetNetwork()->GetIRCNick().GetNick()) {
const map<CString,CNick>& msNicks = Channel.GetNicks();
for (map<CString,CNick>::const_iterator it = msNicks.begin(); it != msNicks.end(); ++it) {
@@ -420,7 +420,7 @@ public:
// First verify that the person who challenged us matches a user's host
if (pUser->HostMatches(Nick.GetHostMask())) {
const vector<CChan*>& Chans = m_pNetwork->GetChans();
const vector<CChan*>& Chans = GetNetwork()->GetChans();
bMatchedHost = true;
// Also verify that they are opped in at least one of the user's chans
@@ -515,7 +515,7 @@ public:
}
void OpUser(const CNick& Nick, const CAutoOpUser& User) {
const vector<CChan*>& Chans = m_pNetwork->GetChans();
const vector<CChan*>& Chans = GetNetwork()->GetChans();
for (size_t a = 0; a < Chans.size(); a++) {
const CChan& Chan = *Chans[a];
+2 -2
View File
@@ -49,7 +49,7 @@ public:
}
void Handle(const CString& sNick) {
CIRCSock *pIRCSock = m_pNetwork->GetIRCSock();
CIRCSock *pIRCSock = GetNetwork()->GetIRCSock();
if (!pIRCSock)
// WTF?
return;
@@ -58,7 +58,7 @@ public:
if (m_Messaged.HasItem(sNick))
return;
if (m_pNetwork->IsUserAttached())
if (GetNetwork()->IsUserAttached())
return;
m_Messaged.AddItem(sNick);
+10 -9
View File
@@ -84,10 +84,10 @@ public:
}
void StartBackNickTimer() {
CIRCSock* pIRCSock = m_pNetwork->GetIRCSock();
CIRCSock* pIRCSock = GetNetwork()->GetIRCSock();
if (pIRCSock) {
CString sConfNick = m_pNetwork->GetNick();
CString sConfNick = GetNetwork()->GetNick();
if (pIRCSock->GetNick().Equals(m_sAwayNick.Left(pIRCSock->GetNick().length()))) {
RemTimer("BackNickTimer");
@@ -98,7 +98,8 @@ public:
virtual EModRet OnIRCRegistration(CString& sPass, CString& sNick,
CString& sIdent, CString& sRealName) {
if (m_pNetwork && !m_pNetwork->IsUserAttached()) {
CIRCNetwork* pNetwork = GetNetwork();
if (pNetwork && !pNetwork->IsUserAttached()) {
m_sAwayNick = m_sFormat;
// ExpandString doesn't know our nick yet, so do it by hand.
@@ -106,7 +107,7 @@ public:
// We don't limit this to NICKLEN, because we dont know
// NICKLEN yet.
sNick = m_sAwayNick = m_pNetwork->ExpandString(m_sAwayNick);
sNick = m_sAwayNick = pNetwork->ExpandString(m_sAwayNick);
}
return CONTINUE;
}
@@ -121,7 +122,7 @@ public:
}
virtual void OnClientDisconnect() {
if (!m_pNetwork->IsUserAttached()) {
if (!GetNetwork()->IsUserAttached()) {
StartAwayNickTimer();
}
}
@@ -139,7 +140,7 @@ public:
SetNV("nick", m_sFormat);
}
if (m_pNetwork) {
if (GetNetwork()) {
CString sExpanded = GetAwayNick();
CString sMsg = "AwayNick is set to [" + m_sFormat + "]";
@@ -150,7 +151,7 @@ public:
PutModule(sMsg);
}
} else if (sCommand.Equals("SHOW")) {
if (m_pNetwork) {
if (GetNetwork()) {
CString sExpanded = GetAwayNick();
CString sMsg = "AwayNick is set to [" + m_sFormat + "]";
@@ -167,13 +168,13 @@ public:
CString GetAwayNick() {
unsigned int uLen = 9;
CIRCSock* pIRCSock = m_pNetwork->GetIRCSock();
CIRCSock* pIRCSock = GetNetwork()->GetIRCSock();
if (pIRCSock) {
uLen = pIRCSock->GetMaxNickLen();
}
m_sAwayNick = m_pNetwork->ExpandString(m_sFormat).Left(uLen);
m_sAwayNick = GetNetwork()->ExpandString(m_sFormat).Left(uLen);
return m_sAwayNick;
}
+5 -5
View File
@@ -57,10 +57,10 @@ class CAway : public CModule
time(&curtime);
if (sCommand.Token(1) != "-quiet") {
sReason = CUtils::FormatTime(curtime, sCommand.Token(1, true), m_pUser->GetTimezone());
sReason = CUtils::FormatTime(curtime, sCommand.Token(1, true), GetUser()->GetTimezone());
PutModNotice("You have been marked as away");
} else {
sReason = CUtils::FormatTime(curtime, sCommand.Token(2, true), m_pUser->GetTimezone());
sReason = CUtils::FormatTime(curtime, sCommand.Token(2, true), GetUser()->GetTimezone());
}
Away(false, sReason);
@@ -340,7 +340,7 @@ public:
CString GetPath()
{
CString sBuffer = m_pUser->GetUserName();
CString sBuffer = GetUser()->GetUserName();
CString sRet = GetSavePath();
sRet += "/.znc-away-" + CBlowfish::MD5(sBuffer, true);
return(sRet);
@@ -476,7 +476,7 @@ private:
void AddMessage(time_t iTime, const CNick & Nick, const CString & sMessage)
{
if (Nick.GetNick() == m_pNetwork->GetIRCNick().GetNick())
if (Nick.GetNick() == GetNetwork()->GetIRCNick().GetNick())
return; // ignore messages from self
AddMessage(CString(iTime) + " " + Nick.GetNickMask() + " " + sMessage);
}
@@ -500,7 +500,7 @@ private:
void CAwayJob::RunJob()
{
CAway *p = (CAway *)m_pModule;
CAway *p = (CAway *)GetModule();
p->SaveBufferToDisk();
if (!p->IsAway())
+2 -2
View File
@@ -63,7 +63,7 @@ public:
void OnModCommand(const CString& sCommand) {
CString sCmd = sCommand.Token(0);
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
PutModule("Access denied");
return;
}
@@ -84,7 +84,7 @@ public:
} else if (sCmd.Equals("block")) {
CString sUser = sCommand.Token(1, true);
if (m_pUser->GetUserName().Equals(sUser)) {
if (GetUser()->GetUserName().Equals(sUser)) {
PutModule("You can't block yourself");
return;
}
+8 -7
View File
@@ -151,7 +151,7 @@ public:
virtual ~CBounceDCCMod() {}
CString GetLocalDCCIP() {
return m_pUser->GetLocalDCCIP();
return GetUser()->GetLocalDCCIP();
}
bool UseClientIP() {
@@ -168,7 +168,7 @@ public:
CString sIP = GetLocalDCCIP();
if (!UseClientIP()) {
uLongIP = CUtils::GetLongIP(m_pClient->GetRemoteIP());
uLongIP = CUtils::GetLongIP(GetClient()->GetRemoteIP());
}
if (sType.Equals("CHAT")) {
@@ -213,7 +213,8 @@ public:
}
virtual EModRet OnPrivCTCP(CNick& Nick, CString& sMessage) {
if (sMessage.Equals("DCC ", false, 4) && m_pNetwork->IsUserAttached()) {
CIRCNetwork* pNetwork = GetNetwork();
if (sMessage.Equals("DCC ", false, 4) && pNetwork->IsUserAttached()) {
// DCC CHAT chat 2453612361 44592
CString sType = sMessage.Token(1, false, " ", false, "\"", "\"", true);
CString sFile = sMessage.Token(2, false, " ", false, "\"", "\"", false);
@@ -226,14 +227,14 @@ public:
unsigned short uBNCPort = CDCCBounce::DCCRequest(FromNick.GetNick(), uLongIP, uPort, "", true, this, CUtils::GetIP(uLongIP));
if (uBNCPort) {
CString sIP = GetLocalDCCIP();
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + m_pNetwork->GetCurNick() + " :\001DCC CHAT chat " + CString(CUtils::GetLongIP(sIP)) + " " + CString(uBNCPort) + "\001");
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + pNetwork->GetCurNick() + " :\001DCC CHAT chat " + CString(CUtils::GetLongIP(sIP)) + " " + CString(uBNCPort) + "\001");
}
} else if (sType.Equals("SEND")) {
// DCC SEND readme.txt 403120438 5550 1104
unsigned short uBNCPort = CDCCBounce::DCCRequest(Nick.GetNick(), uLongIP, uPort, sFile, false, this, CUtils::GetIP(uLongIP));
if (uBNCPort) {
CString sIP = GetLocalDCCIP();
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + m_pNetwork->GetCurNick() + " :\001DCC SEND " + sFile + " " + CString(CUtils::GetLongIP(sIP)) + " " + CString(uBNCPort) + " " + CString(uFileSize) + "\001");
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + pNetwork->GetCurNick() + " :\001DCC SEND " + sFile + " " + CString(CUtils::GetLongIP(sIP)) + " " + CString(uBNCPort) + " " + CString(uFileSize) + "\001");
}
} else if (sType.Equals("RESUME")) {
// Need to lookup the connection by port, filter the port, and forward to the user
@@ -244,7 +245,7 @@ public:
CDCCBounce* pSock = (CDCCBounce*) *it;
if (pSock->GetLocalPort() == uResumePort) {
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + m_pNetwork->GetCurNick() + " :\001DCC " + sType + " " + sFile + " " + CString(pSock->GetUserPort()) + " " + sMessage.Token(4) + "\001");
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + pNetwork->GetCurNick() + " :\001DCC " + sType + " " + sFile + " " + CString(pSock->GetUserPort()) + " " + sMessage.Token(4) + "\001");
}
}
} else if (sType.Equals("ACCEPT")) {
@@ -254,7 +255,7 @@ public:
CDCCBounce* pSock = (CDCCBounce*) *it;
if (pSock->GetUserPort() == sMessage.Token(3).ToUShort()) {
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + m_pNetwork->GetCurNick() + " :\001DCC " + sType + " " + sFile + " " + CString(pSock->GetLocalPort()) + " " + sMessage.Token(4) + "\001");
PutUser(":" + Nick.GetNickMask() + " PRIVMSG " + pNetwork->GetCurNick() + " :\001DCC " + sType + " " + sFile + " " + CString(pSock->GetLocalPort()) + " " + sMessage.Token(4) + "\001");
}
}
}
+1 -1
View File
@@ -27,7 +27,7 @@ public:
void AddBuffer(CChan& Channel, const CString& sMessage) {
// If they have AutoClearChanBuffer enabled, only add messages if no client is connected
if (Channel.AutoClearChanBuffer() && m_pNetwork->IsUserOnline())
if (Channel.AutoClearChanBuffer() && GetNetwork()->IsUserOnline())
return;
Channel.AddBuffer(":" + GetModNick() + "!" + GetModName() + "@znc.in PRIVMSG " + _NAMEDFMT(Channel.GetName()) + " :{text}", sMessage);
+1 -1
View File
@@ -36,7 +36,7 @@ public:
PutModule("You have a certificate in: " + PemFile());
} else {
PutModule("You do not have a certificate. Please use the web interface to add a certificate");
if (m_pUser->IsAdmin()) {
if (GetUser()->IsAdmin()) {
PutModule("Alternatively you can either place one at " + PemFile());
}
}
+5 -5
View File
@@ -137,7 +137,7 @@ public:
}
void HandleShowCommand(const CString& sLine) {
const CString sPubKey = GetKey(m_pClient);
const CString sPubKey = GetKey(GetClient());
if (sPubKey.empty()) {
PutModule("You are not connected with any valid public key");
@@ -150,13 +150,13 @@ public:
CString sPubKey = sLine.Token(1);
if (sPubKey.empty()) {
sPubKey = GetKey(m_pClient);
sPubKey = GetKey(GetClient());
}
if (sPubKey.empty()) {
PutModule("You did not supply a public key or connect with one.");
} else {
if (AddKey(m_pUser, sPubKey)) {
if (AddKey(GetUser(), sPubKey)) {
PutModule("'" + sPubKey + "' added.");
} else {
PutModule("The key '" + sPubKey + "' is already added.");
@@ -170,7 +170,7 @@ public:
Table.AddColumn("Id");
Table.AddColumn("Key");
MSCString::const_iterator it = m_PubKeys.find(m_pUser->GetUserName());
MSCString::const_iterator it = m_PubKeys.find(GetUser()->GetUserName());
if (it == m_PubKeys.end()) {
PutModule("No keys set for your user");
return;
@@ -192,7 +192,7 @@ public:
void HandleDelCommand(const CString& sLine) {
unsigned int id = sLine.Token(1, true).ToUInt();
MSCString::iterator it = m_PubKeys.find(m_pUser->GetUserName());
MSCString::iterator it = m_PubKeys.find(GetUser()->GetUserName());
if (it == m_PubKeys.end()) {
PutModule("No keys set for your user");
+2 -2
View File
@@ -92,14 +92,14 @@ public:
}
virtual void OnJoin(const CNick& Nick, CChan& Channel) {
if (Nick.GetNick() == m_pNetwork->GetIRCNick().GetNick() && !Channel.InConfig()) {
if (Nick.GetNick() == GetNetwork()->GetIRCNick().GetNick() && !Channel.InConfig()) {
Channel.SetInConfig(true);
CZNC::Get().WriteConfig();
}
}
virtual void OnPart(const CNick& Nick, CChan& Channel, const CString& sMessage) {
if (Nick.GetNick() == m_pNetwork->GetIRCNick().GetNick() && Channel.InConfig()) {
if (Nick.GetNick() == GetNetwork()->GetIRCNick().GetNick() && Channel.InConfig()) {
Channel.SetInConfig(false);
CZNC::Get().WriteConfig();
}
+5 -4
View File
@@ -25,8 +25,9 @@ public:
MODCONSTRUCTOR(CClearBufferOnMsgMod) {}
void ClearAllBuffers() {
if (m_pNetwork) {
const vector<CChan*>& vChans = m_pNetwork->GetChans();
CIRCNetwork* pNetwork = GetNetwork();
if (pNetwork) {
const vector<CChan*>& vChans = pNetwork->GetChans();
for (vector<CChan*>::const_iterator it = vChans.begin(); it != vChans.end(); ++it) {
// Skip detached channels, they weren't read yet
@@ -39,10 +40,10 @@ public:
(*it)->SetAutoClearChanBuffer(false);
}
vector<CQuery*> VQueries = m_pNetwork->GetQueries();
vector<CQuery*> VQueries = pNetwork->GetQueries();
for (vector<CQuery*>::const_iterator it = VQueries.begin(); it != VQueries.end(); ++it) {
m_pNetwork->DelQuery((*it)->GetName());
pNetwork->DelQuery((*it)->GetName());
}
}
}
+7 -6
View File
@@ -35,10 +35,10 @@ protected:
void SendNotification(const CString& sMessage) {
if(m_sMethod == "message") {
m_pUser->PutStatus(sMessage, NULL, m_pClient);
GetUser()->PutStatus(sMessage, NULL, GetClient());
}
else if(m_sMethod == "notice") {
m_pUser->PutStatusNotice(sMessage, NULL, m_pClient);
GetUser()->PutStatusNotice(sMessage, NULL, GetClient());
}
}
@@ -62,13 +62,14 @@ public:
}
void OnClientLogin() {
if(!m_bNewOnly || m_sClientsSeen.find(m_pClient->GetRemoteIP()) == m_sClientsSeen.end()) {
CString sRemoteIP = GetClient()->GetRemoteIP();
if(!m_bNewOnly || m_sClientsSeen.find(sRemoteIP) == m_sClientsSeen.end()) {
SendNotification("Another client authenticated as your user. "
"Use the 'ListClients' command to see all " +
CString(m_pUser->GetAllClients().size()) + " clients.");
CString(GetUser()->GetAllClients().size()) + " clients.");
// the set<> will automatically disregard duplicates:
m_sClientsSeen.insert(m_pClient->GetRemoteIP());
m_sClientsSeen.insert(sRemoteIP);
}
}
@@ -76,7 +77,7 @@ public:
if(m_bOnDisconnect) {
SendNotification("A client disconnected from your user. "
"Use the 'ListClients' command to see the " +
CString(m_pUser->GetAllClients().size()) + " remaining client(s).");
CString(GetUser()->GetAllClients().size()) + " remaining client(s).");
}
}
+37 -37
View File
@@ -165,13 +165,13 @@ class CAdminMod : public CModule {
CUser* FindUser(const CString& sUsername) {
if (sUsername.Equals("$me"))
return m_pUser;
return GetUser();
CUser *pUser = CZNC::Get().FindUser(sUsername);
if (!pUser) {
PutModule("Error: User [" + sUsername + "] not found.");
return NULL;
}
if (pUser != m_pUser && !m_pUser->IsAdmin()) {
if (pUser != GetUser() && !GetUser()->IsAdmin()) {
PutModule("Error: You need to have admin rights to modify other users!");
return NULL;
}
@@ -189,7 +189,7 @@ class CAdminMod : public CModule {
}
if (sUsername.empty()) {
pUser = m_pUser;
pUser = GetUser();
} else {
pUser = FindUser(sUsername);
}
@@ -286,14 +286,14 @@ class CAdminMod : public CModule {
PutModule("RealName = " + sValue);
}
else if (sVar == "bindhost") {
if(!pUser->DenySetBindHost() || m_pUser->IsAdmin()) {
if (sValue.Equals(m_pUser->GetBindHost())) {
if(!pUser->DenySetBindHost() || GetUser()->IsAdmin()) {
if (sValue.Equals(GetUser()->GetBindHost())) {
PutModule("This bind host is already set!");
return;
}
const VCString& vsHosts = CZNC::Get().GetBindHosts();
if (!m_pUser->IsAdmin() && !vsHosts.empty()) {
if (!GetUser()->IsAdmin() && !vsHosts.empty()) {
VCString::const_iterator it;
bool bFound = false;
@@ -305,7 +305,7 @@ class CAdminMod : public CModule {
}
if (!bFound) {
PutModule("You may not use this bind host. See /msg " + m_pUser->GetStatusPrefix() + "status ListBindHosts for a list");
PutModule("You may not use this bind host. See /msg " + GetUser()->GetStatusPrefix() + "status ListBindHosts for a list");
return;
}
}
@@ -322,7 +322,7 @@ class CAdminMod : public CModule {
PutModule("MultiClients = " + CString(b));
}
else if (sVar == "denyloadmod") {
if(m_pUser->IsAdmin()) {
if(GetUser()->IsAdmin()) {
bool b = sValue.ToBool();
pUser->SetDenyLoadMod(b);
PutModule("DenyLoadMod = " + CString(b));
@@ -331,7 +331,7 @@ class CAdminMod : public CModule {
}
}
else if (sVar == "denysetbindhost") {
if(m_pUser->IsAdmin()) {
if(GetUser()->IsAdmin()) {
bool b = sValue.ToBool();
pUser->SetDenySetBindHost(b);
PutModule("DenySetBindHost = " + CString(b));
@@ -350,7 +350,7 @@ class CAdminMod : public CModule {
else if (sVar == "buffercount") {
unsigned int i = sValue.ToUInt();
// Admins don't have to honour the buffer limit
if (pUser->SetBufferCount(i, m_pUser->IsAdmin())) {
if (pUser->SetBufferCount(i, GetUser()->IsAdmin())) {
PutModule("BufferCount = " + sValue);
} else {
PutModule("Setting failed, limit is " +
@@ -384,7 +384,7 @@ class CAdminMod : public CModule {
PutModule("MaxJoins = " + CString(pUser->MaxJoins()));
}
else if (sVar == "maxnetworks") {
if(m_pUser->IsAdmin()) {
if(GetUser()->IsAdmin()) {
unsigned int i = sValue.ToUInt();
pUser->SetMaxNetworks(i);
PutModule("MaxNetworks = " + sValue);
@@ -407,7 +407,7 @@ class CAdminMod : public CModule {
PutModule("Timezone = " + pUser->GetTimezone());
}
else if (sVar == "admin") {
if(m_pUser->IsAdmin() && pUser != m_pUser) {
if(GetUser()->IsAdmin() && pUser != GetUser()) {
bool b = sValue.ToBool();
pUser->SetAdmin(b);
PutModule("Admin = " + CString(pUser->IsAdmin()));
@@ -430,7 +430,7 @@ class CAdminMod : public CModule {
PutModule("TimestampFormat = " + sValue);
}
else if (sVar == "dccbindhost") {
if(!pUser->DenySetBindHost() || m_pUser->IsAdmin()) {
if(!pUser->DenySetBindHost() || GetUser()->IsAdmin()) {
pUser->SetDCCBindHost(sValue);
PutModule("DCCBindHost = " + sValue);
} else {
@@ -464,8 +464,8 @@ class CAdminMod : public CModule {
CIRCNetwork *pNetwork = NULL;
if (sUsername.empty()) {
pUser = m_pUser;
pNetwork = m_pNetwork;
pUser = GetUser();
pNetwork = CModule::GetNetwork();
} else {
pUser = FindUser(sUsername);
if (!pUser) {
@@ -519,8 +519,8 @@ class CAdminMod : public CModule {
CIRCNetwork *pNetwork = NULL;
if (sUsername.empty()) {
pUser = m_pUser;
pNetwork = m_pNetwork;
pUser = GetUser();
pNetwork = CModule::GetNetwork();
} else {
pUser = FindUser(sUsername);
if (!pUser) {
@@ -552,14 +552,14 @@ class CAdminMod : public CModule {
pNetwork->SetRealName(sValue);
PutModule("RealName = " + pNetwork->GetRealName());
} else if (sVar.Equals("bindhost")) {
if(!pUser->DenySetBindHost() || m_pUser->IsAdmin()) {
if(!pUser->DenySetBindHost() || GetUser()->IsAdmin()) {
if (sValue.Equals(pNetwork->GetBindHost())) {
PutModule("This bind host is already set!");
return;
}
const VCString& vsHosts = CZNC::Get().GetBindHosts();
if (!m_pUser->IsAdmin() && !vsHosts.empty()) {
if (!GetUser()->IsAdmin() && !vsHosts.empty()) {
VCString::const_iterator it;
bool bFound = false;
@@ -571,7 +571,7 @@ class CAdminMod : public CModule {
}
if (!bFound) {
PutModule("You may not use this bind host. See /msg " + m_pUser->GetStatusPrefix() + "status ListBindHosts for a list");
PutModule("You may not use this bind host. See /msg " + GetUser()->GetStatusPrefix() + "status ListBindHosts for a list");
return;
}
}
@@ -761,7 +761,7 @@ class CAdminMod : public CModule {
} else if (sVar == "buffer") {
unsigned int i = sValue.ToUInt();
// Admins don't have to honour the buffer limit
if (pChan->SetBufferCount(i, m_pUser->IsAdmin())) {
if (pChan->SetBufferCount(i, GetUser()->IsAdmin())) {
PutModule(pChan->GetName() + ": Buffer = " + sValue);
} else {
PutModule("Setting failed, limit is " +
@@ -800,7 +800,7 @@ class CAdminMod : public CModule {
}
void ListUsers(const CString&) {
if (!m_pUser->IsAdmin())
if (!GetUser()->IsAdmin())
return;
const map<CString, CUser*>& msUsers = CZNC::Get().GetUserMap();
@@ -831,7 +831,7 @@ class CAdminMod : public CModule {
}
void AddUser(const CString& sLine) {
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
PutModule("Error: You need to have admin rights to add new users!");
return;
}
@@ -865,7 +865,7 @@ class CAdminMod : public CModule {
}
void DelUser(const CString& sLine) {
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
PutModule("Error: You need to have admin rights to delete users!");
return;
}
@@ -883,7 +883,7 @@ class CAdminMod : public CModule {
return;
}
if (pUser == m_pUser) {
if (pUser == GetUser()) {
PutModule("Error: You can't delete yourself!");
return;
}
@@ -899,7 +899,7 @@ class CAdminMod : public CModule {
}
void CloneUser(const CString& sLine) {
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
PutModule("Error: You need to have admin rights to add new users!");
return;
}
@@ -941,7 +941,7 @@ class CAdminMod : public CModule {
void AddNetwork(const CString& sLine) {
CString sUser = sLine.Token(1);
CString sNetwork = sLine.Token(2);
CUser *pUser = m_pUser;
CUser *pUser = GetUser();
if (sNetwork.empty()) {
sNetwork = sUser;
@@ -958,7 +958,7 @@ class CAdminMod : public CModule {
return;
}
if (!m_pUser->IsAdmin() && !pUser->HasSpaceForNewNetwork()) {
if (!GetUser()->IsAdmin() && !pUser->HasSpaceForNewNetwork()) {
PutStatus("Network number limit reached. Ask an admin to increase the limit for you, or delete unneeded networks using /znc DelNetwork <name>");
return;
}
@@ -979,7 +979,7 @@ class CAdminMod : public CModule {
void DelNetwork(const CString& sLine) {
CString sUser = sLine.Token(1);
CString sNetwork = sLine.Token(2);
CUser *pUser = m_pUser;
CUser *pUser = GetUser();
if (sNetwork.empty()) {
sNetwork = sUser;
@@ -1002,8 +1002,8 @@ class CAdminMod : public CModule {
return;
}
if (pNetwork == m_pNetwork) {
PutModule("The currently active network can be deleted via " + m_pUser->GetStatusPrefix() + "status");
if (pNetwork == CModule::GetNetwork()) {
PutModule("The currently active network can be deleted via " + GetUser()->GetStatusPrefix() + "status");
return;
}
@@ -1016,7 +1016,7 @@ class CAdminMod : public CModule {
void ListNetworks(const CString& sLine) {
CString sUser = sLine.Token(1);
CUser *pUser = m_pUser;
CUser *pUser = GetUser();
if (!sUser.empty()) {
pUser = FindUser(sUser);
@@ -1145,7 +1145,7 @@ class CAdminMod : public CModule {
CString sUserName = sLine.Token(1, true);
if (sUserName.empty()) {
sUserName = m_pUser->GetUserName();
sUserName = GetUser()->GetUserName();
}
CUser* pUser = FindUser(sUserName);
if (!pUser)
@@ -1177,7 +1177,7 @@ class CAdminMod : public CModule {
if (sCTCPRequest.empty()) {
sCTCPRequest = sUserName;
sCTCPReply = sLine.Token(2, true);
sUserName = m_pUser->GetUserName();
sUserName = GetUser()->GetUserName();
}
if (sCTCPRequest.empty()) {
PutModule("Usage: AddCTCP [user] [request] [reply]");
@@ -1202,7 +1202,7 @@ class CAdminMod : public CModule {
if (sCTCPRequest.empty()) {
sCTCPRequest = sUserName;
sUserName = m_pUser->GetUserName();
sUserName = GetUser()->GetUserName();
}
CUser* pUser = FindUser(sUserName);
if (!pUser)
@@ -1220,7 +1220,7 @@ class CAdminMod : public CModule {
}
void LoadModuleFor(CModules& Modules, const CString& sModName, const CString& sArgs, CModInfo::EModuleType eType, CUser* pUser, CIRCNetwork* pNetwork) {
if (pUser->DenyLoadMod() && !m_pUser->IsAdmin()) {
if (pUser->DenyLoadMod() && !GetUser()->IsAdmin()) {
PutModule("Loading modules has been disabled.");
return;
}
@@ -1286,7 +1286,7 @@ class CAdminMod : public CModule {
}
void UnLoadModuleFor(CModules& Modules, const CString& sModName, CUser* pUser) {
if (pUser->DenyLoadMod() && !m_pUser->IsAdmin()) {
if (pUser->DenyLoadMod() && !GetUser()->IsAdmin()) {
PutModule("Loading modules has been disabled.");
return;
}
+4 -3
View File
@@ -58,11 +58,12 @@ public:
MCString::iterator it = FindNV(sTarget.AsLower());
if (it != EndNV()) {
CChan* pChan = m_pNetwork->FindChan(sTarget);
CChan* pChan = GetNetwork()->FindChan(sTarget);
CString sNickMask = GetNetwork()->GetIRCNick().GetNickMask();
if (pChan) {
if (!pChan->AutoClearChanBuffer())
pChan->AddBuffer(":" + NickPrefix() + _NAMEDFMT(m_pNetwork->GetIRCNick().GetNickMask()) + " PRIVMSG " + _NAMEDFMT(sTarget) + " :{text}", sMessage);
m_pUser->PutUser(":" + NickPrefix() + m_pNetwork->GetIRCNick().GetNickMask() + " PRIVMSG " + sTarget + " :" + sMessage, NULL, m_pClient);
pChan->AddBuffer(":" + NickPrefix() + _NAMEDFMT(sNickMask) + " PRIVMSG " + _NAMEDFMT(sTarget) + " :{text}", sMessage);
GetUser()->PutUser(":" + NickPrefix() + sNickMask + " PRIVMSG " + sTarget + " :" + sMessage, NULL, GetClient());
}
CString sMsg = MakeIvec() + sMessage;
+1 -1
View File
@@ -44,7 +44,7 @@ public:
}
void OnModCommand(const CString& sCommand) {
if (m_pUser->IsAdmin()) {
if (GetUser()->IsAdmin()) {
HandleCommand(sCommand);
} else {
PutModule("Access denied");
+11 -10
View File
@@ -87,7 +87,7 @@ public:
#ifndef MOD_DCC_ALLOW_EVERYONE
virtual bool OnLoad(const CString& sArgs, CString& sMessage) {
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
sMessage = "You must be admin to use the DCC module";
return false;
}
@@ -107,13 +107,14 @@ public:
return false;
}
unsigned short uPort = CZNC::Get().GetManager().ListenRand("DCC::LISTEN::" + sRemoteNick, m_pUser->GetLocalDCCIP(), false, SOMAXCONN, pSock, 120);
CString sLocalDCCIP = GetUser()->GetLocalDCCIP();
unsigned short uPort = CZNC::Get().GetManager().ListenRand("DCC::LISTEN::" + sRemoteNick, sLocalDCCIP, false, SOMAXCONN, pSock, 120);
if (m_pUser->GetNick().Equals(sRemoteNick)) {
PutUser(":*dcc!znc@znc.in PRIVMSG " + sRemoteNick + " :\001DCC SEND " + pFile->GetShortName() + " " + CString(CUtils::GetLongIP(m_pUser->GetLocalDCCIP())) + " "
if (GetUser()->GetNick().Equals(sRemoteNick)) {
PutUser(":*dcc!znc@znc.in PRIVMSG " + sRemoteNick + " :\001DCC SEND " + pFile->GetShortName() + " " + CString(CUtils::GetLongIP(sLocalDCCIP)) + " "
+ CString(uPort) + " " + CString(pFile->GetSize()) + "\001");
} else {
PutIRC("PRIVMSG " + sRemoteNick + " :\001DCC SEND " + pFile->GetShortName() + " " + CString(CUtils::GetLongIP(m_pUser->GetLocalDCCIP())) + " "
PutIRC("PRIVMSG " + sRemoteNick + " :\001DCC SEND " + pFile->GetShortName() + " " + CString(CUtils::GetLongIP(sLocalDCCIP)) + " "
+ CString(uPort) + " " + CString(pFile->GetSize()) + "\001");
}
@@ -134,7 +135,7 @@ public:
return false;
}
CZNC::Get().GetManager().Connect(sRemoteIP, uRemotePort, "DCC::GET::" + sRemoteNick, 60, false, m_pUser->GetLocalDCCIP(), pSock);
CZNC::Get().GetManager().Connect(sRemoteIP, uRemotePort, "DCC::GET::" + sRemoteNick, 60, false, GetUser()->GetLocalDCCIP(), pSock);
PutModule("DCC <- [" + sRemoteNick + "][" + sFileName + "] - Attempting to connect to [" + sRemoteIP + "]");
return true;
@@ -178,7 +179,7 @@ public:
return;
}
SendFile(m_pUser->GetNick(), sFile);
SendFile(GetUser()->GetNick(), sFile);
}
void ListTransfersCommand(const CString& sLine) {
@@ -231,9 +232,9 @@ public:
if (pSock->GetLocalPort() == uResumePort) {
if (pSock->Seek(uResumeSize)) {
PutModule("DCC -> [" + pSock->GetRemoteNick() + "][" + pSock->GetFileName() + "] - Attempting to resume from file position [" + CString(uResumeSize) + "]");
PutUser(":*dcc!znc@znc.in PRIVMSG " + m_pUser->GetNick() + " :\001DCC ACCEPT " + sFile + " " + CString(uResumePort) + " " + CString(uResumeSize) + "\001");
PutUser(":*dcc!znc@znc.in PRIVMSG " + GetUser()->GetNick() + " :\001DCC ACCEPT " + sFile + " " + CString(uResumePort) + " " + CString(uResumeSize) + "\001");
} else {
PutModule("DCC -> [" + m_pUser->GetNick() + "][" + sFile + "] Unable to find send to initiate resume.");
PutModule("DCC -> [" + GetUser()->GetNick() + "][" + sFile + "] Unable to find send to initiate resume.");
}
}
@@ -246,7 +247,7 @@ public:
unsigned long uLongIP = sMessage.Token(3).ToULong();
unsigned short uPort = sMessage.Token(4).ToUShort();
unsigned long uFileSize = sMessage.Token(5).ToULong();
GetFile(m_pClient->GetNick(), CUtils::GetIP(uLongIP), uPort, sLocalFile, uFileSize);
GetFile(GetClient()->GetNick(), CUtils::GetIP(uLongIP), uPort, sLocalFile, uFileSize);
}
}
};
+2 -2
View File
@@ -25,12 +25,12 @@ public:
void OnIRCDisconnected()
{
const vector<CChan*>& vChans = m_pNetwork->GetChans();
const vector<CChan*>& vChans = GetNetwork()->GetChans();
for(vector<CChan*>::const_iterator it = vChans.begin(); it != vChans.end(); ++it)
{
if((*it)->IsOn()) {
PutUser(":ZNC!znc@znc.in KICK " + (*it)->GetName() + " " + m_pNetwork->GetIRCNick().GetNick()
PutUser(":ZNC!znc@znc.in KICK " + (*it)->GetName() + " " + GetNetwork()->GetIRCNick().GetNick()
+ " :You have been disconnected from the IRC server");
}
}
+1 -1
View File
@@ -77,7 +77,7 @@ public:
if (it->second.first + (time_t)m_iThresholdSecs >= now)
continue;
CChan *pChan = m_pNetwork->FindChan(it->first);
CChan *pChan = GetNetwork()->FindChan(it->first);
if (it->second.second >= m_iThresholdMsgs
&& pChan && pChan->IsDetached()) {
// The channel is detached and it is over the
+5 -5
View File
@@ -74,7 +74,7 @@ public:
}
void OnModCommand(const CString& sCommand) {
if (m_pUser->IsAdmin()) {
if (GetUser()->IsAdmin()) {
HandleCommand(sCommand);
} else {
PutModule("Access denied");
@@ -121,10 +121,10 @@ public:
// If the format doesn't contain anything expandable, we'll
// assume this is an "old"-style format string.
if (sData == GetNV("Format")) {
sData.Replace("%", m_pUser->GetIdent());
sData.Replace("%", GetUser()->GetIdent());
}
DEBUG("Writing [" + sData + "] to ident spoof file [" + m_pISpoofLockFile->GetLongName() + "] for user/network [" + m_pUser->GetUserName() + "/" + m_pNetwork->GetName() + "]");
DEBUG("Writing [" + sData + "] to ident spoof file [" + m_pISpoofLockFile->GetLongName() + "] for user/network [" + GetUser()->GetUserName() + "/" + GetNetwork()->GetName() + "]");
m_pISpoofLockFile->Write(sData + "\n");
@@ -180,7 +180,7 @@ public:
}
virtual void OnIRCConnected() {
if (m_pIRCSock == m_pNetwork->GetIRCSock()) {
if (m_pIRCSock == GetNetwork()->GetIRCSock()) {
ReleaseISpoof();
}
}
@@ -192,7 +192,7 @@ public:
}
virtual void OnIRCDisconnected() {
if (m_pIRCSock == m_pNetwork->GetIRCSock()) {
if (m_pIRCSock == GetNetwork()->GetIRCSock()) {
ReleaseISpoof();
}
}
+8 -8
View File
@@ -42,7 +42,7 @@ public:
m_pTimer = NULL;
// Check if we need to start the timer
if (m_pNetwork->IsIRCConnected())
if (GetNetwork()->IsIRCConnected())
OnIRCConnected();
return true;
@@ -53,7 +53,7 @@ public:
// No timer means we are turned off
return;
CIRCSock* pIRCSock = m_pNetwork->GetIRCSock();
CIRCSock* pIRCSock = GetNetwork()->GetIRCSock();
if (!pIRCSock)
return;
@@ -66,8 +66,8 @@ public:
}
CString GetNick() {
CString sConfNick = m_pNetwork->GetNick();
CIRCSock* pIRCSock = m_pNetwork->GetIRCSock();
CString sConfNick = GetNetwork()->GetNick();
CIRCSock* pIRCSock = GetNetwork()->GetIRCSock();
if (pIRCSock)
sConfNick = sConfNick.Left(pIRCSock->GetMaxNickLen());
@@ -76,7 +76,7 @@ public:
}
void OnNick(const CNick& Nick, const CString& sNewNick, const vector<CChan*>& vChans) {
if (sNewNick == m_pNetwork->GetIRCSock()->GetNick()) {
if (sNewNick == GetNetwork()->GetIRCSock()->GetNick()) {
// We are changing our own nick
if (Nick.NickEquals(GetNick())) {
// We are changing our nick away from the conf setting.
@@ -110,7 +110,7 @@ public:
}
void OnIRCConnected() {
if (!m_pNetwork->GetIRCSock()->GetNick().Equals(GetNick())) {
if (!GetNetwork()->GetIRCSock()->GetNick().Equals(GetNick())) {
// We don't have the nick we want, try to get it
Enable();
}
@@ -135,7 +135,7 @@ public:
virtual EModRet OnUserRaw(CString& sLine) {
// We dont care if we are not connected to IRC
if (!m_pNetwork->IsIRCConnected())
if (!GetNetwork()->IsIRCConnected())
return CONTINUE;
// We are trying to get the config nick and this is a /nick?
@@ -154,7 +154,7 @@ public:
// Indeed trying to change to this nick, generate a 433 for it.
// This way we can *always* block incoming 433s from the server.
PutUser(":" + m_pNetwork->GetIRCServer() + " 433 " + m_pNetwork->GetIRCNick().GetNick()
PutUser(":" + GetNetwork()->GetIRCServer() + " 433 " + GetNetwork()->GetIRCNick().GetNick()
+ " " + sNick + " :ZNC is already trying to get this nickname");
return CONTINUE;
}
+2 -2
View File
@@ -35,7 +35,7 @@ public:
protected:
virtual void RunJob() {
CIRCNetwork* pNetwork = m_pModule->GetNetwork();
CIRCNetwork* pNetwork = GetModule()->GetNetwork();
CChan* pChan = pNetwork->FindChan(GetName().Token(1, true));
if (pChan) {
@@ -105,7 +105,7 @@ public:
}
virtual void OnKick(const CNick& OpNick, const CString& sKickedNick, CChan& pChan, const CString& sMessage) {
if (m_pNetwork->GetCurNick().Equals(sKickedNick)) {
if (GetNetwork()->GetCurNick().Equals(sKickedNick)) {
if (!delay) {
PutIRC("JOIN " + pChan.GetName() + " " + pChan.GetKey());
pChan.Enable();
+2 -2
View File
@@ -69,7 +69,7 @@ public:
virtual bool OnLoad(const CString& sArgs, CString& sMessage)
{
#ifndef MOD_LISTSOCKETS_ALLOW_EVERYONE
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
sMessage = "You must be admin to use this module";
return false;
}
@@ -163,7 +163,7 @@ public:
CString GetCreatedTime(Csock* pSocket) {
unsigned long long iStartTime = pSocket->GetStartTime();
time_t iTime = iStartTime / 1000;
return CUtils::FormatTime(iTime, "%Y-%m-%d %H:%M:%S", m_pUser->GetTimezone());
return CUtils::FormatTime(iTime, "%Y-%m-%d %H:%M:%S", GetUser()->GetTimezone());
}
CString GetLocalHost(Csock* pSocket, bool bShowHosts) {
+14 -11
View File
@@ -75,7 +75,7 @@ void CLogMod::PutLog(const CString& sLine, const CString& sWindow /*= "Status"*/
time(&curtime);
// Generate file name
sPath = CUtils::FormatTime(curtime, m_sLogPath, m_pUser->GetTimezone());
sPath = CUtils::FormatTime(curtime, m_sLogPath, GetUser()->GetTimezone());
if (sPath.empty())
{
DEBUG("Could not format log path [" << sPath << "]");
@@ -84,8 +84,8 @@ void CLogMod::PutLog(const CString& sLine, const CString& sWindow /*= "Status"*/
// TODO: Properly handle IRC case mapping
// $WINDOW has to be handled last, since it can contain %
sPath.Replace("$USER", CString((m_pUser ? m_pUser->GetUserName() : "UNKNOWN")).AsLower());
sPath.Replace("$NETWORK", CString((m_pNetwork ? m_pNetwork->GetName() : "znc")).AsLower());
sPath.Replace("$USER", CString((GetUser() ? GetUser()->GetUserName() : "UNKNOWN")).AsLower());
sPath.Replace("$NETWORK", CString((GetNetwork() ? GetNetwork()->GetName() : "znc")).AsLower());
sPath.Replace("$WINDOW", CString(sWindow.Replace_n("/", "-").Replace_n("\\", "-")).AsLower());
// Check if it's allowed to write in this specific path
@@ -103,7 +103,7 @@ void CLogMod::PutLog(const CString& sLine, const CString& sWindow /*= "Status"*/
if (!CFile::Exists(sLogDir)) CDir::MakeDir(sLogDir, ModDirInfo.st_mode);
if (LogFile.Open(O_WRONLY | O_APPEND | O_CREAT))
{
LogFile.Write(CUtils::FormatTime(curtime, "[%H:%M:%S] ", m_pUser->GetTimezone()) + (m_bSanitize ? sLine.StripControls_n() : sLine) + "\n");
LogFile.Write(CUtils::FormatTime(curtime, "[%H:%M:%S] ", GetUser()->GetTimezone()) + (m_bSanitize ? sLine.StripControls_n() : sLine) + "\n");
} else
DEBUG("Could not open log file [" << sPath << "]: " << strerror(errno));
}
@@ -120,7 +120,7 @@ void CLogMod::PutLog(const CString& sLine, const CNick& Nick)
CString CLogMod::GetServer()
{
CServer* pServer = m_pNetwork->GetCurrentServer();
CServer* pServer = GetNetwork()->GetCurrentServer();
CString sSSL;
if (!pServer)
@@ -238,8 +238,9 @@ CModule::EModRet CLogMod::OnTopic(CNick& Nick, CChan& Channel, CString& sTopic)
/* notices */
CModule::EModRet CLogMod::OnUserNotice(CString& sTarget, CString& sMessage)
{
if (m_pNetwork) {
PutLog("-" + m_pNetwork->GetCurNick() + "- " + sMessage, sTarget);
CIRCNetwork* pNetwork = GetNetwork();
if (pNetwork) {
PutLog("-" + pNetwork->GetCurNick() + "- " + sMessage, sTarget);
}
return CONTINUE;
@@ -260,8 +261,9 @@ CModule::EModRet CLogMod::OnChanNotice(CNick& Nick, CChan& Channel, CString& sMe
/* actions */
CModule::EModRet CLogMod::OnUserAction(CString& sTarget, CString& sMessage)
{
if (m_pNetwork) {
PutLog("* " + m_pNetwork->GetCurNick() + " " + sMessage, sTarget);
CIRCNetwork* pNetwork = GetNetwork();
if (pNetwork) {
PutLog("* " + pNetwork->GetCurNick() + " " + sMessage, sTarget);
}
return CONTINUE;
@@ -282,8 +284,9 @@ CModule::EModRet CLogMod::OnChanAction(CNick& Nick, CChan& Channel, CString& sMe
/* msgs */
CModule::EModRet CLogMod::OnUserMsg(CString& sTarget, CString& sMessage)
{
if (m_pNetwork) {
PutLog("<" + m_pNetwork->GetCurNick() + "> " + sMessage, sTarget);
CIRCNetwork* pNetwork = GetNetwork();
if (pNetwork) {
PutLog("<" + pNetwork->GetCurNick() + "> " + sMessage, sTarget);
}
return CONTINUE;
+18 -18
View File
@@ -72,7 +72,7 @@ public:
virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) {
#ifndef MOD_MODTCL_ALLOW_EVERYONE
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
sErrorMsg = "You must be admin to use the modtcl module";
return false;
}
@@ -262,25 +262,25 @@ private:
static int tcl_GetCurNick STDVAR {
CModTcl *mod = static_cast<CModTcl *>(cd);
Tcl_SetResult(irp, (char *)mod->m_pNetwork->GetCurNick().c_str(), TCL_VOLATILE);
Tcl_SetResult(irp, (char *)mod->GetNetwork()->GetCurNick().c_str(), TCL_VOLATILE);
return TCL_OK;
}
static int tcl_GetUsername STDVAR {
CModTcl *mod = static_cast<CModTcl *>(cd);
Tcl_SetResult(irp, (char *)mod->m_pUser->GetUserName().c_str(), TCL_VOLATILE);
Tcl_SetResult(irp, (char *)mod->GetUser()->GetUserName().c_str(), TCL_VOLATILE);
return TCL_OK;
}
static int tcl_GetRealName STDVAR {
CModTcl *mod = static_cast<CModTcl *>(cd);
Tcl_SetResult(irp, (char *)mod->m_pUser->GetRealName().c_str(), TCL_VOLATILE);
Tcl_SetResult(irp, (char *)mod->GetUser()->GetRealName().c_str(), TCL_VOLATILE);
return TCL_OK;
}
static int tcl_GetBindHost STDVAR {
CModTcl *mod = static_cast<CModTcl *>(cd);
Tcl_SetResult(irp, (char *)mod->m_pUser->GetBindHost().c_str(), TCL_VOLATILE);
Tcl_SetResult(irp, (char *)mod->GetUser()->GetBindHost().c_str(), TCL_VOLATILE);
return TCL_OK;
}
@@ -291,7 +291,7 @@ private:
BADARGS(1, 1, "");
const vector<CChan*>& Channels = mod->m_pNetwork->GetChans();
const vector<CChan*>& Channels = mod->GetNetwork()->GetChans();
for (unsigned int c = 0; c < Channels.size(); c++) {
CChan* pChan = Channels[c];
l[0] = pChan->GetName().c_str();
@@ -311,7 +311,7 @@ private:
BADARGS(2, 999, " channel");
CString sChannel = argvit(argv, argc, 1, " ");
CChan *pChannel = mod->m_pNetwork->FindChan(sChannel);
CChan *pChannel = mod->GetNetwork()->FindChan(sChannel);
if (!pChannel) {
CString sMsg = "invalid channel: " + sChannel;
@@ -340,7 +340,7 @@ private:
BADARGS(2, 999, " channel");
CString sChannel = argvit(argv, argc, 1, " ");
CChan *pChannel = mod->m_pNetwork->FindChan(sChannel);
CChan *pChannel = mod->GetNetwork()->FindChan(sChannel);
CString sMsg;
if (!pChannel) {
@@ -356,7 +356,7 @@ private:
static int tcl_GetServer STDVAR {
CModTcl *mod = static_cast<CModTcl *>(cd);
CServer* pServer = mod->m_pNetwork->GetCurrentServer();
CServer* pServer = mod->GetNetwork()->GetCurrentServer();
CString sMsg;
if (pServer)
sMsg = pServer->GetName() + ":" + CString(pServer->GetPort());
@@ -366,7 +366,7 @@ private:
static int tcl_GetServerOnline STDVAR {
CModTcl *mod = static_cast<CModTcl *>(cd);
CIRCSock* pIRCSock = mod->m_pNetwork->GetIRCSock();
CIRCSock* pIRCSock = mod->GetNetwork()->GetIRCSock();
CString sMsg = "0";
if (pIRCSock)
sMsg = CString(pIRCSock->GetStartTime());
@@ -382,7 +382,7 @@ private:
BADARGS(1, 1, "");
CModules& GModules = CZNC::Get().GetModules();
CModules& Modules = mod->m_pUser->GetModules();
CModules& Modules = mod->GetUser()->GetModules();
for (unsigned int b = 0; b < GModules.size(); b++) {
l[0] = GModules[b]->GetModName().c_str();
@@ -406,7 +406,7 @@ private:
static int tcl_GetClientCount STDVAR {
CModTcl *mod = static_cast<CModTcl *>(cd);
Tcl_SetResult(irp, (char *)CString(mod->m_pNetwork->GetClients().size()).c_str(), TCL_VOLATILE);
Tcl_SetResult(irp, (char *)CString(mod->GetNetwork()->GetClients().size()).c_str(), TCL_VOLATILE);
return TCL_OK;
}
@@ -416,7 +416,7 @@ private:
BADARGS(2, 999, " string");
sMsg = argvit(argv, argc, 1, " ");
mod->m_pNetwork->PutIRC(sMsg);
mod->GetNetwork()->PutIRC(sMsg);
return TCL_OK;
}
@@ -451,7 +451,7 @@ private:
BADARGS(2, 999, " string");
sMsg = argvit(argv, argc, 1, " ");
mod->m_pUser->PutStatusNotice(sMsg);
mod->GetUser()->PutStatusNotice(sMsg);
return TCL_OK;
}
@@ -461,7 +461,7 @@ private:
BADARGS(2, 999, " string");
sMsg = argvit(argv, argc, 1, " ");
mod->m_pUser->PutUser(sMsg);
mod->GetUser()->PutUser(sMsg);
return TCL_OK;
}
@@ -471,7 +471,7 @@ private:
BADARGS(1, 2, " ?reason?");
if (! mod->m_pUser->IsAdmin()) {
if (! mod->GetUser()->IsAdmin()) {
sMsg = "You need to be administrator to shutdown the bnc.";
Tcl_SetResult(irp, (char*)sMsg.c_str(), TCL_VOLATILE);
return TCL_ERROR;
@@ -489,13 +489,13 @@ private:
};
void CModTclTimer::RunJob() {
CModTcl *p = (CModTcl *)m_pModule;
CModTcl *p = (CModTcl *)GetModule();
if (p)
p->TclUpdate();
}
void CModTclStartTimer::RunJob() {
CModTcl *p = (CModTcl *)m_pModule;
CModTcl *p = (CModTcl *)GetModule();
if (p)
p->Start();
}
+9 -8
View File
@@ -24,14 +24,14 @@ public:
virtual ~CFOModule() {}
bool IsOnlineModNick(const CString& sNick) {
const CString& sPrefix = m_pUser->GetStatusPrefix();
const CString& sPrefix = GetUser()->GetStatusPrefix();
if (!sNick.Equals(sPrefix, false, sPrefix.length()))
return false;
CString sModNick = sNick.substr(sPrefix.length());
if (sModNick.Equals("status") ||
m_pNetwork->GetModules().FindModule(sModNick) ||
m_pUser->GetModules().FindModule(sModNick) ||
GetNetwork()->GetModules().FindModule(sModNick) ||
GetUser()->GetModules().FindModule(sModNick) ||
CZNC::Get().GetModules().FindModule(sModNick))
return true;
return false;
@@ -55,10 +55,10 @@ public:
// Remove the leading space
sBNCNicks.LeftChomp();
if (!m_pNetwork->GetIRCSock()) {
if (!GetNetwork()->GetIRCSock()) {
// if we are not connected to any IRC server, send
// an empty or module-nick filled response.
PutUser(":irc.znc.in 303 " + m_pClient->GetNick() + " :" + sBNCNicks);
PutUser(":irc.znc.in 303 " + GetClient()->GetNick() + " :" + sBNCNicks);
} else {
// We let the server handle this request and then act on
// the 303 response from the IRC server.
@@ -71,9 +71,10 @@ public:
CString sNick = sLine.Token(1);
if (IsOnlineModNick(sNick)) {
PutUser(":znc.in 311 " + m_pNetwork->GetCurNick() + " " + sNick + " " + sNick + " znc.in * :" + sNick);
PutUser(":znc.in 312 " + m_pNetwork->GetCurNick() + " " + sNick + " *.znc.in :Bouncer");
PutUser(":znc.in 318 " + m_pNetwork->GetCurNick() + " " + sNick + " :End of /WHOIS list.");
CIRCNetwork* pNetwork = GetNetwork();
PutUser(":znc.in 311 " + pNetwork->GetCurNick() + " " + sNick + " " + sNick + " znc.in * :" + sNick);
PutUser(":znc.in 312 " + pNetwork->GetCurNick() + " " + sNick + " *.znc.in :Bouncer");
PutUser(":znc.in 318 " + pNetwork->GetCurNick() + " " + sNick + " :End of /WHOIS list.");
return HALT;
}
+2 -2
View File
@@ -22,11 +22,11 @@ public:
MODCONSTRUCTOR(CNotifyConnectMod) {}
virtual void OnClientLogin() {
SendAdmins(m_pUser->GetUserName() + " attached (from " + m_pClient->GetRemoteIP() + ")");
SendAdmins(GetUser()->GetUserName() + " attached (from " + GetClient()->GetRemoteIP() + ")");
}
virtual void OnClientDisconnect() {
SendAdmins(m_pUser->GetUserName() + " detached (from " + m_pClient->GetRemoteIP() + ")");
SendAdmins(GetUser()->GetUserName() + " detached (from " + GetClient()->GetRemoteIP() + ")");
}
private:
+48 -39
View File
@@ -198,7 +198,7 @@ public:
sLine.append(CHAN_PREFIX_1);
else
sLine.insert(uPos, CHAN_PREFIX_1);
m_spInjectedPrefixes.insert(m_pNetwork);
m_spInjectedPrefixes.insert(GetNetwork());
}
}
@@ -206,58 +206,62 @@ public:
}
virtual void OnIRCDisconnected() {
m_spInjectedPrefixes.erase(m_pNetwork);
m_spInjectedPrefixes.erase(GetNetwork());
}
virtual void OnClientLogin() {
if (m_spInjectedPrefixes.find(m_pNetwork) == m_spInjectedPrefixes.end() && m_pNetwork && !m_pNetwork->GetChanPrefixes().empty()) {
m_pClient->PutClient(":" + GetIRCServer(m_pNetwork) + " 005 " + m_pClient->GetNick() + " CHANTYPES=" + m_pNetwork->GetChanPrefixes() + CHAN_PREFIX_1 " :are supported by this server.");
CUser* pUser = GetUser();
CClient* pClient = GetClient();
CIRCNetwork* pNetwork = GetNetwork();
if (m_spInjectedPrefixes.find(pNetwork) == m_spInjectedPrefixes.end() && pNetwork && !pNetwork->GetChanPrefixes().empty()) {
pClient->PutClient(":" + GetIRCServer(pNetwork) + " 005 " + pClient->GetNick() + " CHANTYPES=" + pNetwork->GetChanPrefixes() + CHAN_PREFIX_1 " :are supported by this server.");
}
// Make sure this user is in the default channels
for (set<CString>::iterator a = m_ssDefaultChans.begin(); a != m_ssDefaultChans.end(); ++a) {
CPartylineChannel* pChannel = GetChannel(*a);
const CString& sNick = m_pUser->GetUserName();
const CString& sNick = pUser->GetUserName();
if (pChannel->IsInChannel(sNick))
continue;
CString sHost = m_pUser->GetBindHost();
CString sHost = pUser->GetBindHost();
const set<CString>& ssNicks = pChannel->GetNicks();
if (sHost.empty()) {
sHost = "znc.in";
}
PutChan(ssNicks, ":" + NICK_PREFIX + sNick + "!" + m_pUser->GetIdent() + "@" + sHost + " JOIN " + *a, false);
PutChan(ssNicks, ":" + NICK_PREFIX + sNick + "!" + pUser->GetIdent() + "@" + sHost + " JOIN " + *a, false);
pChannel->AddNick(sNick);
}
CString sNickMask = m_pClient->GetNickMask();
CString sNickMask = pClient->GetNickMask();
for (set<CPartylineChannel*>::iterator it = m_ssChannels.begin(); it != m_ssChannels.end(); ++it) {
const set<CString>& ssNicks = (*it)->GetNicks();
if ((*it)->IsInChannel(m_pUser->GetUserName())) {
if ((*it)->IsInChannel(pUser->GetUserName())) {
m_pClient->PutClient(":" + sNickMask + " JOIN " + (*it)->GetName());
pClient->PutClient(":" + sNickMask + " JOIN " + (*it)->GetName());
if (!(*it)->GetTopic().empty()) {
m_pClient->PutClient(":" + GetIRCServer(m_pNetwork) + " 332 " + m_pClient->GetNickMask() + " " + (*it)->GetName() + " :" + (*it)->GetTopic());
pClient->PutClient(":" + GetIRCServer(pNetwork) + " 332 " + pClient->GetNickMask() + " " + (*it)->GetName() + " :" + (*it)->GetTopic());
}
SendNickList(m_pUser, m_pNetwork, ssNicks, (*it)->GetName());
PutChan(ssNicks, ":*" + GetModName() + "!znc@znc.in MODE " + (*it)->GetName() + " +" + CString(m_pUser->IsAdmin() ? "o" : "v") + " " + NICK_PREFIX + m_pUser->GetUserName(), false);
SendNickList(pUser, pNetwork, ssNicks, (*it)->GetName());
PutChan(ssNicks, ":*" + GetModName() + "!znc@znc.in MODE " + (*it)->GetName() + " +" + CString(pUser->IsAdmin() ? "o" : "v") + " " + NICK_PREFIX + pUser->GetUserName(), false);
}
}
}
virtual void OnClientDisconnect() {
if (!m_pUser->IsUserAttached() && !m_pUser->IsBeingDeleted()) {
CUser* pUser = GetUser();
if (!pUser->IsUserAttached() && !pUser->IsBeingDeleted()) {
for (set<CPartylineChannel*>::iterator it = m_ssChannels.begin(); it != m_ssChannels.end(); ++it) {
const set<CString>& ssNicks = (*it)->GetNicks();
if (ssNicks.find(m_pUser->GetUserName()) != ssNicks.end()) {
PutChan(ssNicks, ":*" + GetModName() + "!znc@znc.in MODE " + (*it)->GetName() + " -ov " + NICK_PREFIX + m_pUser->GetUserName() + " " + NICK_PREFIX + m_pUser->GetUserName(), false);
if (ssNicks.find(pUser->GetUserName()) != ssNicks.end()) {
PutChan(ssNicks, ":*" + GetModName() + "!znc@znc.in MODE " + (*it)->GetName() + " -ov " + NICK_PREFIX + pUser->GetUserName() + " " + NICK_PREFIX + pUser->GetUserName(), false);
}
}
}
@@ -274,29 +278,31 @@ public:
sTopic.TrimPrefix(":");
CUser* pUser = GetUser();
CClient* pClient = GetClient();
CPartylineChannel* pChannel = FindChannel(sChannel);
if (pChannel && pChannel->IsInChannel(m_pUser->GetUserName())) {
if (pChannel && pChannel->IsInChannel(pUser->GetUserName())) {
const set<CString>& ssNicks = pChannel->GetNicks();
if (!sTopic.empty()) {
if (m_pUser->IsAdmin()) {
PutChan(ssNicks, ":" + m_pClient->GetNickMask() + " TOPIC " + sChannel + " :" + sTopic);
if (pUser->IsAdmin()) {
PutChan(ssNicks, ":" + pClient->GetNickMask() + " TOPIC " + sChannel + " :" + sTopic);
pChannel->SetTopic(sTopic);
SaveTopic(pChannel);
} else {
m_pUser->PutUser(":irc.znc.in 482 " + m_pClient->GetNick() + " " + sChannel + " :You're not channel operator");
pUser->PutUser(":irc.znc.in 482 " + pClient->GetNick() + " " + sChannel + " :You're not channel operator");
}
} else {
sTopic = pChannel->GetTopic();
if (sTopic.empty()) {
m_pUser->PutUser(":irc.znc.in 331 " + m_pClient->GetNick() + " " + sChannel + " :No topic is set.");
pUser->PutUser(":irc.znc.in 331 " + pClient->GetNick() + " " + sChannel + " :No topic is set.");
} else {
m_pUser->PutUser(":irc.znc.in 332 " + m_pClient->GetNick() + " " + sChannel + " :" + sTopic);
pUser->PutUser(":irc.znc.in 332 " + pClient->GetNick() + " " + sChannel + " :" + sTopic);
}
}
} else {
m_pUser->PutUser(":irc.znc.in 442 " + m_pClient->GetNick() + " " + sChannel + " :You're not on that channel");
pUser->PutUser(":irc.znc.in 442 " + pClient->GetNick() + " " + sChannel + " :You're not on that channel");
}
return HALT;
}
@@ -310,13 +316,13 @@ public:
}
if (sChannel.Left(2) != CHAN_PREFIX) {
m_pClient->PutClient(":" + GetIRCServer(m_pNetwork) + " 401 " + m_pClient->GetNick() + " " + sChannel + " :No such channel");
GetClient()->PutClient(":" + GetIRCServer(GetNetwork()) + " 401 " + GetClient()->GetNick() + " " + sChannel + " :No such channel");
return HALT;
}
CPartylineChannel* pChannel = FindChannel(sChannel);
PartUser(m_pUser, pChannel);
PartUser(GetUser(), pChannel);
return HALT;
}
@@ -385,14 +391,14 @@ public:
}
if (sChannel.Left(2) != CHAN_PREFIX) {
m_pClient->PutClient(":" + GetIRCServer(m_pNetwork) + " 403 " + m_pClient->GetNick() + " " + sChannel + " :Channels look like " CHAN_PREFIX "znc");
GetClient()->PutClient(":" + GetIRCServer(GetNetwork()) + " 403 " + GetClient()->GetNick() + " " + sChannel + " :Channels look like " CHAN_PREFIX "znc");
return HALT;
}
sChannel = sChannel.Left(32);
CPartylineChannel* pChannel = GetChannel(sChannel);
JoinUser(m_pUser, pChannel);
JoinUser(GetUser(), pChannel);
return HALT;
}
@@ -448,7 +454,10 @@ public:
return CONTINUE;
}
CString sHost = m_pUser->GetBindHost();
CUser* pUser = GetUser();
CClient* pClient = GetClient();
CIRCNetwork* pNetwork = GetNetwork();
CString sHost = pUser->GetBindHost();
if (sHost.empty()) {
sHost = "znc.in";
@@ -456,30 +465,30 @@ public:
if (cPrefix == CHAN_PREFIX_1C) {
if (FindChannel(sTarget) == NULL) {
m_pClient->PutClient(":" + GetIRCServer(m_pNetwork) + " 401 " + m_pClient->GetNick() + " " + sTarget + " :No such channel");
pClient->PutClient(":" + GetIRCServer(pNetwork) + " 401 " + pClient->GetNick() + " " + sTarget + " :No such channel");
return HALT;
}
PutChan(sTarget, ":" + NICK_PREFIX + m_pUser->GetUserName() + "!" + m_pUser->GetIdent() + "@" + sHost + " " + sCmd + " " + sTarget + " :" + sMessage, true, false);
PutChan(sTarget, ":" + NICK_PREFIX + pUser->GetUserName() + "!" + pUser->GetIdent() + "@" + sHost + " " + sCmd + " " + sTarget + " :" + sMessage, true, false);
} else {
CString sNick = sTarget.LeftChomp_n(1);
CUser* pUser = CZNC::Get().FindUser(sNick);
CUser* pTargetUser = CZNC::Get().FindUser(sNick);
if (pUser) {
vector<CClient*> vClients = pUser->GetAllClients();
if (pTargetUser) {
vector<CClient*> vClients = pTargetUser->GetAllClients();
if (vClients.empty()) {
m_pClient->PutClient(":" + GetIRCServer(m_pNetwork) + " 401 " + m_pClient->GetNick() + " " + sTarget + " :User is not attached: " + sNick + "");
pClient->PutClient(":" + GetIRCServer(pNetwork) + " 401 " + pClient->GetNick() + " " + sTarget + " :User is not attached: " + sNick + "");
return HALT;
}
for (vector<CClient*>::const_iterator it = vClients.begin(); it != vClients.end(); ++it) {
CClient* pClient = *it;
CClient* pTarget = *it;
pClient->PutClient(":" + NICK_PREFIX + m_pUser->GetUserName() + "!" + m_pUser->GetIdent() + "@" + sHost + " " + sCmd + " " + pClient->GetNick() + " :" + sMessage);
pTarget->PutClient(":" + NICK_PREFIX + pUser->GetUserName() + "!" + pUser->GetIdent() + "@" + sHost + " " + sCmd + " " + pTarget->GetNick() + " :" + sMessage);
}
} else {
m_pClient->PutClient(":" + GetIRCServer(m_pNetwork) + " 401 " + m_pClient->GetNick() + " " + sTarget + " :No such znc user: " + sNick + "");
pClient->PutClient(":" + GetIRCServer(pNetwork) + " 401 " + pClient->GetNick() + " " + sTarget + " :No such znc user: " + sNick + "");
}
}
@@ -532,9 +541,9 @@ public:
const map<CString, CUser*>& msUsers = CZNC::Get().GetUserMap();
if (!pUser)
pUser = m_pUser;
pUser = GetUser();
if (!pClient)
pClient = m_pClient;
pClient = GetClient();
for (map<CString, CUser*>::const_iterator it = msUsers.begin(); it != msUsers.end(); ++it) {
if (ssNicks.find(it->first) != ssNicks.end()) {
+6 -6
View File
@@ -56,7 +56,7 @@ public:
if (IsIRCConnected()) {
// check for usermode +x if we are already connected
set<unsigned char> scUserModes = m_pNetwork->GetIRCSock()->GetUserModes();
set<unsigned char> scUserModes = GetNetwork()->GetIRCSock()->GetUserModes();
if (scUserModes.find('x') != scUserModes.end())
m_bCloaked = true;
@@ -260,7 +260,7 @@ public:
// Join channels immediately after our spoof is set.
if (m_bJoinAfterCloaked) {
m_pNetwork->JoinChans();
GetNetwork()->JoinChans();
}
}
return CONTINUE;
@@ -300,7 +300,7 @@ public:
if (!Nick.NickEquals("Q") || !Nick.GetHost().Equals("CServe.quakenet.org"))
return CONTINUE;
if (m_bJoinOnInvite)
m_pNetwork->AddChan(sChan, false);
GetNetwork()->AddChan(sChan, false);
return CONTINUE;
}
@@ -388,7 +388,7 @@ private:
return;
PutModule("Cloak: Trying to cloak your hostname, setting +x...");
PutIRC("MODE " + m_pNetwork->GetIRCSock()->GetNick() + " +x");
PutIRC("MODE " + GetNetwork()->GetIRCSock()->GetNick() + " +x");
}
void WhoAmI() {
@@ -538,12 +538,12 @@ private:
/* Utility Functions */
bool IsIRCConnected() {
CIRCSock* pIRCSock = m_pNetwork->GetIRCSock();
CIRCSock* pIRCSock = GetNetwork()->GetIRCSock();
return pIRCSock && pIRCSock->IsAuthed();
}
bool IsSelf(const CNick& Nick) {
return Nick.NickEquals(m_pNetwork->GetCurNick());
return Nick.NickEquals(GetNetwork()->GetCurNick());
}
bool PackHex(const CString& sHex, CString& sPackedHex) {
+6 -6
View File
@@ -255,7 +255,7 @@ public:
{
requestQueue::iterator it;
if (m_pClient == m_pDoing) {
if (GetClient() == m_pDoing) {
// The replies which aren't received yet will be
// broadcasted to everyone, but at least nothing breaks
RemTimer("RouteTimeout");
@@ -263,7 +263,7 @@ public:
m_pReplies = NULL;
}
it = m_vsPending.find(m_pClient);
it = m_vsPending.find(GetClient());
if (it != m_vsPending.end())
m_vsPending.erase(it);
@@ -311,7 +311,7 @@ public:
{
CString sCmd = sLine.Token(0).AsUpper();
if (!m_pNetwork->GetIRCSock())
if (!GetNetwork()->GetIRCSock())
return CONTINUE;
if (sCmd.Equals("MODE")) {
@@ -354,7 +354,7 @@ public:
struct queued_req req = {
sLine, vRouteReplies[i].vReplies
};
m_vsPending[m_pClient].push_back(req);
m_vsPending[GetClient()].push_back(req);
SendRequest();
return HALTCORE;
@@ -397,7 +397,7 @@ private:
// 353 needs special treatment due to NAMESX and UHNAMES
if (bIsRaw353)
m_pNetwork->GetIRCSock()->ForwardRaw353(sLine, m_pDoing);
GetNetwork()->GetIRCSock()->ForwardRaw353(sLine, m_pDoing);
else
m_pDoing->PutClient(sLine);
@@ -469,7 +469,7 @@ private:
void CRouteTimeout::RunJob()
{
CRouteRepliesMod *pMod = (CRouteRepliesMod *) m_pModule;
CRouteRepliesMod *pMod = (CRouteRepliesMod *) GetModule();
pMod->Timeout();
}
+6 -6
View File
@@ -26,14 +26,14 @@ public:
~CSampleJob() {
if (wasCancelled()) {
m_pModule->PutModule("Sample job cancelled");
GetModule()->PutModule("Sample job cancelled");
} else {
m_pModule->PutModule("Sample job destroyed");
GetModule()->PutModule("Sample job destroyed");
}
}
virtual void runThread() {
// Cannot safely use m_pModule in here, because this runs in its
// Cannot safely use GetModule() in here, because this runs in its
// own thread and such an access would require synchronisation
// between this thread and the main thread!
@@ -46,7 +46,7 @@ public:
}
virtual void runMain() {
m_pModule->PutModule("Sample job done");
GetModule()->PutModule("Sample job done");
}
};
@@ -59,7 +59,7 @@ public:
private:
protected:
virtual void RunJob() {
m_pModule->PutModule("TEST!!!!");
GetModule()->PutModule("TEST!!!!");
}
};
@@ -234,7 +234,7 @@ public:
}
virtual EModRet OnUserTopic(CString& sTarget, CString& sTopic) {
PutModule("* " + m_pClient->GetNick() + " changed topic on " + sTarget + " to '" + sTopic + "'");
PutModule("* " + GetClient()->GetNick() + " changed topic on " + sTarget + " to '" + sTopic + "'");
return CONTINUE;
}
+4 -4
View File
@@ -488,7 +488,7 @@ public:
return;
}
m_pNetwork->GetIRCSock()->PauseCap();
GetNetwork()->GetIRCSock()->PauseCap();
m_Mechanisms.SetIndex(0);
PutIRC("AUTHENTICATE " + m_Mechanisms.GetCurrent());
@@ -503,7 +503,7 @@ public:
Authenticate(sLine.Token(1, true));
} else if (sLine.Token(1).Equals("903")) {
/* SASL success! */
m_pNetwork->GetIRCSock()->ResumeCap();
GetNetwork()->GetIRCSock()->ResumeCap();
m_bAuthenticated = true;
DEBUG("sasl: Authenticated with mechanism [" << m_Mechanisms.GetCurrent() << "]");
} else if (sLine.Token(1).Equals("904") || sLine.Token(1).Equals("905")) {
@@ -515,7 +515,7 @@ public:
PutIRC("AUTHENTICATE " + m_Mechanisms.GetCurrent());
} else {
CheckRequireAuth();
m_pNetwork->GetIRCSock()->ResumeCap();
GetNetwork()->GetIRCSock()->ResumeCap();
}
} else if (sLine.Token(1).Equals("906")) {
/* CAP wasn't paused? */
@@ -523,7 +523,7 @@ public:
CheckRequireAuth();
} else if (sLine.Token(1).Equals("907")) {
m_bAuthenticated = true;
m_pNetwork->GetIRCSock()->ResumeCap();
GetNetwork()->GetIRCSock()->ResumeCap();
DEBUG("sasl: Received 907 -- We are already registered");
} else {
return CONTINUE;
+9 -9
View File
@@ -97,7 +97,7 @@ public:
{
m_bFirstLoad = true;
AddTimer(new CSaveBuffJob(this, 60, 0, "SaveBuff", "Saves the current buffer to disk every 1 minute"));
const vector<CChan *>& vChans = m_pNetwork->GetChans();
const vector<CChan *>& vChans = GetNetwork()->GetChans();
for (u_int a = 0; a < vChans.size(); a++)
{
if (vChans[a]->AutoClearChanBuffer())
@@ -108,7 +108,7 @@ public:
PutUser(":***!znc@znc.in PRIVMSG " + vChans[a]->GetName() + " :Failed to decrypt this channel, did you change the encryption pass?");
}
}
const vector<CQuery *>& vQueries = m_pNetwork->GetQueries();
const vector<CQuery *>& vQueries = GetNetwork()->GetQueries();
for (u_int a = 0; a < vQueries.size(); a++)
{
if (!BootStrap(vQueries[a]))
@@ -170,7 +170,7 @@ public:
{
if (!m_sPassword.empty())
{
const vector<CChan *>& vChans = m_pNetwork->GetChans();
const vector<CChan *>& vChans = GetNetwork()->GetChans();
for (u_int a = 0; a < vChans.size(); a++)
{
CString sPath = GetPath(vChans[a]->GetName());
@@ -276,7 +276,7 @@ public:
CString GetPath(const CString & sChannel)
{
CString sBuffer = m_pUser->GetUserName() + sChannel.AsLower();
CString sBuffer = GetUser()->GetUserName() + sChannel.AsLower();
CString sRet = GetSavePath();
sRet += "/" + CBlowfish::MD5(sBuffer, true);
return(sRet);
@@ -292,7 +292,7 @@ public:
void AddBuffer(CChan& chan, const CString &sLine)
{
// If they have AutoClearChanBuffer enabled, only add messages if no client is connected
if (chan.AutoClearChanBuffer() && m_pNetwork->IsUserAttached())
if (chan.AutoClearChanBuffer() && GetNetwork()->IsUserAttached())
return;
chan.AddBuffer(sLine);
}
@@ -307,7 +307,7 @@ public:
{
AddBuffer(*vChans[a], SpoofChanMsg(vChans[a]->GetName(), cNick.GetNickMask() + " QUIT " + sMessage));
}
if (cNick.NickEquals(m_pUser->GetNick()))
if (cNick.NickEquals(GetUser()->GetNick()))
SaveBufferToDisk(); // need to force a save here to see this!
}
@@ -324,7 +324,7 @@ public:
}
virtual void OnJoin(const CNick& cNick, CChan& cChannel)
{
if (cNick.NickEquals(m_pUser->GetNick()) && cChannel.GetBuffer().empty())
if (cNick.NickEquals(GetUser()->GetNick()) && cChannel.GetBuffer().empty())
{
BootStrap((CChan *)&cChannel);
if (!cChannel.GetBuffer().empty())
@@ -335,7 +335,7 @@ public:
virtual void OnPart(const CNick& cNick, CChan& cChannel)
{
AddBuffer(cChannel, SpoofChanMsg(cChannel.GetName(), cNick.GetNickMask() + " PART"));
if (cNick.NickEquals(m_pUser->GetNick()))
if (cNick.NickEquals(GetUser()->GetNick()))
SaveBufferToDisk(); // need to force a save here to see this!
}
#endif /* LEGACY_SAVEBUFF */
@@ -377,7 +377,7 @@ private:
void CSaveBuffJob::RunJob()
{
CSaveBuff *p = (CSaveBuff *)m_pModule;
CSaveBuff *p = (CSaveBuff *)GetModule();
p->SaveBufferToDisk();
}
+10 -10
View File
@@ -181,8 +181,8 @@ public:
pSock->SetCipher("HIGH");
pSock->SetPemLocation(m_sPemFile);
u_short iPort = m_pManager->ListenRand(pSock->GetSockName() + "::LISTENER",
m_pUser->GetLocalDCCIP(), true, SOMAXCONN, pSock, 60);
u_short iPort = GetManager()->ListenRand(pSock->GetSockName() + "::LISTENER",
GetUser()->GetLocalDCCIP(), true, SOMAXCONN, pSock, 60);
if (iPort == 0) {
PutModule("Failed to start chat!");
@@ -192,7 +192,7 @@ public:
stringstream s;
s << "PRIVMSG " << sArgs << " :\001";
s << "DCC SCHAT chat ";
s << CUtils::GetLongIP(m_pUser->GetLocalDCCIP());
s << CUtils::GetLongIP(GetUser()->GetLocalDCCIP());
s << " " << iPort << "\001";
PutIRC(s.str());
@@ -253,7 +253,7 @@ public:
}
}
PutModule("No Such Chat [" + sArgs + "]");
} else if (sCom.Equals("showsocks") && m_pUser->IsAdmin()) {
} else if (sCom.Equals("showsocks") && GetUser()->IsAdmin()) {
CTable Table;
Table.AddColumn("SockName");
Table.AddColumn("Created");
@@ -310,7 +310,7 @@ public:
PutModule(" list - List current chats.");
PutModule(" close <nick> - Close a chat to a nick.");
PutModule(" timers - Shows related timers.");
if (m_pUser->IsAdmin()) {
if (GetUser()->IsAdmin()) {
PutModule(" showsocks - Shows all socket connections.");
}
} else if (sCom.Equals("timers"))
@@ -352,8 +352,8 @@ public:
void AcceptSDCC(const CString & sNick, u_long iIP, u_short iPort)
{
CSChatSock *p = new CSChatSock(this, sNick, CUtils::GetIP(iIP), iPort, 60);
m_pManager->Connect(CUtils::GetIP(iIP), iPort, p->GetSockName(), 60,
true, m_pUser->GetLocalDCCIP(), p);
GetManager()->Connect(CUtils::GetIP(iIP), iPort, p->GetSockName(), 60,
true, GetUser()->GetLocalDCCIP(), p);
RemTimer("Remove " + sNick); // delete any associated timer to this nick
}
@@ -396,13 +396,13 @@ public:
void SendToUser(const CString & sFrom, const CString & sText)
{
//:*schat!znc@znc.in PRIVMSG Jim :
CString sSend = ":" + sFrom + " PRIVMSG " + m_pNetwork->GetCurNick() + " :" + sText;
CString sSend = ":" + sFrom + " PRIVMSG " + GetNetwork()->GetCurNick() + " :" + sText;
PutUser(sSend);
}
bool IsAttached()
{
return(m_pNetwork->IsUserAttached());
return(GetNetwork()->IsUserAttached());
}
private:
@@ -470,7 +470,7 @@ void CSChatSock::Timeout()
void CRemMarkerJob::RunJob()
{
CSChat *p = (CSChat *)m_pModule;
CSChat *p = (CSChat *)GetModule();
p->RemoveMarker(m_sNick);
// store buffer
+2 -2
View File
@@ -57,14 +57,14 @@ class CSendRaw_Mod: public CModule {
void CurrentClient(const CString& sLine) {
CString sData = sLine.Token(1, true);
m_pClient->PutClient(sData);
GetClient()->PutClient(sData);
}
public:
virtual ~CSendRaw_Mod() {}
virtual bool OnLoad(const CString& sArgs, CString& sErrorMsg) {
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
sErrorMsg = "You must have admin privileges to load this module";
return false;
}
+6 -6
View File
@@ -60,17 +60,17 @@ public:
}
virtual ~CShellMod() {
vector<Csock*> vSocks = m_pManager->FindSocksByName("SHELL");
vector<Csock*> vSocks = GetManager()->FindSocksByName("SHELL");
for (unsigned int a = 0; a < vSocks.size(); a++) {
m_pManager->DelSockByAddr(vSocks[a]);
GetManager()->DelSockByAddr(vSocks[a]);
}
}
virtual bool OnLoad(const CString& sArgs, CString& sMessage)
{
#ifndef MOD_SHELL_ALLOW_EVERYONE
if (!m_pUser->IsAdmin()) {
if (!GetUser()->IsAdmin()) {
sMessage = "You must be admin to use the shell module";
return false;
}
@@ -103,12 +103,12 @@ public:
void PutShell(const CString& sMsg) {
CString sPath = m_sPath.Replace_n(" ", "_");
CString sSource = ":" + GetModNick() + "!shell@" + sPath;
CString sLine = sSource + " PRIVMSG " + m_pClient->GetNick() + " :" + sMsg;
m_pClient->PutClient(sLine);
CString sLine = sSource + " PRIVMSG " + GetClient()->GetNick() + " :" + sMsg;
GetClient()->PutClient(sLine);
}
void RunCommand(const CString& sCommand) {
m_pManager->AddSock(new CShellSock(this, m_pClient, "cd " + m_sPath + " && " + sCommand), "SHELL");
GetManager()->AddSock(new CShellSock(this, GetClient(), "cd " + m_sPath + " && " + sCommand), "SHELL");
}
private:
CString m_sPath;
+4 -4
View File
@@ -82,7 +82,7 @@ public:
}
virtual void OnIRCConnected() {
if (m_pNetwork->IsUserAttached())
if (GetNetwork()->IsUserAttached())
SetBack();
else
SetAway(false);
@@ -94,7 +94,7 @@ public:
virtual void OnClientDisconnect() {
/* There might still be other clients */
if (!m_pNetwork->IsUserAttached())
if (!GetNetwork()->IsUserAttached())
SetAway();
}
@@ -198,7 +198,7 @@ private:
sReason = SIMPLE_AWAY_DEFAULT_REASON;
time_t iTime = time(NULL);
CString sTime = CUtils::CTime(iTime, m_pUser->GetTimezone());
CString sTime = CUtils::CTime(iTime, GetUser()->GetTimezone());
sReason.Replace("%s", sTime);
return sReason;
@@ -220,7 +220,7 @@ private:
};
void CSimpleAwayJob::RunJob() {
((CSimpleAway*)m_pModule)->SetAway(false);
((CSimpleAway*)GetModule())->SetAway(false);
}
template<> void TModInfo<CSimpleAway>(CModInfo& Info) {
+9 -8
View File
@@ -35,11 +35,11 @@ public:
{
if (sChannel.Equals(it->first))
{
CChan* pChan = m_pNetwork->FindChan(sChannel);
CChan* pChan = GetNetwork()->FindChan(sChannel);
if (pChan)
{
pChan->JoinUser(true, "", m_pClient);
pChan->JoinUser(true, "", GetClient());
return HALT;
}
}
@@ -86,24 +86,25 @@ public:
virtual void RunJob()
{
if (!m_pNetwork->GetIRCSock())
CIRCNetwork* pNetwork = GetNetwork();
if (!pNetwork->GetIRCSock())
return;
for (MCString::iterator it = BeginNV(); it != EndNV(); ++it)
{
CChan *pChan = m_pNetwork->FindChan(it->first);
CChan *pChan = pNetwork->FindChan(it->first);
if (!pChan) {
pChan = new CChan(it->first, m_pNetwork, true);
pChan = new CChan(it->first, pNetwork, true);
if (!it->second.empty())
pChan->SetKey(it->second);
if (!m_pNetwork->AddChan(pChan)) {
if (!pNetwork->AddChan(pChan)) {
/* AddChan() deleted that channel */
PutModule("Could not join [" + it->first
+ "] (# prefix missing?)");
continue;
}
}
if (!pChan->IsOn() && m_pNetwork->IsIRCConnected()) {
if (!pChan->IsOn() && pNetwork->IsIRCConnected()) {
PutModule("Joining [" + pChan->GetName() + "]");
PutIRC("JOIN " + pChan->GetName() + (pChan->GetKey().empty()
? "" : " " + pChan->GetKey()));
@@ -117,7 +118,7 @@ public:
if (sPageName == "index") {
bool bSubmitted = (WebSock.GetParam("submitted").ToInt() != 0);
const vector<CChan*>& Channels = m_pNetwork->GetChans();
const vector<CChan*>& Channels = GetNetwork()->GetChans();
for (unsigned int c = 0; c < Channels.size(); c++) {
const CString sChan = Channels[c]->GetName();
bool bStick = FindNV(sChan) != EndNV();
+7 -6
View File
@@ -184,7 +184,7 @@ public:
virtual void OnClientLogin() {
MCString msParams;
msParams["target"] = m_pNetwork->GetCurNick();
msParams["target"] = GetNetwork()->GetCurNick();
size_t uSize = m_Buffer.Size();
for (unsigned int uIdx = 0; uIdx < uSize; uIdx++) {
@@ -321,12 +321,13 @@ public:
private:
void Process(const CNick& Nick, const CString& sMessage, const CString& sSource) {
set<CString> sHandledTargets;
CChan* pChannel = m_pNetwork->FindChan(sSource);
CIRCNetwork* pNetwork = GetNetwork();
CChan* pChannel = pNetwork->FindChan(sSource);
for (list<CWatchEntry>::iterator it = m_lsWatchers.begin(); it != m_lsWatchers.end(); ++it) {
CWatchEntry& WatchEntry = *it;
if (m_pNetwork->IsUserAttached() && WatchEntry.IsDetachedClientOnly()) {
if (pNetwork->IsUserAttached() && WatchEntry.IsDetachedClientOnly()) {
continue;
}
@@ -334,10 +335,10 @@ private:
continue;
}
if (WatchEntry.IsMatch(Nick, sMessage, sSource, m_pNetwork) &&
if (WatchEntry.IsMatch(Nick, sMessage, sSource, pNetwork) &&
sHandledTargets.count(WatchEntry.GetTarget()) < 1) {
if (m_pNetwork->IsUserAttached()) {
m_pNetwork->PutUser(":" + WatchEntry.GetTarget() + "!watch@znc.in PRIVMSG " + m_pNetwork->GetCurNick() + " :" + sMessage);
if (pNetwork->IsUserAttached()) {
pNetwork->PutUser(":" + WatchEntry.GetTarget() + "!watch@znc.in PRIVMSG " + pNetwork->GetCurNick() + " :" + sMessage);
} else {
m_Buffer.AddLine(":" + _NAMEDFMT(WatchEntry.GetTarget()) + "!watch@znc.in PRIVMSG {target} :{text}", sMessage);
}