/** A PASV command received * * The PASV command is used to switch the server mode between * Active and Passive modes. * */ void RainbruRPG::Network::Ftp::FtpTransfer::commandPASV(){ /* if (transferMode==FTM_PASSIVE){ transferMode=FTM_ACTIVE; } else{ transferMode=FTM_PASSIVE; } QString s("Switching to "); if (transferMode==FTM_PASSIVE){ s+="PASSIVE"; emit(switchToPassiveMode()); } else{ s+="ACTIVE"; emit(switchToActiveMode()); } s+=" mode"; */ emit(switchToPassiveMode()); QString s("PASV command deactivated"); emit(log(s)); }
void VorticonEngine::pumpEvent(const CEvent *evPtr) { KeenEngine::pumpEvent(evPtr); if( dynamic_cast<const FinishedLoadingResources*>(evPtr) ) { switchToPassiveMode(); gpSaveGameController->convertAllOldFormats(); } else if( const NewGamePlayersEvent* pNewGame = dynamic_cast<const NewGamePlayersEvent*>(evPtr) ) { gpBehaviorEngine->mPlayers = pNewGame->mSelection; gEventManager.add( new OpenMenuEvent(new CDifficultySelection) ); return; } // Control Menu Events else if( const OpenMovementControlMenuEvent* ctrlMenu = dynamic_cast<const OpenMovementControlMenuEvent*>(evPtr) ) { const int players = ctrlMenu->mSelection; gEventManager.add( new OpenMenuEvent( new CControlSettingsMovement(players) ) ); } else if( const OpenButtonsControlMenuEvent* ctrlMenu = dynamic_cast<const OpenButtonsControlMenuEvent*>(evPtr) ) { const int players = ctrlMenu->mSelection; gEventManager.add( new OpenMenuEvent( new CControlSettingsButtons(players) ) ); } else if( const OpenControlMenuEvent* ctrlMenu = dynamic_cast<const OpenControlMenuEvent*>(evPtr) ) { const int players = ctrlMenu->mSelection; gEventManager.add( new OpenMenuEvent( new CControlsettings(players) ) ); } else if( const GMSwitchToPlayGameMode* pPlayGame = dynamic_cast<const GMSwitchToPlayGameMode*>(evPtr) ) { const GMSwitchToPlayGameMode &playGame = *pPlayGame; mpGameMode.reset( new CPlayGameVorticon(playGame.m_startlevel) ); if(!gEventManager.empty()) gEventManager.clear(); mpGameMode->init(); mOpenedGamePlay = true; gpBehaviorEngine->setPause(false); gEventManager.add( new CloseAllMenusEvent() ); } else if( dynamic_cast<const GMSwitchToPassiveMode*>(evPtr) ) { mpGameMode.reset( new vorticon::CPassiveVort() ); mpGameMode->init(); } else if( dynamic_cast<const LoadGameEvent*>(evPtr) ) // If GamePlayMode is not running but loading is requested... { std::unique_ptr<CPlayGameVorticon> pgVort(new CPlayGameVorticon()); pgVort->init(); pgVort->loadGame(); mpGameMode = std::move(pgVort); mOpenedGamePlay = true; gpBehaviorEngine->setPause(false); gEventManager.add( new CloseAllMenusEvent() ); } else if( dynamic_cast<const OpenMainMenuEvent*>(evPtr) ) { gEventManager.add( new OpenMenuEvent( new MainMenu(mOpenedGamePlay) ) ); } else if( const StartInfoSceneEvent *scene = dynamic_cast<const StartInfoSceneEvent*>(evPtr) ) { gMenuController.lock(true); gMenuController.hide(true); mpInfoScene = scene->mpScene; mpInfoScene->init(); } }
/** The constructor * * \param parent The parent widget * \param port The port used to connect to the Protocol Interpreter * */ RainbruRPG::Network::Ftp::FtpServer::FtpServer(QWidget* parent, quint16 port) : QWidget(parent){ setWindowTitle("RainbruRPG FTP server"); setMinimumWidth(550); QVBoxLayout *mainLayout = new QVBoxLayout; // Control widgets QLabel* lab1=new QLabel(tr("Control :"), this); mainLayout->addWidget(lab1); textEdit=new QTextEdit(this); mainLayout->addWidget(textEdit); setLayout(mainLayout); // Transfert widgets QLabel* lab2=new QLabel(tr("Transfert :"), this); mainLayout->addWidget(lab2); tree=new Q3ListView(this); tree->addColumn("Ip:port", 150); tree->addColumn("Filename", 160); tree->addColumn("In/Out"); tree->addColumn("Rate", 80); tree->addColumn("Size", 100); tree->addColumn("Rem.time", 120); tree->addColumn("Progress", 200); mainLayout->addWidget(tree); control=new FtpControl(50002); connect(control, SIGNAL(log(const QString&)), this, SLOT(log(const QString&))); control->run(); transfer=new FtpTransfer(50001); connect(transfer, SIGNAL(log(const QString&)), this, SLOT(log(const QString&))); transfer->run(); connect(control, SIGNAL(transferListeningPort(const QString&,int)), transfer, SLOT(changeHost(const QString&,int))); // Commands connections connect(control, SIGNAL(commandLIST()), transfer, SLOT(commandLIST())); connect(control, SIGNAL(commandPASV()), transfer, SLOT(commandPASV())); connect(control, SIGNAL(commandRETR(const QString&)), transfer, SLOT(commandRETR(const QString&))); connect(control, SIGNAL(commandSTOR(const QString&)), transfer, SLOT(commandSTOR(const QString&))); // Transfer type switching connect(control, SIGNAL(switchToBinaryType()), transfer, SLOT(switchToBinaryType())); connect(control, SIGNAL(switchToAsciiType()), transfer, SLOT(switchToAsciiType())); // Transfer mode switching connect(transfer, SIGNAL(switchToActiveMode()), control, SLOT(switchToActiveMode())); connect(transfer, SIGNAL(switchToPassiveMode()), control, SLOT(switchToPassiveMode())); // transfer control connect(transfer, SIGNAL(startTransferFile(const QString&, qint64)), control, SLOT(startTransferFile(const QString&, qint64))); connect(transfer, SIGNAL(waitTransferFile(const QString&)), control, SLOT(waitTransferFile(const QString&))); connect(transfer, SIGNAL(transferComplete(const QString&)), control, SLOT(transferComplete(const QString&))); connect(transfer, SIGNAL(transferComplete(const QString&)), this, SIGNAL(transferComplete(const QString&))); // Transfer visual management connect(control, SIGNAL(addTransferVisual(const QString&,const QString&,const QString&,bool, int)), this, SLOT(addTransferVisual(const QString&,const QString&, const QString&, bool, int))); connect(transfer, SIGNAL(updateTransferVisual(const QString& , int)), this, SLOT(updateTransferVisual(const QString& , int))); // QuarantineList signal connect(transfer, SIGNAL(storeFile(const QString&)), this, SIGNAL(storeFile(const QString&))); }