mirror of
https://github.com/znc/znc.git
synced 2026-08-09 10:23:14 +02:00
Moved CUtils::Token() into CString class
git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@244 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
@@ -4,8 +4,8 @@
|
||||
#include "Utils.h"
|
||||
|
||||
CChan::CChan(const CString& sName, CUser* pUser) {
|
||||
m_sName = CUtils::Token(sName, 0);
|
||||
m_sKey = CUtils::Token(sName, 1);
|
||||
m_sName = sName.Token(0);
|
||||
m_sKey = sName.Token(1);
|
||||
|
||||
if (CUtils::Left(m_sName, 1) != "#" && CUtils::Left(m_sName, 1) != "&") {
|
||||
m_sName = "#" + m_sName;
|
||||
@@ -161,8 +161,8 @@ void CChan::OnWho(const CString& sNick, const CString& sIdent, const CString& sH
|
||||
}
|
||||
|
||||
void CChan::ModeChange(const CString& sModes, const CString& sOpNick) {
|
||||
CString sModeArg = CUtils::Token(sModes, 0);
|
||||
CString sArgs = CUtils::Token(sModes, 1, true);
|
||||
CString sModeArg = sModes.Token(0);
|
||||
CString sArgs = sModes.Token(1, true);
|
||||
bool bAdd = true;
|
||||
|
||||
#ifdef _MODULES
|
||||
|
||||
+47
-47
@@ -60,13 +60,13 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
if (strncasecmp(sLine.c_str(), "PING ", 5) == 0) {
|
||||
PutServ("PONG " + sLine.substr(5));
|
||||
} else if (CUtils::wildcmp(":* * *", sLine.c_str())) { //"^:(\\S+) (\\d\\d\\d) (.*?) (.*)$", vCap)) {
|
||||
CString sCmd = CUtils::Token(sLine, 1);
|
||||
CString sCmd = sLine.Token(1);
|
||||
|
||||
if ((sCmd.length() == 3) && (isdigit(sCmd[0])) && (isdigit(sCmd[1])) && (isdigit(sCmd[2]))) {
|
||||
CString sServer = CUtils::Token(sLine, 0); CUtils::LeftChomp(sServer);
|
||||
CString sServer = sLine.Token(0); CUtils::LeftChomp(sServer);
|
||||
unsigned int uRaw = strtoul(sCmd.c_str(), NULL, 10);
|
||||
CString sNick = CUtils::Token(sLine, 2);
|
||||
CString sRest = CUtils::Token(sLine, 3, true);
|
||||
CString sNick = sLine.Token(2);
|
||||
CString sRest = sLine.Token(3, true);
|
||||
|
||||
switch (uRaw) {
|
||||
case 1: {// :irc.server.com 001 nick :Welcome to the Internet Relay Network nick
|
||||
@@ -137,7 +137,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
|
||||
break;
|
||||
case 433: {
|
||||
CString sBadNick = CUtils::Token(sRest, 0);
|
||||
CString sBadNick = sRest.Token(0);
|
||||
CString sConfNick = m_pUser->GetNick();
|
||||
|
||||
if (sNick == "*") {
|
||||
@@ -188,7 +188,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
case 315: {
|
||||
// :irc.server.com 315 yournick #chan :End of /WHO list.
|
||||
CChan* pChan = m_pUser->FindChan(CUtils::Token(sLine, 3));
|
||||
CChan* pChan = m_pUser->FindChan(sLine.Token(3));
|
||||
|
||||
if (pChan) {
|
||||
pChan->SetWhoDone();
|
||||
@@ -198,7 +198,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
case 331: {
|
||||
// :irc.server.com 331 yournick #chan :No topic is set.
|
||||
CChan* pChan = m_pUser->FindChan(CUtils::Token(sLine, 3));
|
||||
CChan* pChan = m_pUser->FindChan(sLine.Token(3));
|
||||
|
||||
if (pChan) {
|
||||
pChan->SetTopic("");
|
||||
@@ -208,10 +208,10 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
case 332: {
|
||||
// :irc.server.com 332 yournick #chan :This is a topic
|
||||
CChan* pChan = m_pUser->FindChan(CUtils::Token(sLine, 3));
|
||||
CChan* pChan = m_pUser->FindChan(sLine.Token(3));
|
||||
|
||||
if (pChan) {
|
||||
CString sTopic = CUtils::Token(sLine, 4, true);
|
||||
CString sTopic = sLine.Token(4, true);
|
||||
CUtils::LeftChomp(sTopic);
|
||||
pChan->SetTopic(sTopic);
|
||||
}
|
||||
@@ -220,11 +220,11 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
case 333: {
|
||||
// :irc.server.com 333 yournick #chan setternick 1112320796
|
||||
CChan* pChan = m_pUser->FindChan(CUtils::Token(sLine, 3));
|
||||
CChan* pChan = m_pUser->FindChan(sLine.Token(3));
|
||||
|
||||
if (pChan) {
|
||||
CString sNick = CUtils::Token(sLine, 4);
|
||||
unsigned long ulDate = strtoul(CUtils::Token(sLine, 5).c_str(), NULL, 10);
|
||||
CString sNick = sLine.Token(4);
|
||||
unsigned long ulDate = strtoul(sLine.Token(5).c_str(), NULL, 10);
|
||||
|
||||
pChan->SetTopicOwner(sNick);
|
||||
pChan->SetTopicDate(ulDate);
|
||||
@@ -234,10 +234,10 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
case 352: {
|
||||
// :irc.yourserver.com 352 yournick #chan ident theirhost.com irc.theirserver.com theirnick H :0 Real Name
|
||||
CString sServer = CUtils::Token(sLine, 0);
|
||||
CString sNick = CUtils::Token(sLine, 7);
|
||||
CString sIdent = CUtils::Token(sLine, 4);
|
||||
CString sHost = CUtils::Token(sLine, 5);
|
||||
CString sServer = sLine.Token(0);
|
||||
CString sNick = sLine.Token(7);
|
||||
CString sIdent = sLine.Token(4);
|
||||
CString sHost = sLine.Token(5);
|
||||
|
||||
CUtils::LeftChomp(sServer);
|
||||
|
||||
@@ -259,19 +259,19 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
case 324: { // MODE
|
||||
CUtils::Trim(sRest);
|
||||
CChan* pChan = m_pUser->FindChan(CUtils::Token(sRest, 0));
|
||||
CChan* pChan = m_pUser->FindChan(sRest.Token(0));
|
||||
|
||||
if (pChan) {
|
||||
pChan->SetModes(CUtils::Token(sRest, 1, true));
|
||||
pChan->SetModes(sRest.Token(1, true));
|
||||
}
|
||||
}
|
||||
break;
|
||||
case 353: { // NAMES
|
||||
CUtils::Trim(sRest);
|
||||
// Todo: allow for non @+= server msgs
|
||||
CChan* pChan = m_pUser->FindChan(CUtils::Token(sRest, 1));
|
||||
CChan* pChan = m_pUser->FindChan(sRest.Token(1));
|
||||
if (pChan) {
|
||||
CString sNicks = CUtils::Token(sRest, 2, true);
|
||||
CString sNicks = sRest.Token(2, true);
|
||||
if (CUtils::Left(sNicks, 1) == ":") {
|
||||
CUtils::LeftChomp(sNicks);
|
||||
}
|
||||
@@ -284,7 +284,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
PutUser(sLine); // First send them the raw
|
||||
|
||||
// :irc.server.com 366 nick #chan :End of /NAMES list.
|
||||
CChan* pChan = m_pUser->FindChan(CUtils::Token(sRest, 0));
|
||||
CChan* pChan = m_pUser->FindChan(sRest.Token(0));
|
||||
|
||||
if (pChan) {
|
||||
if (IsUserAttached()) {
|
||||
@@ -328,12 +328,12 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
}
|
||||
} else { //if (CUtils::wildcmp(":*!*@* * *", sLine.c_str())) {
|
||||
CString sNickMask = CUtils::Token(sLine, 0);
|
||||
CString sNickMask = sLine.Token(0);
|
||||
CUtils::LeftChomp(sNickMask);
|
||||
|
||||
CString sNick = CUtils::Token(sNickMask, 0, false, '!');
|
||||
CString sCmd = CUtils::Token(sLine, 1);
|
||||
CString sRest = CUtils::Token(sLine, 2, true);
|
||||
CString sNick = sNickMask.Token(0, false, '!');
|
||||
CString sCmd = sLine.Token(1);
|
||||
CString sRest = sLine.Token(2, true);
|
||||
|
||||
if (strcasecmp(sCmd.c_str(), "NICK") == 0) {
|
||||
CString sNewNick = sRest;
|
||||
@@ -412,7 +412,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
return;
|
||||
}
|
||||
} else if (strcasecmp(sCmd.c_str(), "JOIN") == 0) {
|
||||
CString sChan = CUtils::Token(sRest, 0);
|
||||
CString sChan = sRest.Token(0);
|
||||
if (CUtils::Left(sChan, 1) == ":") {
|
||||
CUtils::LeftChomp(sChan);
|
||||
}
|
||||
@@ -432,7 +432,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
}
|
||||
} else if (strcasecmp(sCmd.c_str(), "PART") == 0) {
|
||||
CString sChan = CUtils::Token(sRest, 0);
|
||||
CString sChan = sRest.Token(0);
|
||||
if (CUtils::Left(sChan, 1) == ":") {
|
||||
CUtils::LeftChomp(sChan);
|
||||
}
|
||||
@@ -453,8 +453,8 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
return;
|
||||
}
|
||||
} else if (strcasecmp(sCmd.c_str(), "MODE") == 0) {
|
||||
CString sChan = CUtils::Token(sRest, 0);
|
||||
CString sModes = CUtils::Token(sRest, 1, true);
|
||||
CString sChan = sRest.Token(0);
|
||||
CString sModes = sRest.Token(1, true);
|
||||
|
||||
CChan* pChan = m_pUser->FindChan(sChan);
|
||||
if (pChan) {
|
||||
@@ -466,9 +466,9 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
} else if (strcasecmp(sCmd.c_str(), "KICK") == 0) {
|
||||
// :opnick!ident@host.com KICK #chan nick :msg
|
||||
CString sChan = CUtils::Token(sRest, 0);
|
||||
CString sKickedNick = CUtils::Token(sRest, 1);
|
||||
CString sMsg = CUtils::Token(sRest, 2, true);
|
||||
CString sChan = sRest.Token(0);
|
||||
CString sKickedNick = sRest.Token(1);
|
||||
CString sMsg = sRest.Token(2, true);
|
||||
CUtils::LeftChomp(sMsg);
|
||||
|
||||
CChan* pChan = m_pUser->FindChan(sChan);
|
||||
@@ -499,8 +499,8 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
|
||||
CNick Nick(sNickMask);
|
||||
|
||||
CString sTarget = CUtils::Token(sRest, 0);
|
||||
CString sMsg = CUtils::Token(sRest, 1, true);
|
||||
CString sTarget = sRest.Token(0);
|
||||
CString sMsg = sRest.Token(1, true);
|
||||
CUtils::LeftChomp(sMsg);
|
||||
|
||||
if (CUtils::wildcmp("\001*\001", sMsg.c_str())) {
|
||||
@@ -531,11 +531,11 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
return;
|
||||
} else if (strcasecmp(sCmd.c_str(), "TOPIC") == 0) {
|
||||
// :nick!ident@host.com TOPIC #chan :This is a topic
|
||||
CChan* pChan = m_pUser->FindChan(CUtils::Token(sLine, 2));
|
||||
CChan* pChan = m_pUser->FindChan(sLine.Token(2));
|
||||
|
||||
if (pChan) {
|
||||
CNick Nick(sNickMask);
|
||||
CString sTopic = CUtils::Token(sLine, 3, true);
|
||||
CString sTopic = sLine.Token(3, true);
|
||||
CUtils::LeftChomp(sTopic);
|
||||
pChan->SetTopicOwner(Nick.GetNick());
|
||||
pChan->SetTopicDate((unsigned long) time(NULL)); // @todo use local time
|
||||
@@ -545,8 +545,8 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
// :nick!ident@host.com PRIVMSG #chan :Message
|
||||
|
||||
CNick Nick(sNickMask);
|
||||
CString sTarget = CUtils::Token(sRest, 0);
|
||||
CString sMsg = CUtils::Token(sRest, 1, true);
|
||||
CString sTarget = sRest.Token(0);
|
||||
CString sMsg = sRest.Token(1, true);
|
||||
|
||||
if (CUtils::Left(sMsg, 1) == ":") {
|
||||
CUtils::LeftChomp(sMsg);
|
||||
@@ -621,11 +621,11 @@ bool CIRCSock::OnPrivCTCP(const CString& sNickMask, CString& sMessage) {
|
||||
}
|
||||
} else if (strncasecmp(sMessage.c_str(), "DCC ", 4) == 0) {
|
||||
// DCC CHAT chat 2453612361 44592
|
||||
CString sType = CUtils::Token(sMessage, 1);
|
||||
CString sFile = CUtils::Token(sMessage, 2);
|
||||
unsigned long uLongIP = strtoul(CUtils::Token(sMessage, 3).c_str(), NULL, 10);
|
||||
unsigned short uPort = strtoul(CUtils::Token(sMessage, 4).c_str(), NULL, 10);
|
||||
unsigned long uFileSize = strtoul(CUtils::Token(sMessage, 5).c_str(), NULL, 10);
|
||||
CString sType = sMessage.Token(1);
|
||||
CString sFile = sMessage.Token(2);
|
||||
unsigned long uLongIP = strtoul(sMessage.Token(3).c_str(), NULL, 10);
|
||||
unsigned short uPort = strtoul(sMessage.Token(4).c_str(), NULL, 10);
|
||||
unsigned long uFileSize = strtoul(sMessage.Token(5).c_str(), NULL, 10);
|
||||
|
||||
if (strcasecmp(sType.c_str(), "CHAT") == 0) {
|
||||
if (m_pUserSock) {
|
||||
@@ -646,10 +646,10 @@ bool CIRCSock::OnPrivCTCP(const CString& sNickMask, CString& sMessage) {
|
||||
}
|
||||
} else if (strcasecmp(sType.c_str(), "RESUME") == 0) {
|
||||
// Need to lookup the connection by port, filter the port, and forward to the user
|
||||
CDCCBounce* pSock = (CDCCBounce*) m_pZNC->GetManager().FindSockByLocalPort(atoi(CUtils::Token(sMessage, 3).c_str()));
|
||||
CDCCBounce* pSock = (CDCCBounce*) m_pZNC->GetManager().FindSockByLocalPort(atoi(sMessage.Token(3).c_str()));
|
||||
|
||||
if ((pSock) && (strncasecmp(pSock->GetSockName().c_str(), "DCC::", 5) == 0)) {
|
||||
PutUser(":" + sNickMask + " PRIVMSG " + GetNick() + " :\001DCC " + sType + " " + sFile + " " + CUtils::ToString(pSock->GetUserPort()) + " " + CUtils::Token(sMessage, 4) + "\001");
|
||||
PutUser(":" + sNickMask + " PRIVMSG " + GetNick() + " :\001DCC " + sType + " " + sFile + " " + CUtils::ToString(pSock->GetUserPort()) + " " + sMessage.Token(4) + "\001");
|
||||
}
|
||||
} else if (strcasecmp(sType.c_str(), "ACCEPT") == 0) {
|
||||
// Need to lookup the connection by port, filter the port, and forward to the user
|
||||
@@ -659,8 +659,8 @@ bool CIRCSock::OnPrivCTCP(const CString& sNickMask, CString& sMessage) {
|
||||
CDCCBounce* pSock = (CDCCBounce*) Manager[a];
|
||||
|
||||
if ((pSock) && (strncasecmp(pSock->GetSockName().c_str(), "DCC::", 5) == 0)) {
|
||||
if (pSock->GetUserPort() == atoi(CUtils::Token(sMessage, 3).c_str())) {
|
||||
PutUser(":" + sNickMask + " PRIVMSG " + GetNick() + " :\001DCC " + sType + " " + sFile + " " + CUtils::ToString(pSock->GetLocalPort()) + " " + CUtils::Token(sMessage, 4) + "\001");
|
||||
if (pSock->GetUserPort() == atoi(sMessage.Token(3).c_str())) {
|
||||
PutUser(":" + sNickMask + " PRIVMSG " + GetNick() + " :\001DCC " + sType + " " + sFile + " " + CUtils::ToString(pSock->GetLocalPort()) + " " + sMessage.Token(4) + "\001");
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,8 +196,8 @@ bool CUser::AddServer(const CString& sName) {
|
||||
CString sLine = sName;
|
||||
CUtils::Trim(sLine);
|
||||
|
||||
CString sHost = CUtils::Token(sLine, 0);
|
||||
CString sPort = CUtils::Token(sLine, 1);
|
||||
CString sHost = sLine.Token(0);
|
||||
CString sPort = sLine.Token(1);
|
||||
|
||||
if (CUtils::Left(sPort, 1) == "+") {
|
||||
bSSL = true;
|
||||
@@ -205,7 +205,7 @@ bool CUser::AddServer(const CString& sName) {
|
||||
}
|
||||
|
||||
unsigned short uPort = strtoul(sPort.c_str(), NULL, 10);
|
||||
CString sPass = CUtils::Token(sLine, 2, true);
|
||||
CString sPass = sLine.Token(2, true);
|
||||
|
||||
return AddServer(sHost, uPort, sPass, bSSL);
|
||||
}
|
||||
|
||||
+41
-41
@@ -24,14 +24,14 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
#endif
|
||||
|
||||
CString sCommand = CUtils::Token(sLine, 0);
|
||||
CString sCommand = sLine.Token(0);
|
||||
|
||||
if (strcasecmp(sCommand.c_str(), "ZNC") == 0) {
|
||||
PutStatus("Hello. How may I help you?");
|
||||
return;
|
||||
} else if (strcasecmp(sCommand.c_str(), "DETACH") == 0) {
|
||||
if (m_pUser) {
|
||||
CString sChan = CUtils::Token(sLine, 1);
|
||||
CString sChan = sLine.Token(1);
|
||||
|
||||
if (sChan.empty()) {
|
||||
PutStatusNotice("Usage: /detach <#chan>");
|
||||
@@ -53,11 +53,11 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
} else if (strcasecmp(sCommand.c_str(), "PASS") == 0) {
|
||||
if (!m_bAuthed) {
|
||||
m_bGotPass = true;
|
||||
m_sPass = CUtils::Token(sLine, 1);
|
||||
m_sPass = sLine.Token(1);
|
||||
|
||||
if (m_sPass.find(":") != CString::npos) {
|
||||
m_sUser = CUtils::Token(m_sPass, 0, false, ':');
|
||||
m_sPass = CUtils::Token(m_sPass, 1, true, ':');
|
||||
m_sUser = m_sPass.Token(0, false, ':');
|
||||
m_sPass = m_sPass.Token(1, true, ':');
|
||||
}
|
||||
|
||||
if ((m_bGotNick) && (m_bGotUser)) {
|
||||
@@ -67,7 +67,7 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
|
||||
return; // Don't forward this msg. ZNC has already registered us.
|
||||
} else if (strcasecmp(sCommand.c_str(), "NICK") == 0) {
|
||||
CString sNick = CUtils::Token(sLine, 1);
|
||||
CString sNick = sLine.Token(1);
|
||||
if (CUtils::Left(sNick, 1) == ":") {
|
||||
CUtils::LeftChomp(sNick);
|
||||
}
|
||||
@@ -87,7 +87,7 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
} else if (strcasecmp(sCommand.c_str(), "USER") == 0) {
|
||||
if ((!m_bAuthed) && (m_sUser.empty())) {
|
||||
m_sUser = CUtils::Token(sLine, 1);
|
||||
m_sUser = sLine.Token(1);
|
||||
}
|
||||
|
||||
m_bGotUser = true;
|
||||
@@ -98,7 +98,7 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
|
||||
return; // Don't forward this msg. ZNC has already registered us.
|
||||
} else if (strcasecmp(sCommand.c_str(), "JOIN") == 0) {
|
||||
CString sChan = CUtils::Token(sLine, 1);
|
||||
CString sChan = sLine.Token(1);
|
||||
if (CUtils::Left(sChan, 1) == ":") {
|
||||
CUtils::LeftChomp(sChan);
|
||||
}
|
||||
@@ -119,8 +119,8 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
Close(); // Treat a client quit as a detach
|
||||
return; // Don't forward this msg. We don't want the client getting us disconnected.
|
||||
} else if (strcasecmp(sCommand.c_str(), "NOTICE") == 0) {
|
||||
CString sTarget = CUtils::Token(sLine, 1);
|
||||
CString sMsg = CUtils::Token(sLine, 2, true);
|
||||
CString sTarget = sLine.Token(1);
|
||||
CString sMsg = sLine.Token(2, true);
|
||||
|
||||
if (CUtils::Left(sMsg, 1) == ":") {
|
||||
CUtils::LeftChomp(sMsg);
|
||||
@@ -148,7 +148,7 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
|
||||
if (CUtils::wildcmp("DCC * (*)", sMsg.c_str())) {
|
||||
sMsg = "DCC " + CUtils::Token(sLine, 3) + " (" + ((m_pIRCSock) ? m_pIRCSock->GetLocalIP() : GetLocalIP()) + ")";
|
||||
sMsg = "DCC " + sLine.Token(3) + " (" + ((m_pIRCSock) ? m_pIRCSock->GetLocalIP() : GetLocalIP()) + ")";
|
||||
}
|
||||
|
||||
CChan* pChan = m_pUser->FindChan(sTarget);
|
||||
@@ -178,8 +178,8 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
PutIRC("NOTICE " + sTarget + " :" + sMsg);
|
||||
return;
|
||||
} else if (strcasecmp(sCommand.c_str(), "PRIVMSG") == 0) {
|
||||
CString sTarget = CUtils::Token(sLine, 1);
|
||||
CString sMsg = CUtils::Token(sLine, 2, true);
|
||||
CString sTarget = sLine.Token(1);
|
||||
CString sMsg = sLine.Token(2, true);
|
||||
|
||||
if (CUtils::Left(sMsg, 1) == ":") {
|
||||
CUtils::LeftChomp(sMsg);
|
||||
@@ -191,11 +191,11 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
CUtils::RightChomp(sCTCP);
|
||||
|
||||
if (strncasecmp(sCTCP.c_str(), "DCC ", 4) == 0) {
|
||||
CString sType = CUtils::Token(sCTCP, 1);
|
||||
CString sFile = CUtils::Token(sCTCP, 2);
|
||||
unsigned long uLongIP = strtoul(CUtils::Token(sCTCP, 3).c_str(), NULL, 10);
|
||||
unsigned short uPort = strtoul(CUtils::Token(sCTCP, 4).c_str(), NULL, 10);
|
||||
unsigned long uFileSize = strtoul(CUtils::Token(sCTCP, 5).c_str(), NULL, 10);
|
||||
CString sType = sCTCP.Token(1);
|
||||
CString sFile = sCTCP.Token(2);
|
||||
unsigned long uLongIP = strtoul(sCTCP.Token(3).c_str(), NULL, 10);
|
||||
unsigned short uPort = strtoul(sCTCP.Token(4).c_str(), NULL, 10);
|
||||
unsigned long uFileSize = strtoul(sCTCP.Token(5).c_str(), NULL, 10);
|
||||
CString sIP = (m_pIRCSock) ? m_pIRCSock->GetLocalIP() : GetLocalIP();
|
||||
|
||||
if (!m_pUser->UseClientIP()) {
|
||||
@@ -248,8 +248,8 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
} else if (strcasecmp(sType.c_str(), "RESUME") == 0) {
|
||||
// PRIVMSG user :DCC RESUME "znc.o" 58810 151552
|
||||
unsigned short uResumePort = atoi(CUtils::Token(sCTCP, 3).c_str());
|
||||
unsigned long uResumeSize = strtoul(CUtils::Token(sCTCP, 4).c_str(), NULL, 10);
|
||||
unsigned short uResumePort = atoi(sCTCP.Token(3).c_str());
|
||||
unsigned long uResumeSize = strtoul(sCTCP.Token(4).c_str(), NULL, 10);
|
||||
|
||||
// Need to lookup the connection by port, filter the port, and forward to the user
|
||||
if (strncasecmp(sTarget.c_str(), m_pUser->GetStatusPrefix().c_str(), m_pUser->GetStatusPrefix().length()) == 0) {
|
||||
@@ -261,7 +261,7 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
} else {
|
||||
CDCCBounce* pSock = (CDCCBounce*) m_pZNC->GetManager().FindSockByLocalPort(uResumePort);
|
||||
if ((pSock) && (strncasecmp(pSock->GetSockName().c_str(), "DCC::", 5) == 0)) {
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC " + sType + " " + sFile + " " + CUtils::ToString(pSock->GetUserPort()) + " " + CUtils::Token(sCTCP, 4) + "\001");
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC " + sType + " " + sFile + " " + CUtils::ToString(pSock->GetUserPort()) + " " + sCTCP.Token(4) + "\001");
|
||||
}
|
||||
}
|
||||
} else if (strcasecmp(sType.c_str(), "ACCEPT") == 0) {
|
||||
@@ -274,8 +274,8 @@ void CUserSock::ReadLine(const CString& sData) {
|
||||
CDCCBounce* pSock = (CDCCBounce*) Manager[a];
|
||||
|
||||
if ((pSock) && (strncasecmp(pSock->GetSockName().c_str(), "DCC::", 5) == 0)) {
|
||||
if (pSock->GetUserPort() == atoi(CUtils::Token(sCTCP, 3).c_str())) {
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC " + sType + " " + sFile + " " + CUtils::ToString(pSock->GetLocalPort()) + " " + CUtils::Token(sCTCP, 4) + "\001");
|
||||
if (pSock->GetUserPort() == atoi(sCTCP.Token(3).c_str())) {
|
||||
PutIRC("PRIVMSG " + sTarget + " :\001DCC " + sType + " " + sFile + " " + CUtils::ToString(pSock->GetLocalPort()) + " " + sCTCP.Token(4) + "\001");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -383,12 +383,12 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
return;
|
||||
}
|
||||
|
||||
CString sCommand = CUtils::Token(sLine, 0);
|
||||
CString sCommand = sLine.Token(0);
|
||||
|
||||
if (strcasecmp(sCommand.c_str(), "HELP") == 0) {
|
||||
HelpUser();
|
||||
} else if (strcasecmp(sCommand.c_str(), "LISTNICKS") == 0) {
|
||||
CString sChan = CUtils::Token(sLine, 1);
|
||||
CString sChan = sLine.Token(1);
|
||||
|
||||
if (sChan.empty()) {
|
||||
PutStatus("Usage: ListNicks <#chan>");
|
||||
@@ -438,7 +438,7 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
}
|
||||
} else if (strcasecmp(sCommand.c_str(), "DETACH") == 0) {
|
||||
if (m_pUser) {
|
||||
CString sChan = CUtils::Token(sLine, 1);
|
||||
CString sChan = sLine.Token(1);
|
||||
|
||||
if (sChan.empty()) {
|
||||
PutStatus("Usage: Detach <#chan>");
|
||||
@@ -457,7 +457,7 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
} else if (strcasecmp(sCommand.c_str(), "VERSION") == 0) {
|
||||
PutStatus(CZNC::GetTag());
|
||||
} else if (strcasecmp(sCommand.c_str(), "SHUTDOWN") == 0) {
|
||||
CString sQuitMsg = CUtils::Token(sLine, 1, true);
|
||||
CString sQuitMsg = sLine.Token(1, true);
|
||||
|
||||
if (!sQuitMsg.empty()) {
|
||||
m_pUser->SetQuitMsg(sQuitMsg);
|
||||
@@ -515,25 +515,25 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
}
|
||||
}
|
||||
} else if (strcasecmp(sCommand.c_str(), "ADDSERVER") == 0) {
|
||||
CString sServer = CUtils::Token(sLine, 1);
|
||||
CString sServer = sLine.Token(1);
|
||||
|
||||
if (sServer.empty()) {
|
||||
PutStatus("Usage: AddServer <host> [[+]port] [pass]");
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_pUser->FindServer(CUtils::Token(sLine, 1))) {
|
||||
if (m_pUser->FindServer(sLine.Token(1))) {
|
||||
PutStatus("That server already exists");
|
||||
return;
|
||||
}
|
||||
|
||||
if (m_pUser && m_pUser->AddServer(CUtils::Token(sLine, 1, true))) {
|
||||
if (m_pUser && m_pUser->AddServer(sLine.Token(1, true))) {
|
||||
PutStatus("Server added");
|
||||
} else {
|
||||
PutStatus("Unable to add that server");
|
||||
}
|
||||
} else if (strcasecmp(sCommand.c_str(), "REMSERVER") == 0 || strcasecmp(sCommand.c_str(), "DELSERVER") == 0) {
|
||||
CString sServer = CUtils::Token(sLine, 1);
|
||||
CString sServer = sLine.Token(1);
|
||||
|
||||
if (sServer.empty()) {
|
||||
PutStatus("Usage: RemServer <host>");
|
||||
@@ -605,8 +605,8 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
}
|
||||
}
|
||||
} else if (strcasecmp(sCommand.c_str(), "SEND") == 0) {
|
||||
CString sToNick = CUtils::Token(sLine, 1);
|
||||
CString sFile = CUtils::Token(sLine, 2);
|
||||
CString sToNick = sLine.Token(1);
|
||||
CString sFile = sLine.Token(2);
|
||||
|
||||
if ((sToNick.empty()) || (sFile.empty())) {
|
||||
PutStatus("Usage: Send <nick> <file>");
|
||||
@@ -617,7 +617,7 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
m_pUser->SendFile(sToNick, sFile);
|
||||
}
|
||||
} else if (strcasecmp(sCommand.c_str(), "GET") == 0) {
|
||||
CString sFile = CUtils::Token(sLine, 1);
|
||||
CString sFile = sLine.Token(1);
|
||||
|
||||
if (sFile.empty()) {
|
||||
PutStatus("Usage: Get <file>");
|
||||
@@ -756,8 +756,8 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
#endif
|
||||
return;
|
||||
} else if ((strcasecmp(sCommand.c_str(), "LOADMOD") == 0) || (strcasecmp(sCommand.c_str(), "LOADMODULE") == 0)) {
|
||||
CString sMod = CUtils::Token(sLine, 1);
|
||||
CString sArgs = CUtils::Token(sLine, 2, true);
|
||||
CString sMod = sLine.Token(1);
|
||||
CString sArgs = sLine.Token(2, true);
|
||||
|
||||
if (m_pUser->DenyLoadMod()) {
|
||||
PutStatus("Unable to load [" + sMod + "] Access Denied.");
|
||||
@@ -777,7 +777,7 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
#endif
|
||||
return;
|
||||
} else if ((strcasecmp(sCommand.c_str(), "UNLOADMOD") == 0) || (strcasecmp(sCommand.c_str(), "UNLOADMODULE") == 0)) {
|
||||
CString sMod = CUtils::Token(sLine, 1);
|
||||
CString sMod = sLine.Token(1);
|
||||
|
||||
if (m_pUser->DenyLoadMod()) {
|
||||
PutStatus("Unable to unload [" + sMod + "] Access Denied.");
|
||||
@@ -797,8 +797,8 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
#endif
|
||||
return;
|
||||
} else if ((strcasecmp(sCommand.c_str(), "RELOADMOD") == 0) || (strcasecmp(sCommand.c_str(), "RELOADMODULE") == 0)) {
|
||||
CString sMod = CUtils::Token(sLine, 1);
|
||||
CString sArgs = CUtils::Token(sLine, 2, true);
|
||||
CString sMod = sLine.Token(1);
|
||||
CString sArgs = sLine.Token(2, true);
|
||||
|
||||
if (m_pUser->DenyLoadMod()) {
|
||||
PutStatus("Unable to reload [" + sMod + "] Access Denied.");
|
||||
@@ -818,7 +818,7 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
#endif
|
||||
return;
|
||||
} else if (strcasecmp(sCommand.c_str(), "SETBUFFER") == 0) {
|
||||
CString sChan = CUtils::Token(sLine, 1);
|
||||
CString sChan = sLine.Token(1);
|
||||
|
||||
if (sChan.empty()) {
|
||||
PutStatus("Usage: SetBuffer <#chan> [linecount]");
|
||||
@@ -837,7 +837,7 @@ void CUserSock::UserCommand(const CString& sLine) {
|
||||
return;
|
||||
}
|
||||
|
||||
unsigned int uLineCount = strtoul(CUtils::Token(sLine, 2).c_str(), NULL, 10);
|
||||
unsigned int uLineCount = strtoul(sLine.Token(2).c_str(), NULL, 10);
|
||||
|
||||
if (uLineCount > 500) {
|
||||
PutStatus("Max linecount is 500.");
|
||||
|
||||
@@ -430,29 +430,6 @@ string& CUtils::RightChomp(string& s, unsigned int uLen) {
|
||||
return s;
|
||||
}
|
||||
|
||||
string CUtils::Token(const string& s, unsigned int uPos, bool bRest, char cSep) {
|
||||
string sRet;
|
||||
const char* p = s.c_str();
|
||||
|
||||
while (*p) {
|
||||
if (uPos) {
|
||||
if (*p == cSep) {
|
||||
uPos--;
|
||||
}
|
||||
} else {
|
||||
if ((*p == cSep) && (!bRest)) {
|
||||
return sRet;
|
||||
}
|
||||
|
||||
sRet += *p;
|
||||
}
|
||||
|
||||
p++;
|
||||
}
|
||||
|
||||
return sRet;
|
||||
}
|
||||
|
||||
string CUtils::Ellipsize(const string& s, unsigned int uLen) {
|
||||
if (uLen >= s.size()) {
|
||||
return s;
|
||||
|
||||
@@ -61,7 +61,6 @@ public:
|
||||
static string& Trim(string& s);
|
||||
static string& LeftChomp(string& s, unsigned int uLen = 1);
|
||||
static string& RightChomp(string& s, unsigned int uLen = 1);
|
||||
static string Token(const string& s, unsigned int uPos, bool bRest = false, char cSep = ' ');
|
||||
static string Ellipsize(const string& s, unsigned int uLen);
|
||||
static bool wildcmp(const string& sWild, const string& sString);
|
||||
|
||||
|
||||
+9
-6
@@ -20,6 +20,9 @@
|
||||
*
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.10 2005/05/07 09:18:49 prozacx
|
||||
* Moved CUtils::Token() into CString class
|
||||
*
|
||||
* Revision 1.9 2005/05/05 18:11:03 prozacx
|
||||
* Changed all references to std::string over to CString
|
||||
*
|
||||
@@ -177,7 +180,7 @@ public:
|
||||
|
||||
virtual void OnModCommand( const CString& sCommand )
|
||||
{
|
||||
CString sCmdName = CUtils::Token(sCommand, 0);
|
||||
CString sCmdName = sCommand.Token(0);
|
||||
if ( sCmdName == "away" )
|
||||
{
|
||||
Away();
|
||||
@@ -196,7 +199,7 @@ public:
|
||||
}
|
||||
else if ( sCmdName == "delete" )
|
||||
{
|
||||
CString sWhich = CUtils::Token(sCommand, 1);
|
||||
CString sWhich = sCommand.Token(1);
|
||||
if ( sWhich == "all" )
|
||||
{
|
||||
PutModNotice( "Deleted " + CUtils::ToString( m_vMessages.size() ) + " Messages.", "away" );
|
||||
@@ -237,7 +240,7 @@ public:
|
||||
}
|
||||
else if ( sCmdName == "pass" )
|
||||
{
|
||||
m_sPassword = CUtils::Token( sCommand, 1 );
|
||||
m_sPassword = sCommand.Token( 1 );
|
||||
PutModNotice( "Password Updated to [" + m_sPassword + "]" );
|
||||
}
|
||||
else if ( sCmdName == "show" )
|
||||
@@ -245,9 +248,9 @@ public:
|
||||
map< CString, vector< CString> > msvOutput;
|
||||
for( u_int a = 0; a < m_vMessages.size(); a++ )
|
||||
{
|
||||
CString sTime = CUtils::Token( m_vMessages[a], 0, false, ':' );
|
||||
CString sWhom = CUtils::Token( m_vMessages[a], 1, false, ':' );
|
||||
CString sMessage = CUtils::Token( m_vMessages[a], 2, true, ':' );
|
||||
CString sTime = m_vMessages[a].Token( 0, false, ':' );
|
||||
CString sWhom = m_vMessages[a].Token( 1, false, ':' );
|
||||
CString sMessage = m_vMessages[a].Token( 2, true, ':' );
|
||||
|
||||
if ( ( sTime.empty() ) || ( sWhom.empty() ) || ( sMessage.empty() ) )
|
||||
{
|
||||
|
||||
+5
-2
@@ -16,6 +16,9 @@
|
||||
* Author: imaginos <imaginos@imaginos.net>
|
||||
*
|
||||
* $Log$
|
||||
* Revision 1.10 2005/05/07 09:18:56 prozacx
|
||||
* Moved CUtils::Token() into CString class
|
||||
*
|
||||
* Revision 1.9 2005/05/05 18:11:04 prozacx
|
||||
* Changed all references to std::string over to CString
|
||||
*
|
||||
@@ -419,8 +422,8 @@ public:
|
||||
if ( strncasecmp( sMessage.c_str(), "DCC SCHAT ", 10 ) == 0 )
|
||||
{
|
||||
// chat ip port
|
||||
unsigned long iIP = strtoul( CUtils::Token( sMessage, 3 ).c_str(), NULL, 10 );
|
||||
unsigned short iPort = strtoul( CUtils::Token( sMessage, 4 ).c_str(), NULL, 10 );
|
||||
unsigned long iIP = strtoul( sMessage.Token( 3 ).c_str(), NULL, 10 );
|
||||
unsigned short iPort = strtoul( sMessage.Token( 4 ).c_str(), NULL, 10 );
|
||||
|
||||
if ( ( iIP > 0 ) && ( iPort > 0 ) )
|
||||
{
|
||||
|
||||
+5
-5
@@ -116,9 +116,9 @@ public:
|
||||
}
|
||||
|
||||
PutShell("znc$");
|
||||
} else if (strcasecmp(CUtils::Token(sCommand, 0).c_str(), "SEND") == 0) {
|
||||
CString sToNick = CUtils::Token(sCommand, 1);
|
||||
CString sFile = CUtils::Token(sCommand, 2);
|
||||
} else if (strcasecmp(sCommand.Token(0).c_str(), "SEND") == 0) {
|
||||
CString sToNick = sCommand.Token(1);
|
||||
CString sFile = sCommand.Token(2);
|
||||
|
||||
if ((sToNick.empty()) || (sFile.empty())) {
|
||||
PutShell("usage: Send <nick> <file>");
|
||||
@@ -133,8 +133,8 @@ public:
|
||||
m_pUser->SendFile(sToNick, sFile, GetModName());
|
||||
}
|
||||
}
|
||||
} else if (strcasecmp(CUtils::Token(sCommand, 0).c_str(), "GET") == 0) {
|
||||
CString sFile = CUtils::Token(sCommand, 1);
|
||||
} else if (strcasecmp(sCommand.Token(0).c_str(), "GET") == 0) {
|
||||
CString sFile = sCommand.Token(1);
|
||||
|
||||
if (sFile.empty()) {
|
||||
PutShell("usage: Get <file>");
|
||||
|
||||
+11
-11
@@ -121,7 +121,7 @@ public:
|
||||
void SetDisabled(bool b = true) { m_bDisabled = b; }
|
||||
void SetSources(const CString& sSources) {
|
||||
unsigned int uIdx = 1;
|
||||
CString sSrc = CUtils::Token(sSources, 0);
|
||||
CString sSrc = sSources.Token(0);
|
||||
|
||||
m_vsSources.clear();
|
||||
|
||||
@@ -134,7 +134,7 @@ public:
|
||||
m_vsSources.push_back(CWatchSource(sSrc, false));
|
||||
}
|
||||
|
||||
sSrc = CUtils::Token(sSources, uIdx++);
|
||||
sSrc = sSources.Token(uIdx++);
|
||||
}
|
||||
}
|
||||
// !Setters
|
||||
@@ -179,7 +179,7 @@ public:
|
||||
|
||||
virtual bool OnUserRaw(CString& sLine) {
|
||||
if (strncasecmp(sLine.c_str(), "WATCH ", 6) == 0) {
|
||||
Watch(CUtils::Token(sLine, 1), CUtils::Token(sLine, 2), CUtils::Token(sLine, 3, true), true);
|
||||
Watch(sLine.Token(1), sLine.Token(2), sLine.Token(3, true), true);
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -242,9 +242,9 @@ public:
|
||||
}
|
||||
|
||||
virtual void OnModCommand(const CString& sCommand) {
|
||||
CString sCmdName = CUtils::Token(sCommand, 0);
|
||||
CString sCmdName = sCommand.Token(0);
|
||||
if (strcasecmp(sCmdName.c_str(), "ADD") == 0 || strcasecmp(sCmdName.c_str(), "WATCH") == 0) {
|
||||
Watch(CUtils::Token(sCommand, 1), CUtils::Token(sCommand, 2), CUtils::Token(sCommand, 3, true));
|
||||
Watch(sCommand.Token(1), sCommand.Token(2), sCommand.Token(3, true));
|
||||
} else if (strcasecmp(sCmdName.c_str(), "HELP") == 0) {
|
||||
Help();
|
||||
} else if (strcasecmp(sCmdName.c_str(), "LIST") == 0) {
|
||||
@@ -252,7 +252,7 @@ public:
|
||||
} else if (strcasecmp(sCmdName.c_str(), "DUMP") == 0) {
|
||||
Dump();
|
||||
} else if (strcasecmp(sCmdName.c_str(), "ENABLE") == 0) {
|
||||
CString sTok = CUtils::Token(sCommand, 1);
|
||||
CString sTok = sCommand.Token(1);
|
||||
|
||||
if (sTok == "*") {
|
||||
SetDisabled(~0, false);
|
||||
@@ -260,7 +260,7 @@ public:
|
||||
SetDisabled(atoi(sTok.c_str()), false);
|
||||
}
|
||||
} else if (strcasecmp(sCmdName.c_str(), "DISABLE") == 0) {
|
||||
CString sTok = CUtils::Token(sCommand, 1);
|
||||
CString sTok = sCommand.Token(1);
|
||||
|
||||
if (sTok == "*") {
|
||||
SetDisabled(~0, true);
|
||||
@@ -268,12 +268,12 @@ public:
|
||||
SetDisabled(atoi(sTok.c_str()), true);
|
||||
}
|
||||
} else if (strcasecmp(sCmdName.c_str(), "SETSOURCES") == 0) {
|
||||
SetSources(atoi(CUtils::Token(sCommand, 1).c_str()), CUtils::Token(sCommand, 2, true));
|
||||
SetSources(atoi(sCommand.Token(1).c_str()), sCommand.Token(2, true));
|
||||
} else if (strcasecmp(sCmdName.c_str(), "CLEAR") == 0) {
|
||||
m_lsWatchers.clear();
|
||||
PutModule("All entries cleared.");
|
||||
} else if (strcasecmp(sCmdName.c_str(), "BUFFER") == 0) {
|
||||
CString sCount = CUtils::Token(sCommand, 1);
|
||||
CString sCount = sCommand.Token(1);
|
||||
|
||||
if (sCount.size()) {
|
||||
m_Buffer.SetLineCount(atoi(sCount.c_str()));
|
||||
@@ -281,9 +281,9 @@ public:
|
||||
|
||||
PutModule("Buffer count is set to [" + CUtils::ToString(m_Buffer.GetLineCount()) + "]");
|
||||
} else if (strcasecmp(sCmdName.c_str(), "DEL") == 0) {
|
||||
Remove(atoi(CUtils::Token(sCommand, 1).c_str()));
|
||||
Remove(atoi(sCommand.Token(1).c_str()));
|
||||
} else {
|
||||
PutModule("Unknown command: [" + CUtils::Token(sCommand, 0) + "]");
|
||||
PutModule("Unknown command: [" + sCommand.Token(0) + "]");
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -552,8 +552,8 @@ bool CZNC::ParseConfig(const CString& sConfig) {
|
||||
}
|
||||
|
||||
// If we have a regular line, figure out where it goes
|
||||
CString sName = CUtils::Token(sLine, 0, false, '=');
|
||||
CString sValue = CUtils::Token(sLine, 1, true, '=');
|
||||
CString sName = sLine.Token(0, false, '=');
|
||||
CString sValue = sLine.Token(1, true, '=');
|
||||
CUtils::Trim(sName);
|
||||
CUtils::Trim(sValue);
|
||||
|
||||
@@ -649,11 +649,11 @@ bool CZNC::ParseConfig(const CString& sConfig) {
|
||||
pUser->AddChan(sValue);
|
||||
continue;
|
||||
} else if (strcasecmp(sName.c_str(), "LoadModule") == 0) {
|
||||
CString sModName = CUtils::Token(sValue, 0);
|
||||
CString sModName = sValue.Token(0);
|
||||
CUtils::PrintAction("Loading Module [" + sModName + "]");
|
||||
#ifdef _MODULES
|
||||
CString sModRet;
|
||||
CString sArgs = CUtils::Token(sValue, 1, true);
|
||||
CString sArgs = sValue.Token(1, true);
|
||||
|
||||
try {
|
||||
bool bModRet = pUser->GetModules().LoadModule(sModName, sArgs, pUser, sModRet);
|
||||
|
||||
Reference in New Issue
Block a user