void initialize() ///Works with current delays { int result; result = enterCommandMode(); sendString(GET_WLAN_STRING, 6); Delay10KTCYx(0); sendString(SET_SSID, 18); Delay10KTCYx(0); sendString(SET_PASSPHRASE, 29); Delay10KTCYx(0); sendString(SET_CHANNEL, 10); Delay10KTCYx(0); sendString(SET_AUTH, 10); Delay10KTCYx(0); sendString(SET_JOIN, 10); Delay10KTCYx(0); sendString(SET_DHCP, 10); Delay10KTCYx(0); sendString(SET_COMM_OPEN, 10); Delay10KTCYx(0); sendString(SET_COMM_REMOTE, 10); Delay10KTCYx(0); autoConnect(); sendString(SAVE, 5); Delay10KTCYx(0); result = rebootModule(); longDelay(); }
BlockSubstitution::BlockSubstitution(Project* project,QString model, QString orgComponent,QString subComponent,bool doAutoConnect, bool &ok) { ok = init(project,model,orgComponent,subComponent); if(doAutoConnect) autoConnect(); }
// from useragent void QConnectionManager::onConnectionRequest() { previousConnectedService.clear(); sendConnectReply("Suppress", 15); bool ok = autoConnect(); qDebug() << serviceInProgress << ok << flightModeSuppression; if (!ok && serviceInProgress.isEmpty() && !flightModeSuppression) { Q_EMIT connectionRequest(); } }
void MainWindow::on_buttonConnect_clicked() { //if disconnected if(connection==0) //auto connection autoConnect(); //if connected else //auto disconnection autoDisconnect(); }
void QConnectionManager::servicesListChanged(const QStringList &list) { bool ok = false; Q_FOREACH(const QString &path,list) { if (orderedServicesList.indexOf((path)) == -1) { //added qDebug() << Q_FUNC_INFO << "added" << path; serviceAdded(path); ok = true; } } Q_FOREACH(const QString &path,orderedServicesList) { if (list.indexOf((path)) == -1) { qDebug() << Q_FUNC_INFO << "removed" << path; serviceRemoved(path); ok = true; //removed } } if (ok && serviceInProgress.isEmpty()) autoConnect(); }
void MainForm::helperAutoConnect() { ui->lineEdit->setText("/connect"); emit autoConnect(); }
boolean WiFiManager::autoConnect() { autoConnect("NoNetESP"); }
// Scan APs, use configured if found, otherwise try each open AP to get through, finally open soft AP with config page. boolean WiFiManager::findOpenAP(const char *szUrl) { int nOpen = 0; begin("ESP8266"); int nScan = WiFi.scanNetworks(); bool bFound = false; Serial.println("scan done"); String sSSID = getSSID(); int ind = 0; display.setFontScale2x2(false); if (nScan == 0) { Serial.println( "No APs found" ); display.print("No APs Found"); } else { for (int i = 0; i < nScan; ++i) // try each public AP { Serial.print(WiFi.SSID(i)); Serial.print(" "); Serial.println(WiFi.encryptionType(i)); display.print(WiFi.SSID(i)); if(WiFi.encryptionType(i) == 7 /*&& strncmp(WiFi.SSID(i),"Chromecast",6) != 0*/) { display.drawString(128-8, 56, "O"); nOpen++; } else if( sSSID == WiFi.SSID(i) ){ // The saved WiFi was found bFound = true; display.drawString(128-8, 56, "<"); Serial.println(" Cfg AP found"); } } } if(nOpen == 0 && !bFound) { display.print("No open AP found"); if(sSSID == "") { display.print("Switch to SoftAP"); display.print("Hotspot: ESP8266"); display.print("Goto 192.168.4.1"); }else{ display.print("Switching to"); display.print(sSSID); } } delay(2000); // delay for reading if(nOpen && !bFound) { WiFi.mode(WIFI_STA); int counter = 0; for (int i = 0; i < nScan; ++i) { if(WiFi.encryptionType(i) == 7) // run through open APs and try to connect { Serial.print("Attempting "); Serial.print(WiFi.SSID(i)); display.print(String(WiFi.SSID(i)) + "..."); WiFi.begin(WiFi.SSID(i)); for(int n = 0; n < 50 && WiFi.status() != WL_CONNECTED; n++) { delay(200); Serial.print("."); display.clear(); display.drawXbm(34,10, 60, 36, WiFi_Logo_bits); display.setColor(INVERSE); display.fillRect(10, 10, 108, 44); display.setColor(WHITE); drawSpinner(4, n % 4); display.display(); } if(WiFi.status() == WL_CONNECTED) { Serial.println("Connected"); display.print("Connected"); if(attemptClient(szUrl)) // attemp port 80 and 8080 { display.drawString(64-8, 56, "!"); break; }else{ display.drawString(64-8, 56, "X"); WiFi.disconnect(); } } counter++; } } if (WiFi.status() != WL_CONNECTED) { Serial.println("Open WiFi failed"); Serial.println("Switch to SoftAP"); display.print("Open WiFi failed"); display.print("Switch to SoftAP"); autoConnect("ESP8266"); } } else { autoConnect("ESP8266"); } return true; }
void QConnectionManager::serviceStateChanged(const QString &state) { NetworkService *service = static_cast<NetworkService *>(sender()); qDebug() << state << service->name(); if (currentNetworkState == "disconnect") { ua->sendConnectReply("Clear"); } if (state == "failure") { serviceInProgress.clear(); Q_EMIT errorReported(service->path(), "Connection failure: "+ service->name()); autoConnect(); } if (currentNetworkState == "configuration" && state == "ready" && netman->state() != "online") { goodConnectTimer->start(); } //manual connection if ((state == "ready" || state == "online") && service->path() != serviceInProgress) { qDebug() << "manual connection of" << service->path() << "detected, enabling auto connect timeout"; lastManuallyConnectedService = service->path(); manualConnnectionTimer.start(); } //auto migrate if (service->path() == serviceInProgress && state == "online") { serviceInProgress.clear(); } //auto migrate if (state == "idle") { if (lastManuallyConnectedService == service->path()) { lastManuallyConnectedService.clear(); manualConnnectionTimer.invalidate(); } if (serviceInProgress == service->path()) serviceInProgress.clear(); previousConnectedService = service->path(); if (service->type() == "ethernet") { //keep this alive NetworkTechnology tech; tech.setPath(netman->technologyPathForService(service->path())); if (tech.powered()) { requestConnect(service->path()); } } else { updateServicesMap(); qDebug() <<"serviceInProgress"<< serviceInProgress; // If a manual connection has recently been detected autoConnect() will do nothing. // Always call autoConnect() here as this state change could be that manual connection // disconnecting. autoConnect(); } } if (!(currentNetworkState == "online" && state == "association")) Q_EMIT connectionState(state, service->type()); currentNetworkState = state; QSettings confFile; confFile.beginGroup("Connectionagent"); confFile.setValue("connected",currentNetworkState); }
int32_t UdpSocket::proofread(char* buffer, int32_t bufferSize, std::string& senderIp) { senderIp.clear(); if(!_socketDescriptor) throw SocketOperationException("Socket descriptor is nullptr."); _readMutex.lock(); if(_autoConnect && !isOpen()) { _readMutex.unlock(); autoConnect(); if(!isOpen()) throw SocketClosedException("Connection to client number " + std::to_string(_socketDescriptor->id) + " closed (8)."); _readMutex.lock(); } timeval timeout; int32_t seconds = _readTimeout / 1000000; timeout.tv_sec = seconds; timeout.tv_usec = _readTimeout - (1000000 * seconds); fd_set readFileDescriptor; FD_ZERO(&readFileDescriptor); auto fileDescriptorGuard = _bl->fileDescriptorManager.getLock(); fileDescriptorGuard.lock(); int32_t nfds = _socketDescriptor->descriptor + 1; if(nfds <= 0) { fileDescriptorGuard.unlock(); _readMutex.unlock(); throw SocketClosedException("Connection to client number " + std::to_string(_socketDescriptor->id) + " closed (1)."); } FD_SET(_socketDescriptor->descriptor, &readFileDescriptor); fileDescriptorGuard.unlock(); int32_t bytesRead = select(nfds, &readFileDescriptor, NULL, NULL, &timeout); if(bytesRead == 0) { _readMutex.unlock(); throw SocketTimeOutException("Reading from socket timed out."); } if(bytesRead != 1) { _readMutex.unlock(); throw SocketClosedException("Connection to client number " + std::to_string(_socketDescriptor->id) + " closed (2)."); } struct addrinfo clientInfo; memset(&clientInfo, 0, sizeof(addrinfo)); uint32_t addressLength = sizeof(sockaddr); do { bytesRead = recvfrom(_socketDescriptor->descriptor, buffer, bufferSize, 0, clientInfo.ai_addr, &addressLength); } while(bytesRead < 0 && (errno == EAGAIN || errno == EINTR)); if(bytesRead <= 0) { _readMutex.unlock(); throw SocketClosedException("Connection to client number " + std::to_string(_socketDescriptor->id) + " closed (3)."); } _readMutex.unlock(); char ipStringBuffer[INET6_ADDRSTRLEN]; if (_serverInfo->ai_family == AF_INET) { struct sockaddr_in *s = (struct sockaddr_in*)_serverInfo->ai_addr; inet_ntop(AF_INET, &s->sin_addr, ipStringBuffer, sizeof(ipStringBuffer)); } else { // AF_INET6 struct sockaddr_in6 *s = (struct sockaddr_in6*)_serverInfo->ai_addr; inet_ntop(AF_INET6, &s->sin6_addr, ipStringBuffer, sizeof(ipStringBuffer)); } senderIp = std::string(&ipStringBuffer[0]); return bytesRead; }
int32_t UdpSocket::proofwrite(const std::string& data) { if(!_socketDescriptor) throw SocketOperationException("Socket descriptor is nullptr."); _writeMutex.lock(); if(!isOpen()) { _writeMutex.unlock(); autoConnect(); if(!isOpen()) throw SocketClosedException("Connection to client number " + std::to_string(_socketDescriptor->id) + " closed (8)."); _writeMutex.lock(); } if(data.empty()) { _writeMutex.unlock(); return 0; } if(data.size() > 104857600) { _writeMutex.unlock(); throw SocketDataLimitException("Data size is larger than 100 MiB."); } int32_t totalBytesWritten = 0; while (totalBytesWritten < (signed)data.size()) { /*timeval timeout; timeout.tv_sec = 5; timeout.tv_usec = 0; fd_set writeFileDescriptor; FD_ZERO(&writeFileDescriptor); _bl->fileDescriptorManager.lock(); int32_t nfds = _socketDescriptor->descriptor + 1; if(nfds <= 0) { _bl->fileDescriptorManager.unlock(); _writeMutex.unlock(); throw SocketClosedException("Connection to client number " + std::to_string(_socketDescriptor->id) + " closed (6)."); } FD_SET(_socketDescriptor->descriptor, &writeFileDescriptor); _bl->fileDescriptorManager.unlock(); int32_t readyFds = select(nfds, NULL, &writeFileDescriptor, NULL, &timeout); if(readyFds == 0) { _writeMutex.unlock(); throw SocketTimeOutException("Writing to socket timed out."); } if(readyFds != 1) { _writeMutex.unlock(); throw SocketClosedException("Connection to client number " + std::to_string(_socketDescriptor->id) + " closed (7)."); }*/ int32_t bytesToSend = data.size() - totalBytesWritten; int32_t bytesWritten = sendto(_socketDescriptor->descriptor, &data.at(totalBytesWritten), bytesToSend, 0, _serverInfo->ai_addr, sizeof(sockaddr)); if(bytesWritten <= 0) { if(bytesWritten == -1 && errno == EINTR) continue; _writeMutex.unlock(); close(); throw SocketOperationException(strerror(errno)); } totalBytesWritten += bytesWritten; } _writeMutex.unlock(); return totalBytesWritten; }
void KviIrcServer::save(KviConfigurationFile * pCfg, const QString & szPrefix) { QString szTmp; szTmp = QString("%1Hostname").arg(szPrefix); pCfg->writeEntry(szTmp,m_szHostname); szTmp = QString("%1Id").arg(szPrefix); pCfg->writeEntry(szTmp,m_szId); if(!m_szIp.isEmpty()) { szTmp = QString("%1Ip").arg(szPrefix); pCfg->writeEntry(szTmp,m_szIp); } if(!m_szDescription.isEmpty()) { szTmp = QString("%1Description").arg(szPrefix); pCfg->writeEntry(szTmp,m_szDescription); } if(!m_szUser.isEmpty()) { szTmp = QString("%1User").arg(szPrefix); pCfg->writeEntry(szTmp,m_szUser); } if(!m_szPass.isEmpty()) { szTmp = QString("%1Pass").arg(szPrefix); pCfg->writeEntry(szTmp,m_szPass); } if(!m_szNick.isEmpty()) { szTmp = QString("%1Nick").arg(szPrefix); pCfg->writeEntry(szTmp,m_szNick); } if(!m_szAlternativeNick.isEmpty()) { szTmp = QString("%1AlternativeNick").arg(szPrefix); pCfg->writeEntry(szTmp,m_szAlternativeNick); } if(!m_szSaslPass.isEmpty()) { szTmp = QString("%1SaslPass").arg(szPrefix); pCfg->writeEntry(szTmp,m_szSaslPass); } if(!m_szSaslNick.isEmpty()) { szTmp = QString("%1SaslNick").arg(szPrefix); pCfg->writeEntry(szTmp,m_szSaslNick); } if(!m_szRealName.isEmpty()) { szTmp = QString("%1RealName").arg(szPrefix); pCfg->writeEntry(szTmp,m_szRealName); } if(!m_szInitUMode.isEmpty()) { szTmp = QString("%1InitUMode").arg(szPrefix); pCfg->writeEntry(szTmp,m_szInitUMode); } if(autoJoinChannelList()) { szTmp = QString("%1AutoJoinChannels").arg(szPrefix); pCfg->writeEntry(szTmp,*(autoJoinChannelList())); } if(autoConnect()) // otherwise it defaults to false anyway { szTmp = QString("%1AutoConnect").arg(szPrefix); pCfg->writeEntry(szTmp,autoConnect()); } if(!m_szEncoding.isEmpty()) { szTmp = QString("%1Encoding").arg(szPrefix); pCfg->writeEntry(szTmp,m_szEncoding); } if(!m_szTextEncoding.isEmpty()) { szTmp = QString("%1TextEncoding").arg(szPrefix); pCfg->writeEntry(szTmp,m_szTextEncoding); } if(!m_szOnConnectCommand.isEmpty()) { szTmp = QString("%1OnConnectCommand").arg(szPrefix); pCfg->writeEntry(szTmp,m_szOnConnectCommand); } if(!m_szOnLoginCommand.isEmpty()) { szTmp = QString("%1OnLoginCommand").arg(szPrefix); pCfg->writeEntry(szTmp,m_szOnLoginCommand); } if(!m_szLinkFilter.isEmpty()) { szTmp = QString("%1LinkFilter").arg(szPrefix); pCfg->writeEntry(szTmp,m_szLinkFilter); } if(m_uPort != 6667) { szTmp = QString("%1Port").arg(szPrefix); pCfg->writeEntry(szTmp,m_uPort); } if(isIPv6()) { szTmp = QString("%1IPv6").arg(szPrefix); pCfg->writeEntry(szTmp,isIPv6()); } if(cacheIp()) { szTmp = QString("%1CacheIp").arg(szPrefix); pCfg->writeEntry(szTmp,cacheIp()); } if(useSSL()) { szTmp = QString("%1SSL").arg(szPrefix); pCfg->writeEntry(szTmp,useSSL()); } if(!enabledCAP()) { szTmp = QString("%1EnabledCAP").arg(szPrefix); pCfg->writeEntry(szTmp,enabledCAP()); } if(!enabledSTARTTLS()) { szTmp = QString("%1EnabledSTARTTLS").arg(szPrefix); pCfg->writeEntry(szTmp,enabledSTARTTLS()); } if(enabledSASL()) { szTmp = QString("%1EnabledSASL").arg(szPrefix); pCfg->writeEntry(szTmp,enabledSASL()); } if(proxy()!=-2) { szTmp = QString("%1Proxy").arg(szPrefix); pCfg->writeEntry(szTmp,proxy()); } if(!m_szUserIdentityId.isEmpty()) { szTmp = QString("%1UserIdentityId").arg(szPrefix); pCfg->writeEntry(szTmp,m_szUserIdentityId); } if(favorite()) { szTmp = QString("%1Favorite").arg(szPrefix); pCfg->writeEntry(szTmp,favorite()); } }
OpenRcon::OpenRcon(QWidget *parent) : QMainWindow(parent) { // Initialize the QSettings object. settings = new QSettings(APP_NAME, APP_NAME, this); // Create ServerManager instances. serverManager = new ServerManager(this); sessionManager = new SessionManager(this); // Create dialogs. serverListDialog = new ServerListDialog(this); optionsDialog = new OptionsDialog(this); aboutDialog = new AboutDialog(this); // Sets window title setWindowTitle(QString("%1 %2").arg(APP_NAME).arg(APP_VERSION)); setWindowIcon(QIcon(":/icons/openrcon.png")); // Actions actionServerManager = new QAction(QIcon(":/icons/servermanager.png"), tr("&Servers"), this); actionServerManager->setShortcut(tr("Ctrl+S")); actionServerManager->setToolTip(tr("View and edit servers.")); actionQuit = new QAction(QIcon(":/icons/quit.png"), tr("&Quit"), this); actionQuit->setShortcut(tr("Ctrl+Q")); actionQuickConnect = new QAction(tr("Quickconnect"), this); actionQuickConnect->setCheckable(true); actionOptions = new QAction(QIcon(":/icons/options.png"), tr("&Options"), this); actionOptions->setShortcut(tr("Ctrl+O")); actionDocumentation = new QAction(QIcon(":/icons/documentation.png"), tr("Documentation"), this); actionVisitWebsite = new QAction(QIcon(":/icons/internet.png"), tr("Visit website"), this); actionReportBug = new QAction(QIcon(":/icons/report-bug.png"), tr("Report bug"), this); actionAbout = new QAction(QIcon(APP_ICON), tr("&About %1").arg(APP_NAME), this); actionAbout->setShortcut(tr("Ctrl+A")); actionAboutQt = new QAction(QIcon(":/qt-project.org/qmessagebox/images/qtlogo-64.png"), tr("About Qt"), this); actionAboutQt->setMenuRole(QAction::AboutQtRole); // Menubar menuBar = new QMenuBar(this); menuApplication = menuBar->addMenu(tr("Application")); menuApplication->addAction(actionServerManager); menuApplication->addSeparator(); menuApplication->addAction(actionQuit); menuView = menuBar->addMenu(tr("View")); menuToolbars = menuView->addMenu(tr("Toolbars")); menuToolbars->addAction(actionQuickConnect); menuTools = menuBar->addMenu(tr("Tools")); menuTools->addAction(actionOptions); menuHelp = menuBar->addMenu(tr("Help")); menuHelp->addAction(actionDocumentation); menuHelp->addAction(actionVisitWebsite); menuHelp->addAction(actionReportBug); menuHelp->addSeparator(); menuHelp->addAction(actionAbout); menuHelp->addAction(actionAboutQt); setMenuBar(menuBar); // Toolbar toolBar_quickConnect = new QToolBar(tr("Quick Connect"), this); toolBar_quickConnect->setFloatable(false); comboBox_quickConnect_server = new QComboBox(toolBar_quickConnect); comboBox_quickConnect_server->setToolTip(tr("Let's you select a prevously stored server.")); pushButton_quickConnect_connect = new QPushButton(tr("Connect"), toolBar_quickConnect); pushButton_quickConnect_connect->setToolTip(tr("Connect's to the server selected in the combobox.")); toolBar_quickConnect->addAction(actionServerManager); toolBar_quickConnect->addWidget(comboBox_quickConnect_server); toolBar_quickConnect->addWidget(pushButton_quickConnect_connect); addToolBar(toolBar_quickConnect); // TabWidget tabWidget = new QTabWidget(this); tabWidget->setDocumentMode(true); tabWidget->setMovable(true); tabWidget->setTabsClosable(true); setCentralWidget(tabWidget); // Statusbar statusBar = new QStatusBar(this); setStatusBar(statusBar); // Create and read settings readSettings(); // Autoconnect serverentries which has the autoconnect option set to true. autoConnect(); // Loads the server list from ServerManager. updateServerList(); // Actions connect(actionServerManager, &QAction::triggered, this, &OpenRcon::actionServerManager_triggered); connect(actionQuit, &QAction::triggered, this, &OpenRcon::close); connect(actionQuickConnect, &QAction::triggered, this, &OpenRcon::actionQuickConnect_triggered); connect(actionOptions, &QAction::triggered, this, &OpenRcon::actionOptions_triggered); connect(actionDocumentation, &QAction::triggered, this, &OpenRcon::actionDocumentation_triggered); connect(actionVisitWebsite, &QAction::triggered, this, &OpenRcon::actionVisitWebsite_triggered); connect(actionReportBug, &QAction::triggered, this, &OpenRcon::actionReportBug_triggered); connect(actionAbout, &QAction::triggered, this, &OpenRcon::actionAbout_triggered); connect(actionAboutQt, &QAction::triggered, this, &OpenRcon::actionAboutQt_triggered); // Toolbars connect(pushButton_quickConnect_connect, &QPushButton::clicked, this, &OpenRcon::pushButton_quickConnect_connect_clicked); connect(serverManager, &ServerManager::onServerUpdated, this, &OpenRcon::updateServerList); connect(sessionManager, &SessionManager::onServerConnected, this, &OpenRcon::updateServerList); // TabWidget connect(tabWidget, &QTabWidget::tabCloseRequested, this, &OpenRcon::closeTab); }
void MainWindow::on_buttonUpload_clicked() { //if connected if(connection==1) { //auto disconnection autoDisconnect(); //there was a connection before oldconnection=1; } //temporary disable interface ui->buttonUpload->setEnabled(0); ui->buttonConnect->setEnabled(0); ui->cardComboBox->setEnabled(0); ui->speedComboBox->setEnabled(0); ui->portComboBox->setEnabled(0); ui->optionsLine->setEnabled(0); //set up upload information window infoUpload.setWindowTitle("Upload information"); infoUpload.setMinimumSize(800,400); infoUpload.setStyleSheet("background-color: black; color: white;"); //show upload information window infoUpload.show(); //raise upload information window infoUpload.raise(); //start upload process procUpload->start("avrdude -q "+ui->optionsLine->text()+" -p "+ui->cardComboBox->currentText()+" -c arduino -P "+ui->portComboBox->currentText()+" -b "+ui->speedComboBox->currentText()+" -U flash:w:"+hexName); //display panda message ui->pandaLabel->setText("Upload complete ! *dreaming*"); //wait 2 sec delay(2000); //if disconnected and there was a connection before if((connection==0)&&(oldconnection==1)) { //auto connection autoConnect(); //reset old connection watcher oldconnection=0; } //if .hex complete directory path at default if(buildDir!="0") //enable upload button ui->buttonUpload->setEnabled(1); //enable interface ui->buttonConnect->setEnabled(1); ui->cardComboBox->setEnabled(1); ui->speedComboBox->setEnabled(1); ui->portComboBox->setEnabled(1); ui->optionsLine->setEnabled(1); }