diff --git a/IRCSock.cpp b/IRCSock.cpp index 0ce214cb..5fc59503 100644 --- a/IRCSock.cpp +++ b/IRCSock.cpp @@ -12,6 +12,7 @@ #include "User.h" #include "IRCNetwork.h" #include "znc.h" +#include "Server.h" // These are used in OnGeneralCTCP() const time_t CIRCSock::m_uCTCPFloodTime = 5; @@ -162,6 +163,16 @@ void CIRCSock::ReadLine(const CString& sData) { ParseISupport(sRest); m_pNetwork->UpdateExactRawBuffer(":" + sServer + " " + sCmd + " ", " " + sRest); break; + case 10: { // :irc.server.com 010 nick : + CString sHost = sRest.Token(0); + CString sPort = sRest.Token(1); + CString sInfo = sRest.Token(2, true).TrimPrefix_n(":"); + m_pUser->PutStatus("Server [" + m_pUser->GetCurrentServer()->GetString(false) + + "] redirects us to [" + sHost + ":" + sPort + "] with reason [" + sInfo + "]"); + m_pUser->PutStatus("Perhaps you want to add it as a new server."); + // Don't send server redirects to the client + return; + } case 2: case 3: case 4: