mirror of
https://github.com/glest/glest-source.git
synced 2025-08-31 19:51:44 +02:00
- bugfixes for ftp server to work on windows, silly M$ compiler has issues with mixing C / C++ code so I had to make these changes
This commit is contained in:
@@ -38,6 +38,7 @@
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
void ftpInit(ftpFindExternalFTPServerIpType cb1, ftpAddUPNPPortForwardType cb2, ftpRemoveUPNPPortForwardType cb3);
|
||||
int ftpCreateAccount(const char* name, const char* passw, const char* root, int accRights);
|
||||
int ftpStart(int portNumber);
|
||||
int ftpShutdown(void);
|
||||
|
@@ -60,9 +60,22 @@ typedef uint16_t port_t;
|
||||
#define TRUE 1
|
||||
#endif
|
||||
|
||||
ip_t (*ftpFindExternalFTPServerIp)(ip_t clientIp);
|
||||
void (*ftpAddUPNPPortForward)(int internalPort, int externalPort);
|
||||
void (*ftpRemoveUPNPPortForward)(int internalPort, int externalPort);
|
||||
#ifdef __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
|
||||
int VERBOSE_MODE_ENABLED;
|
||||
|
||||
typedef ip_t (*ftpFindExternalFTPServerIpType)(ip_t clientIp);
|
||||
typedef void (*ftpAddUPNPPortForwardType)(int internalPort, int externalPort);
|
||||
typedef void (*ftpRemoveUPNPPortForwardType)(int internalPort, int externalPort);
|
||||
|
||||
ftpFindExternalFTPServerIpType ftpFindExternalFTPServerIp;
|
||||
ftpAddUPNPPortForwardType ftpAddUPNPPortForward;
|
||||
ftpRemoveUPNPPortForwardType ftpRemoveUPNPPortForward;
|
||||
|
||||
#ifdef __cplusplus
|
||||
}
|
||||
#endif
|
||||
|
||||
#endif
|
||||
|
@@ -26,7 +26,6 @@ namespace Shared { namespace PlatformCommon {
|
||||
// =====================================================
|
||||
// class FTPServerThread
|
||||
// =====================================================
|
||||
uint32 FindExternalFTPServerIp(uint32 clientIp);
|
||||
|
||||
class FTPServerThread : public BaseThread
|
||||
{
|
||||
|
@@ -36,6 +36,11 @@
|
||||
*/
|
||||
LOCAL socket_t server;
|
||||
|
||||
void ftpInit(ftpFindExternalFTPServerIpType cb1, ftpAddUPNPPortForwardType cb2, ftpRemoveUPNPPortForwardType cb3) {
|
||||
ftpFindExternalFTPServerIp = cb1;
|
||||
ftpAddUPNPPortForward = cb2;
|
||||
ftpRemoveUPNPPortForward = cb3;
|
||||
}
|
||||
|
||||
/**
|
||||
* @brief Initializes and starts the server
|
||||
@@ -48,7 +53,6 @@ int ftpStart(int portNumber)
|
||||
{
|
||||
server = -1; // set server socket to invalid value
|
||||
|
||||
|
||||
if(VERBOSE_MODE_ENABLED) printf("Feathery FTP-Server\n");
|
||||
|
||||
ftpArchInit();
|
||||
|
@@ -28,8 +28,8 @@ namespace Shared { namespace PlatformCommon {
|
||||
|
||||
static std::map<uint32,uint32> clientToFTPServerList;
|
||||
|
||||
uint32 FindExternalFTPServerIp(uint32 clientIp) {
|
||||
uint32 result = clientToFTPServerList[clientIp];
|
||||
ip_t FindExternalFTPServerIp(ip_t clientIp) {
|
||||
ip_t result = clientToFTPServerList[clientIp];
|
||||
|
||||
if(SystemFlags::VERBOSE_MODE_ENABLED) printf ("===> FTP Server thread clientIp = %u, result = %u\n",clientIp,result);
|
||||
|
||||
@@ -40,9 +40,7 @@ FTPServerThread::FTPServerThread(std::pair<string,string> mapsPath,int portNumbe
|
||||
this->mapsPath = mapsPath;
|
||||
this->portNumber = portNumber;
|
||||
|
||||
ftpAddUPNPPortForward = &UPNP_Tools::AddUPNPPortForward;
|
||||
ftpRemoveUPNPPortForward = &UPNP_Tools::RemoveUPNPPortForward;
|
||||
ftpFindExternalFTPServerIp = &FindExternalFTPServerIp;
|
||||
ftpInit(&FindExternalFTPServerIp,&UPNP_Tools::AddUPNPPortForward,&UPNP_Tools::RemoveUPNPPortForward);
|
||||
VERBOSE_MODE_ENABLED = SystemFlags::VERBOSE_MODE_ENABLED;
|
||||
}
|
||||
|
||||
|
Reference in New Issue
Block a user