Make CClient::GetNickMask() always return a valid nickmask

The recent removal of CUser::m_bIRCConnected lead to a bug here which is now
fixed.
In addition to this, this function now also works properly for users without
a vhost.

Oh and in User.cpp: Make sure CUser::GetIRCServer() returns an empty string
when we are no longer connected to an IRCd.


git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1134 726aef4b-f618-498e-8847-2d620e286838
This commit is contained in:
psychon
2008-07-14 10:44:37 +00:00
parent 3e2b71263f
commit 3c1e610cf5
3 changed files with 11 additions and 2 deletions
+7 -2
View File
@@ -1979,9 +1979,14 @@ CString CClient::GetNick(bool bAllowIRCNick) const {
}
CString CClient::GetNickMask() const {
if (m_pIRCSock) {
if (m_pIRCSock && m_pIRCSock->IsAuthed()) {
return m_pIRCSock->GetNickMask();
}
return GetNick() + "!" + m_pUser->GetIdent() + "@" + m_pUser->GetVHost();
CString sHost = m_pUser->GetVHost();
if (sHost.empty()) {
sHost = "irc.znc.com";
}
return GetNick() + "!" + m_pUser->GetIdent() + "@" + sHost;
}
+2
View File
@@ -77,6 +77,8 @@ public:
bool HasNamesx() const { return m_bNamesx; }
bool HasUHNames() const { return m_bUHNames; }
const set<unsigned char>& GetUserModes() const { return m_scUserModes; }
// This is true if we are past raw 001
bool IsAuthed() const { return m_bAuthed; }
// !Getters
private:
void SetNick(const CString& sNick);
+2
View File
@@ -119,6 +119,8 @@ void CUser::IRCDisconnected() {
m_vClients[a]->IRCDisconnected();
}
SetIRCServer("");
// Get the reconnect going
CZNC::Get().EnableConnectUser();
}