diff --git a/Chan.cpp b/Chan.cpp index e6fef8b0..2e8f0c85 100644 --- a/Chan.cpp +++ b/Chan.cpp @@ -401,9 +401,13 @@ bool CChan::AddNick(const CString& sNick) { } sTmp = p; - sIdent = sTmp.Token(1, true, "!").Token(0, false, "@"); - sHost = sTmp.Token(1, true, "@"); - sTmp = sTmp.Token(0, false, "!"); + + // The UHNames extension gets us nick!ident@host instead of just plain nick + sIdent = sTmp.Token(1, true, "!"); + sHost = sIdent.Token(1, true, "@"); + sIdent = sIdent.Token(0, false, "@"); + // Get the nick + sTmp = sTmp.Token(0, false, "!"); CNick* pNick = FindNick(sTmp); if (!pNick) { diff --git a/IRCSock.cpp b/IRCSock.cpp index 064c79a6..aaf0b6fd 100644 --- a/IRCSock.cpp +++ b/IRCSock.cpp @@ -79,7 +79,7 @@ void CIRCSock::ReadLine(const CString& sData) { if (sLine.Equals("PING ", false, 5)) { PutIRC("PONG " + sLine.substr(5)); - } else if (sLine.Token(1).Equals("PONG") && sLine.Token(3).Equals(":ZNC")) { + } else if (sLine.Equals("PONG ", false, 5) && sLine.Token(3).Equals(":ZNC")) { // We asked for this so don't forward the reply to clients. return; } else if (sLine.Equals("ERROR ", false, 6)) {