diff --git a/mk/windoze/shared_lib.vcproj b/mk/windoze/shared_lib.vcproj index 473aa179..327c999f 100755 --- a/mk/windoze/shared_lib.vcproj +++ b/mk/windoze/shared_lib.vcproj @@ -251,38 +251,110 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + @@ -921,10 +1013,22 @@ RelativePath="..\..\source\shared_lib\sources\platform\posix\ircclient.cpp" > + + + + + + @@ -957,10 +1061,6 @@ RelativePath="..\..\source\shared_lib\include\platform\sdl\thread.h" > - - diff --git a/source/shared_lib/include/feathery_ftp/ftpIfc.h b/source/shared_lib/include/feathery_ftp/ftpIfc.h index 4a1c51cd..7371b2d1 100644 --- a/source/shared_lib/include/feathery_ftp/ftpIfc.h +++ b/source/shared_lib/include/feathery_ftp/ftpIfc.h @@ -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); diff --git a/source/shared_lib/include/feathery_ftp/ftpTypes.h b/source/shared_lib/include/feathery_ftp/ftpTypes.h index 0da9d1c6..ea3a1008 100755 --- a/source/shared_lib/include/feathery_ftp/ftpTypes.h +++ b/source/shared_lib/include/feathery_ftp/ftpTypes.h @@ -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 diff --git a/source/shared_lib/include/platform/posix/miniftpserver.h b/source/shared_lib/include/platform/posix/miniftpserver.h index 1da0d028..b650721b 100644 --- a/source/shared_lib/include/platform/posix/miniftpserver.h +++ b/source/shared_lib/include/platform/posix/miniftpserver.h @@ -26,7 +26,6 @@ namespace Shared { namespace PlatformCommon { // ===================================================== // class FTPServerThread // ===================================================== -uint32 FindExternalFTPServerIp(uint32 clientIp); class FTPServerThread : public BaseThread { diff --git a/source/shared_lib/sources/feathery_ftp/ftpRuntime.c b/source/shared_lib/sources/feathery_ftp/ftpRuntime.c index 74968709..c2a7eba4 100644 --- a/source/shared_lib/sources/feathery_ftp/ftpRuntime.c +++ b/source/shared_lib/sources/feathery_ftp/ftpRuntime.c @@ -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(); diff --git a/source/shared_lib/sources/platform/posix/miniftpserver.cpp b/source/shared_lib/sources/platform/posix/miniftpserver.cpp index d3db0d97..125fd052 100644 --- a/source/shared_lib/sources/platform/posix/miniftpserver.cpp +++ b/source/shared_lib/sources/platform/posix/miniftpserver.cpp @@ -28,8 +28,8 @@ namespace Shared { namespace PlatformCommon { static std::map 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 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; }