![]() |
Gray C++ Libraries
0.0.2
A set of C++ libraries for MSVC, GNU on Windows, WinCE, Linux
|
#include <cFTPFactory.h>
Public Member Functions | |
cFTPFactory (cNetServer &rNetServer, cFTPCfg &rCfg) | |
virtual | ~cFTPFactory () |
StrLen_t _cdecl | LogEventF (LOG_ATTR_MASK_t dwAttrMask, const LOGCHAR_t *pszFormat,...) |
HRESULT | CheckAddressBeforeAccept (const cNetAddress &AddrNew) const |
bool | OnClientClose (cNetServerConnection *pClient) |
HRESULT | OpenDPasvListen (OUT cNetServerPortPtr &pDPasv) |
bool | OpenFactory () |
void | CloseFactory () |
![]() | |
virtual | ~IProtocolFactory () |
virtual size_t | get_ProtocolMaxMessageSize () const |
Public Attributes | |
cNetServer & | m_rNetServer |
cFTPCfg & | m_rCfg |
cNetAddrName | m_AddrMe |
My gethostname() and my primary IP. Maybe not my only IP. More... | |
cFTPFactoryData | m_ProtocolData |
incoming Data connection. PASV usually. on m_Opts.m_wPasvPort More... | |
cNetServerPortPtr | m_pSocketCtrl |
a dedicated server listening command/control socket/port. m_Opts.m_wPort = 21 More... | |
cNetServerPortPtr | m_pSocketDataPasv |
dedicated listen port for incoming passive data connections. (if needed) m_Opts.m_wPasvPort = 20 More... | |
cArrayRef< cClientFTP > | m_aConnectCmd |
All my Control/command connections on m_pSocketCtrl. non data connections. duped in cNetServerGroup. More... | |
Protected Member Functions | |
virtual const char * | get_ProtocolName () const override |
virtual HRESULT | TestProtocol (const BYTE *pszPrefixData, size_t iPrefixLen) const override |
virtual cProtocolStreamPtr | CreateProtocolStream (IUnkObject *pServerConnection, cStreamInput *pStreamInp, cStreamOutput *pStreamOut) override |
a FTP protocol plug-in for cNetServer An FTP server listening on a control SOCKET/port for incoming command/control connections.
GrayFTP::cFTPFactory::cFTPFactory | ( | cNetServer & | rNetServer, |
cFTPCfg & | rCfg | ||
) |
|
virtual |
HRESULT GrayFTP::cFTPFactory::CheckAddressBeforeAccept | ( | const cNetAddress & | AddrNew | ) | const |
Count clients from this IP/host ? <= m_iMaxClientsPerIP Beware of DoS attack = hog up all the connections !!! cNetServer
void GrayFTP::cFTPFactory::CloseFactory | ( | ) |
Dump any FTP clients i have.
|
overrideprotectedvirtual |
New command connection detected. from cNetServer. pClient = cNetServerConnection
Implements GrayLib::IProtocolFactory.
|
inlineoverrideprotectedvirtual |
Implements GrayLib::IProtocolFactory.
StrLen_t _cdecl GrayFTP::cFTPFactory::LogEventF | ( | LOG_ATTR_MASK_t | dwAttrMask, |
const LOGCHAR_t * | pszFormat, | ||
... | |||
) |
bool GrayFTP::cFTPFactory::OnClientClose | ( | cNetServerConnection * | pClient | ) |
client dropped.
HRESULT GrayFTP::cFTPFactory::OpenDPasvListen | ( | OUT cNetServerPortPtr & | pDPasv | ) |
Open a listen port for incoming PASV data connection. Only open this data listen port when actually needed.
bool GrayFTP::cFTPFactory::OpenFactory | ( | ) |
Open the control port.
|
inlineoverrideprotectedvirtual |
IProtocolFactory server always sends a welcome message on connect. no client hello. (no negotiation). Port bound. No inspection required.
Implements GrayLib::IProtocolFactory.
cArrayRef<cClientFTP> GrayFTP::cFTPFactory::m_aConnectCmd |
All my Control/command connections on m_pSocketCtrl. non data connections. duped in cNetServerGroup.
cNetAddrName GrayFTP::cFTPFactory::m_AddrMe |
My gethostname() and my primary IP. Maybe not my only IP.
cFTPFactoryData GrayFTP::cFTPFactory::m_ProtocolData |
incoming Data connection. PASV usually. on m_Opts.m_wPasvPort
cNetServerPortPtr GrayFTP::cFTPFactory::m_pSocketCtrl |
a dedicated server listening command/control socket/port. m_Opts.m_wPort = 21
cNetServerPortPtr GrayFTP::cFTPFactory::m_pSocketDataPasv |
dedicated listen port for incoming passive data connections. (if needed) m_Opts.m_wPasvPort = 20
cFTPCfg& GrayFTP::cFTPFactory::m_rCfg |
cNetServer& GrayFTP::cFTPFactory::m_rNetServer |