- more bugfixes related to ftp and firewall handling

This commit is contained in:
Mark Vejvoda
2010-12-30 18:51:25 +00:00
parent 1480d7c68d
commit 64446194e7
5 changed files with 43 additions and 10 deletions

View File

@@ -682,10 +682,19 @@ LOCAL int ftpCmdPasv(int sessionId, const char* args, int len)
}
ftpGetSession(sessionId)->passiveDataSocket = s;
if(ftpFindExternalFTPServerIp(ftpGetSession(sessionId)->remoteIp) > 0)
#if DBG_LOG
printf("In ftpCmdPasv sessionId = %d, client IP = %u, remote IP = %u, port = %d, ftpAddUPNPPortForward = %p, ftpRemoveUPNPPortForward = %p\n",
sessionId, ftpGetSession(sessionId)->remoteIp, ftpFindExternalFTPServerIp(ftpGetSession(sessionId)->remoteIp), port,ftpAddUPNPPortForward,ftpRemoveUPNPPortForward);
#endif
if(ftpFindExternalFTPServerIp(ftpGetSession(sessionId)->remoteIp) != 0)
{
ftpGetSession(sessionId)->remoteFTPServerPassivePort = port;
if(ftpAddUPNPPortForward) {
#if DBG_LOG
printf("In ftpCmdPasv sessionId = %d, adding UPNP port forward\n", sessionId);
#endif
ftpAddUPNPPortForward(port, port);
}
@@ -699,6 +708,11 @@ LOCAL int ftpCmdPasv(int sessionId, const char* args, int len)
remoteFTPServerIp & 0xFF,
(port >> 8) & 0xFF,
port & 0xFF);
#if DBG_LOG
printf("In ftpCmdPasv sessionId = %d, str [%s]\n", sessionId, str);
#endif
}
else
{

View File

@@ -119,10 +119,19 @@ int ftpAuthSession(int id)
*/
int ftpCloseSession(int id)
{
if(ftpFindExternalFTPServerIp != NULL && ftpFindExternalFTPServerIp(sessions[id].remoteIp) > 0)
#if DBG_LOG
printf("In ftpCloseSession sessionId = %d, remote IP = %u, port = %d\n",
id, sessions[id].remoteIp, sessions[id].remoteFTPServerPassivePort);
#endif
if(ftpFindExternalFTPServerIp != NULL && ftpFindExternalFTPServerIp(sessions[id].remoteIp) != 0)
{
if(ftpRemoveUPNPPortForward)
{
#if DBG_LOG
printf("In ftpCmdPasv sessionId = %d, removing UPNP port forward [%d]\n", id,sessions[id].remoteFTPServerPassivePort);
#endif
ftpRemoveUPNPPortForward(sessions[id].remoteFTPServerPassivePort, sessions[id].remoteFTPServerPassivePort);
}
}