mirror of
https://github.com/znc/znc.git
synced 2026-05-02 19:42:32 +02:00
Merge branch 'detached-fix'
This commit is contained in:
@@ -242,6 +242,9 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
// reply isn't forwarded.
|
||||
return;
|
||||
}
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -260,6 +263,9 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
// reply isn't forwarded.
|
||||
return;
|
||||
}
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
break;
|
||||
@@ -269,6 +275,9 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
|
||||
if (pChan) {
|
||||
pChan->SetTopic("");
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -281,6 +290,9 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
CString sTopic = sLine.Token(4, true);
|
||||
sTopic.LeftChomp();
|
||||
pChan->SetTopic(sTopic);
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -295,6 +307,10 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
|
||||
pChan->SetTopicOwner(sNick);
|
||||
pChan->SetTopicDate(ulDate);
|
||||
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
break;
|
||||
@@ -303,6 +319,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
// :irc.yourserver.com 352 yournick #chan ident theirhost.com irc.theirserver.com theirnick H :0 Real Name
|
||||
sServer = sLine.Token(0);
|
||||
sNick = sLine.Token(7);
|
||||
CString sChan = sLine.Token(3);
|
||||
CString sIdent = sLine.Token(4);
|
||||
CString sHost = sLine.Token(5);
|
||||
|
||||
@@ -342,7 +359,7 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
sNewNick = sNick[0] + sNick.substr(pos);
|
||||
}
|
||||
CString sNewLine = sServer + " 352 " + sLine.Token(2) + " " +
|
||||
sLine.Token(3) + " " + sIdent + " " + sHost + " " +
|
||||
sChan + " " + sIdent + " " + sHost + " " +
|
||||
sLine.Token(6) + " " + sNewNick + " " +
|
||||
sLine.Token(8, true);
|
||||
m_pNetwork->PutUser(sNewLine, pClient);
|
||||
@@ -352,6 +369,11 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
return;
|
||||
}
|
||||
|
||||
CChan* pChan = m_pNetwork->FindChan(sChan);
|
||||
if (pChan && pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
|
||||
break;
|
||||
}
|
||||
case 353: { // NAMES
|
||||
@@ -363,6 +385,9 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
if (pChan) {
|
||||
CString sNicks = sRest.Token(2, true).TrimPrefix_n();
|
||||
pChan->AddNicks(sNicks);
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
ForwardRaw353(sLine);
|
||||
@@ -371,8 +396,6 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
return;
|
||||
}
|
||||
case 366: { // end of names list
|
||||
m_pNetwork->PutUser(sLine); // First send them the raw
|
||||
|
||||
// :irc.server.com 366 nick #chan :End of /NAMES list.
|
||||
CChan* pChan = m_pNetwork->FindChan(sRest.Token(0));
|
||||
|
||||
@@ -391,9 +414,14 @@ void CIRCSock::ReadLine(const CString& sData) {
|
||||
}
|
||||
}
|
||||
}
|
||||
if (pChan->IsDetached()) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
return; // return so we don't send them the raw twice
|
||||
m_pNetwork->PutUser(sLine);
|
||||
|
||||
break;
|
||||
}
|
||||
case 381: // You are now an IRC Operator
|
||||
m_pNetwork->AddRawBuffer(":" + _NAMEDFMT(sServer) + " " + sCmd + " {target} " + _NAMEDFMT(sRest));
|
||||
|
||||
Reference in New Issue
Block a user