Server IP : 180.180.241.3 / Your IP : 216.73.216.252 Web Server : Microsoft-IIS/7.5 System : Windows NT NETWORK-NHRC 6.1 build 7601 (Windows Server 2008 R2 Standard Edition Service Pack 1) i586 User : IUSR ( 0) PHP Version : 5.3.28 Disable Function : NONE MySQL : ON | cURL : ON | WGET : OFF | Perl : OFF | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /Program Files (x86)/FileZilla Server/source/ |
Upload File : |
// FileZilla Server - a Windows ftp server // Copyright (C) 2002-2004 - Tim Kosse <tim.kosse@gmx.de> // This program is free software; you can redistribute it and/or // modify it under the terms of the GNU General Public License // as published by the Free Software Foundation; either version 2 // of the License, or (at your option) any later version. // This program is distributed in the hope that it will be useful, // but WITHOUT ANY WARRANTY; without even the implied warranty of // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the // GNU General Public License for more details. // You should have received a copy of the GNU General Public License // along with this program; if not, write to the Free Software // Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA. #if !defined(AFX_SERVERTHREAD_H__4F566540_62DF_4338_85DE_EC699EB6640C__INCLUDED_) #define AFX_SERVERTHREAD_H__4F566540_62DF_4338_85DE_EC699EB6640C__INCLUDED_ #include "Thread.h" #if _MSC_VER > 1000 #pragma once #endif // _MSC_VER > 1000 // ServerThread.h : Header-Datei // class CControlSocket; class CServerThread; class COptions; class CPermissions; class t_user; class CExternalIpCheck; class CAutoBanManager; class CHashThread; typedef struct { CControlSocket *pSocket; CServerThread *pThread; } t_socketdata; ///////////////////////////////////////////////////////////////////////////// // Thread CServerThread class CServerThread : public CThread { public: virtual CStdString GetExternalIP(const CStdString& localIP); virtual void ExternalIPFailed(); CServerThread(int nNotificationMessageId); CPermissions *m_pPermissions; COptions *m_pOptions; CAutoBanManager* m_pAutoBanManager; void IncRecvCount(int count); void IncSendCount(int count); void IncIpCount(const CStdString &ip); void DecIpCount(const CStdString &ip); int GetIpCount(const CStdString &ip) const; BOOL IsReady(); static const int GetGlobalNumConnections(); void AddSocket(SOCKET sockethandle, bool ssl); const int GetNumConnections(); struct t_Notification { WPARAM wParam; LPARAM lParam; }; void SendNotification(WPARAM wParam, LPARAM lParam); /* * The parameter should be an empty list, since m_pendingNotifications and * list get swapped to increase performance. */ void GetNotifications(std::list<CServerThread::t_Notification>& list); void AntiHammerIncrease(const CStdString& ip); CHashThread& GetHashThread(); protected: virtual ~CServerThread(); void GatherTransferedBytes(); void ProcessNewSlQuota(); virtual BOOL InitInstance(); virtual DWORD ExitInstance(); virtual int OnThreadMessage(UINT Msg, WPARAM wParam, LPARAM lParam); void OnTimer(WPARAM wParam, LPARAM lParam); void ProcessControlMessage(t_controlmessage *msg); CControlSocket * GetControlSocket(int userid); std::map<int, CControlSocket *> m_LocalUserIDs; void AddNewSocket(SOCKET sockethandle, bool ssl); static int CalcUserID(); static std::map<int, t_socketdata> m_userids; static std::map<CStdString, int> m_userIPs; void AntiHammerDecrease(); int m_nRecvCount; int m_nSendCount; UINT m_nRateTimer; BOOL m_bQuit; CCriticalSectionWrapper m_threadsync; static CCriticalSectionWrapper m_GlobalThreadsync; unsigned int m_timerid; //Speed limit code static std::list<CServerThread *> m_sInstanceList; //First instance is the SL master BOOL m_bIsMaster; int m_nLoopCount; int m_lastLimits[2]; typedef struct { int nBytesAllowedToTransfer; int nTransferred; } t_Quota; t_Quota m_SlQuotas[2]; CStdString m_RawWelcomeMessage; std::list<CStdString> m_ParsedWelcomeMessage; CExternalIpCheck *m_pExternalIpCheck; std::list<t_Notification> m_pendingNotifications; int m_throttled; int m_nNotificationMessageId; static std::map<CStdString, int> m_antiHammerInfo; int m_antiHammerTimer; static CHashThread* m_hashThread; }; ///////////////////////////////////////////////////////////////////////////// //{{AFX_INSERT_LOCATION}} // Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein. #endif // AFX_SERVERTHREAD_H__4F566540_62DF_4338_85DE_EC699EB6640C__INCLUDED_