From 5e0c652b9a0a5e6ebc9c5e73187c808c74880ae6 Mon Sep 17 00:00:00 2001 From: psychon Date: Mon, 7 Jul 2008 18:24:38 +0000 Subject: [PATCH] Add the remote ip to the info CAuthBase got git-svn-id: https://znc.svn.sourceforge.net/svnroot/znc/trunk@1112 726aef4b-f618-498e-8847-2d620e286838 --- Client.cpp | 5 +++++ Client.h | 16 ++++++++-------- modules/webadmin.cpp | 11 +++++++---- 3 files changed, 20 insertions(+), 12 deletions(-) diff --git a/Client.cpp b/Client.cpp index daeb84d0..bf6dfb81 100644 --- a/Client.cpp +++ b/Client.cpp @@ -1848,6 +1848,11 @@ void CAuthBase::AuthUser(CSmartPtr AuthClass) { } } +CClientAuth::CClientAuth(CClient* pClient, const CString& sUsername, const CString& sPassword) + : CAuthBase(sUsername, sPassword, pClient->GetRemoteIP()) { + m_pClient = pClient; +} + void CClientAuth::RefuseLogin(const CString& sReason) { if (m_pClient) { m_pClient->RefuseLogin(sReason); diff --git a/Client.h b/Client.h index e8bdcd13..a8da5149 100644 --- a/Client.h +++ b/Client.h @@ -23,16 +23,17 @@ class CClientTimeout; class CAuthBase { public: - CAuthBase() {} - CAuthBase(const CString& sUsername, const CString& sPassword) { - SetLoginInfo(sUsername, sPassword); + CAuthBase(const CString& sUsername, const CString& sPassword, const CString& sRemoteIP) { + SetLoginInfo(sUsername, sPassword, sRemoteIP); } virtual ~CAuthBase() {} - virtual void SetLoginInfo(const CString& sUsername, const CString& sPassword) { + virtual void SetLoginInfo(const CString& sUsername, const CString& sPassword, + const CString& sRemoteIP) { m_sUsername = sUsername; m_sPassword = sPassword; + m_sRemoteIP = sRemoteIP; } virtual void AcceptLogin(CUser& User) = 0; @@ -40,21 +41,20 @@ public: virtual const CString& GetUsername() const { return m_sUsername; } virtual const CString& GetPassword() const { return m_sPassword; } + virtual const CString& GetRemoteIP() const { return m_sRemoteIP; } static void AuthUser(CSmartPtr AuthClass); private: CString m_sUsername; CString m_sPassword; + CString m_sRemoteIP; }; class CClientAuth : public CAuthBase { public: - CClientAuth(CClient* pClient, const CString& sUsername, const CString& sPassword) : CAuthBase(sUsername, sPassword) { - m_pClient = pClient; - } - + CClientAuth(CClient* pClient, const CString& sUsername, const CString& sPassword); virtual ~CClientAuth() {} void SetClient(CClient* pClient) { m_pClient = pClient; } diff --git a/modules/webadmin.cpp b/modules/webadmin.cpp index ea351b09..ca3691ac 100644 --- a/modules/webadmin.cpp +++ b/modules/webadmin.cpp @@ -21,10 +21,7 @@ class CWebAdminSock; class CWebAdminAuth : public CAuthBase { public: - CWebAdminAuth(CWebAdminSock* pWebAdminSock, const CString& sUsername, const CString& sPassword) - : CAuthBase(sUsername, sPassword) { - m_pWebAdminSock = pWebAdminSock; - } + CWebAdminAuth(CWebAdminSock* pWebAdminSock, const CString& sUsername, const CString& sPassword); virtual ~CWebAdminAuth() {} @@ -1162,6 +1159,12 @@ CUser* CWebAdminSock::GetNewUser(CString& sPageRet, CUser* pUser) { return pNewUser; } +CWebAdminAuth::CWebAdminAuth(CWebAdminSock* pWebAdminSock, const CString& sUsername, + const CString& sPassword) + : CAuthBase(sUsername, sPassword, pWebAdminSock->GetRemoteIP()) { + m_pWebAdminSock = pWebAdminSock; +} + void CWebAdminAuth::AcceptLogin(CUser& User) { if (m_pWebAdminSock) { m_pWebAdminSock->SetSessionUser(&User);