void HlpFlightPlannerApp::displayMapToolMessage( QString message, QgsMessageBar::MessageLevel level ) { // remove previous message mInfoBar->popWidget( mLastMapToolMessage ); QgsMapTool* tool = mMapCanvas->mapTool(); if ( tool ) { mLastMapToolMessage = new QgsMessageBarItem( tool->toolName(), message, level, messageTimeout() ); mInfoBar->pushItem( mLastMapToolMessage ); } }
void MeteorShowersMgr::init() { loadTextures(); m_meteorShowers = new MeteorShowers(this); m_configDialog = new MSConfigDialog(this); m_searchDialog = new MSSearchDialog(this); createActions(); loadConfig(); // timer to hide the alert messages m_messageTimer = new QTimer(this); m_messageTimer->setSingleShot(true); m_messageTimer->setInterval(9000); m_messageTimer->stop(); connect(m_messageTimer, SIGNAL(timeout()), this, SLOT(messageTimeout())); // MeteorShowers directory QString userDir = StelFileMgr::getUserDir() + "/modules/MeteorShowers"; StelFileMgr::makeSureDirExistsAndIsWritable(userDir); // Loads the JSON catalog m_catalogPath = userDir + "/showers.json"; if (!loadCatalog(m_catalogPath)) { displayMessage(q_("The current catalog of Meteor Showers is invalid!"), "#bb0000"); restoreDefaultCatalog(m_catalogPath); } // Sets up the download manager m_downloadMgr = new QNetworkAccessManager(this); connect(m_downloadMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(updateFinished(QNetworkReply*))); // every 5 min, check if it's time to update QTimer* updateTimer = new QTimer(this); updateTimer->setInterval(300000); connect(updateTimer, SIGNAL(timeout()), this, SLOT(checkForUpdates())); updateTimer->start(); checkForUpdates(); // always check if we are on Earth StelCore* core = StelApp::getInstance().getCore(); m_onEarth = core->getCurrentPlanet().data()->getEnglishName() == "Earth"; connect(core, SIGNAL(locationChanged(StelLocation)), this, SLOT(locationChanged(StelLocation))); // enable at startup? setEnablePlugin(getEnableAtStartup()); }
UtlBoolean removeMessage(OsMsgQ& messageQueue, int waitMilliSeconds, const SipMessage*& message) { UtlBoolean gotMessage = FALSE; message = NULL; OsTime messageTimeout(0, waitMilliSeconds * 1000); OsMsg* osMessage = NULL; messageQueue.receive(osMessage, messageTimeout); if(osMessage) { int msgType = osMessage->getMsgType(); int msgSubType = osMessage->getMsgSubType(); int messageType = ((SipMessageEvent*)osMessage)->getMessageStatus(); if(msgType == OsMsg::PHONE_APP && msgSubType == SipMessage::NET_SIP_MESSAGE && messageType == SipMessageEvent::APPLICATION) { message = ((SipMessageEvent*)osMessage)->getMessage(); gotMessage = TRUE; #ifdef TEST_PRINT if(message) { UtlString messageBytes; int len; message->getBytes(&messageBytes, &len); printf("%s", messageBytes.data()); } else { printf("removeMessage: messageBytes: <null>\n"); } #endif } } return(gotMessage); }
void QgsAuthEditorWidgets::clearCachedMasterPassword() { QgsAuthGuiUtils::clearCachedMasterPassword( messageBar(), messageTimeout() ); }
void QgsAuthConfigEditor::eraseAuthenticationDatabase() { QgsAuthUtils::eraseAuthenticationDatabase( messageBar(), messageTimeout(), this ); }
void QgsAuthConfigEditor::removeAuthenticationConfigs() { QgsAuthUtils::removeAuthenticationConfigs( messageBar(), messageTimeout(), this ); }
/* Init our module */ void Exoplanets::init() { try { StelFileMgr::makeSureDirExistsAndIsWritable(StelFileMgr::getUserDir()+"/modules/Exoplanets"); // If no settings in the main config file, create with defaults if (!conf->childGroups().contains("Exoplanets")) { qDebug() << "Exoplanets::init no Exoplanets section exists in main config file - creating with defaults"; restoreDefaultConfigIni(); } // populate settings from main config file. readSettingsFromConfig(); jsonCatalogPath = StelFileMgr::findFile("modules/Exoplanets", (StelFileMgr::Flags)(StelFileMgr::Directory|StelFileMgr::Writable)) + "/exoplanets.json"; // key bindings and other actions StelGui* gui = dynamic_cast<StelGui*>(StelApp::getInstance().getGui()); GlowIcon = new QPixmap(":/graphicsGui/glow32x32.png"); OnIcon = new QPixmap(":/Exoplanets/btExoplanets-on.png"); OffIcon = new QPixmap(":/Exoplanets/btExoplanets-off.png"); gui->getGuiAction("actionShow_Exoplanets")->setChecked(flagShowExoplanets); toolbarButton = new StelButton(NULL, *OnIcon, *OffIcon, *GlowIcon, gui->getGuiAction("actionShow_Exoplanets")); gui->getButtonBar()->addButton(toolbarButton, "065-pluginsGroup"); connect(gui->getGuiAction("actionShow_Exoplanets_ConfigDialog"), SIGNAL(toggled(bool)), exoplanetsConfigDialog, SLOT(setVisible(bool))); connect(exoplanetsConfigDialog, SIGNAL(visibleChanged(bool)), gui->getGuiAction("actionShow_Exoplanets_ConfigDialog"), SLOT(setChecked(bool))); connect(gui->getGuiAction("actionShow_Exoplanets"), SIGNAL(toggled(bool)), this, SLOT(setFlagShowExoplanets(bool))); } catch (std::runtime_error &e) { qWarning() << "Exoplanets::init error: " << e.what(); return; } // A timer for hiding alert messages messageTimer = new QTimer(this); messageTimer->setSingleShot(true); // recurring check for update messageTimer->setInterval(9000); // 6 seconds should be enough time messageTimer->stop(); connect(messageTimer, SIGNAL(timeout()), this, SLOT(messageTimeout())); // If the json file does not already exist, create it from the resource in the Qt resource if(QFileInfo(jsonCatalogPath).exists()) { if (getJsonFileVersion() < CATALOG_FORMAT_VERSION) { restoreDefaultJsonFile(); } } else { qDebug() << "Exoplanets::init catalog.json does not exist - copying default file to " << jsonCatalogPath; restoreDefaultJsonFile(); } qDebug() << "Exoplanets::init using catalog.json file: " << jsonCatalogPath; readJsonFile(); // Set up download manager and the update schedule downloadMgr = new QNetworkAccessManager(this); connect(downloadMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(updateDownloadComplete(QNetworkReply*))); updateState = CompleteNoUpdates; updateTimer = new QTimer(this); updateTimer->setSingleShot(false); // recurring check for update updateTimer->setInterval(13000); // check once every 13 seconds to see if it is time for an update connect(updateTimer, SIGNAL(timeout()), this, SLOT(checkForUpdate())); updateTimer->start(); GETSTELMODULE(StelObjectMgr)->registerStelObjectMgr(this); }
/* Init our module */ void Quasars::init() { upgradeConfigIni(); try { StelFileMgr::makeSureDirExistsAndIsWritable(StelFileMgr::getUserDir()+"/modules/Quasars"); // If no settings in the main config file, create with defaults if (!conf->childGroups().contains("Quasars")) { qDebug() << "Quasars: no Quasars section exists in main config file - creating with defaults"; restoreDefaultConfigIni(); } // populate settings from main config file. readSettingsFromConfig(); catalogJsonPath = StelFileMgr::findFile("modules/Quasars", (StelFileMgr::Flags)(StelFileMgr::Directory|StelFileMgr::Writable)) + "/quasars.json"; if (catalogJsonPath.isEmpty()) return; texPointer = StelApp::getInstance().getTextureManager().createTexture(StelFileMgr::getInstallationDir()+"/textures/pointeur2.png"); Quasar::markerTexture = StelApp::getInstance().getTextureManager().createTexture(":/Quasars/quasar.png"); // key bindings and other actions addAction("actionShow_Quasars", N_("Quasars"), N_("Show quasars"), "quasarsVisible", "Ctrl+Alt+Q"); addAction("actionShow_Quasars_ConfigDialog", N_("Quasars"), N_("Quasars configuration window"), configDialog, "visible"); GlowIcon = new QPixmap(":/graphicGui/glow32x32.png"); OnIcon = new QPixmap(":/Quasars/btQuasars-on.png"); OffIcon = new QPixmap(":/Quasars/btQuasars-off.png"); setFlagShowQuasars(getEnableAtStartup()); setFlagShowQuasarsButton(flagShowQuasarsButton); } catch (std::runtime_error &e) { qWarning() << "Quasars: init error:" << e.what(); return; } // A timer for hiding alert messages messageTimer = new QTimer(this); messageTimer->setSingleShot(true); // recurring check for update messageTimer->setInterval(9000); // 6 seconds should be enough time messageTimer->stop(); connect(messageTimer, SIGNAL(timeout()), this, SLOT(messageTimeout())); // If the json file does not already exist, create it from the resource in the Qt resource if(QFileInfo(catalogJsonPath).exists()) { if (!checkJsonFileFormat() || getJsonFileFormatVersion()<CATALOG_FORMAT_VERSION) { restoreDefaultJsonFile(); } } else { qDebug() << "Quasars: quasars.json does not exist - copying default file to" << QDir::toNativeSeparators(catalogJsonPath); restoreDefaultJsonFile(); } qDebug() << "Quasars: loading catalog file:" << QDir::toNativeSeparators(catalogJsonPath); readJsonFile(); // Set up download manager and the update schedule downloadMgr = new QNetworkAccessManager(this); connect(downloadMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(updateDownloadComplete(QNetworkReply*))); updateState = CompleteNoUpdates; updateTimer = new QTimer(this); updateTimer->setSingleShot(false); // recurring check for update updateTimer->setInterval(13000); // check once every 13 seconds to see if it is time for an update connect(updateTimer, SIGNAL(timeout()), this, SLOT(checkForUpdate())); updateTimer->start(); GETSTELMODULE(StelObjectMgr)->registerStelObjectMgr(this); }
void QgsAuthEditorWidgets::removeAuthenticationConfigs() { QgsAuthGuiUtils::removeAuthenticationConfigs( messageBar(), messageTimeout(), this ); }
// XECS-1810: Verify that subscription is *not* terminated when NOTIFY // returns a Timeout error. void terminateSubscriptionOnErrorTimeout() { // Test MWI messages const char* mwiSubscribe = "SUBSCRIBE sip:111@localhost SIP/2.0\r\n" "From: <sip:[email protected]>;tag=1612c1612\r\n" "To: <sip:[email protected]>\r\n" "Cseq: 1 SUBSCRIBE\r\n" "Event: message-summary\r\n" "Accept: application/simple-message-summary\r\n" "Expires: 3600\r\n" "Date: Tue, 4 Nov 2008 15:59:30 GMT\r\n" "Max-Forwards: 20\r\n" "User-Agent: Pingtel/2.2.0 (VxWorks)\r\n" "Accept-Language: en\r\n" "Supported: sip-cc, sip-cc-01, timer, replaces\r\n" "Content-Length: 0\r\n" "\r\n"; // Send a SUBSCRIBE to ourselves SipMessage mwiSubscribeRequest(mwiSubscribe); { UtlString c; CallId::getNewCallId(c); mwiSubscribeRequest.setCallIdField(c); } mwiSubscribeRequest.setSipRequestFirstHeaderLine(SIP_SUBSCRIBE_METHOD, aor, SIP_PROTOCOL_VERSION); mwiSubscribeRequest.setContactField(aor_name_addr); mwiSubscribeRequest.incrementCSeqNumber(); CPPUNIT_ASSERT(userAgentp->send(mwiSubscribeRequest)); // We should get a 202 response and a NOTIFY request in the queue // Send a Timeout error response to the NOTIFY. OsTime messageTimeout(1, 0); // 1 second { const SipMessage* subscribeResponse; const SipMessage* notifyRequest; runListener(incomingClientMsgQueue, *userAgentp, messageTimeout, messageTimeout, notifyRequest, subscribeResponse, SIP_REQUEST_TIMEOUT_CODE, FALSE, 0, NULL); // We should have received a SUBSCRIBE response and a NOTIFY request. CPPUNIT_ASSERT(subscribeResponse); CPPUNIT_ASSERT(subscribeResponse->getResponseStatusCode() == SIP_ACCEPTED_CODE); CPPUNIT_ASSERT(notifyRequest); // Extract the to-tag in the response, apply it to mwiSubscribeRequest. // This allows the re-SUBSCRIBE below to be applied to the existing dialog. Url toUrl; subscribeResponse->getToUrl(toUrl); UtlString toTag; toUrl.getFieldParameter("tag", toTag); mwiSubscribeRequest.setToFieldTag(toTag); } // Send a re-SUBSCRIBE in the existing dialog, to find out if the // subscription was terminated or not. mwiSubscribeRequest.incrementCSeqNumber(); // Leave the Expires header with the default value. CPPUNIT_ASSERT(userAgentp->send(mwiSubscribeRequest)); // We should get a 202 response and a NOTIFY, because the Timeout // error suppresses the termination of the subscription. { const SipMessage* subscribeResponse; const SipMessage* notifyRequest; runListener(incomingClientMsgQueue, *userAgentp, messageTimeout, messageTimeout, notifyRequest, subscribeResponse, SIP_OK_CODE, FALSE, 0, NULL); // We should have received a SUBSCRIBE response and no NOTIFY request. CPPUNIT_ASSERT(subscribeResponse); CPPUNIT_ASSERT(notifyRequest); CPPUNIT_ASSERT(subscribeResponse->getResponseStatusCode() == SIP_ACCEPTED_CODE); } }
// Test for XECS-247, When subscribe server receives 481 for a // NOTIFY, it does not terminate the subscription. // Test for XECS-282, When subscribe server receives 500 for a // NOTIFY, it does not terminate the subscription. // Verify that subscription is terminated when NOTIFY returns a variety // of error responses. (Retry-After suppresses termination. That case // is tested in terminateSubscriptionOnErrorRetryAfter.) void terminateSubscriptionOnError() { // Test MWI messages const char* mwiSubscribe = "SUBSCRIBE sip:111@localhost SIP/2.0\r\n" "From: <sip:[email protected]>;tag=1612c1612\r\n" "To: <sip:[email protected]>\r\n" "Cseq: 1 SUBSCRIBE\r\n" "Event: message-summary\r\n" "Accept: application/simple-message-summary\r\n" "Expires: 3600\r\n" "Date: Tue, 26 Apr 2005 14:59:30 GMT\r\n" "Max-Forwards: 20\r\n" "User-Agent: Pingtel/2.2.0 (VxWorks)\r\n" "Accept-Language: en\r\n" "Supported: sip-cc, sip-cc-01, timer, replaces\r\n" "Content-Length: 0\r\n" "\r\n"; // Loop through this scenario for a series of response codes. int test_codes[] = { SIP_BAD_REQUEST_CODE, SIP_NOT_FOUND_CODE, SIP_BAD_TRANSACTION_CODE, 499, SIP_SERVER_INTERNAL_ERROR_CODE, SIP_SERVICE_UNAVAILABLE_CODE, 599, SIP_GLOBAL_BUSY_CODE, 699 }; for (unsigned int i = 0; i < sizeof (test_codes) / sizeof (test_codes[0]); i++) { // Send a SUBSCRIBE to ourselves SipMessage mwiSubscribeRequest(mwiSubscribe); { UtlString c; CallId::getNewCallId(c); mwiSubscribeRequest.setCallIdField(c); } mwiSubscribeRequest.setSipRequestFirstHeaderLine(SIP_SUBSCRIBE_METHOD, aor, SIP_PROTOCOL_VERSION); mwiSubscribeRequest.setContactField(aor_name_addr); mwiSubscribeRequest.incrementCSeqNumber(); CPPUNIT_ASSERT(userAgentp->send(mwiSubscribeRequest)); // We should get a 202 response and a NOTIFY request in the queue // Send the specified response to the NOTIFY. OsTime messageTimeout(1, 0); // 1 second { const SipMessage* subscribeResponse; const SipMessage* notifyRequest; runListener(incomingClientMsgQueue, *userAgentp, messageTimeout, messageTimeout, notifyRequest, subscribeResponse, test_codes[i], FALSE, 0, NULL); // We should have received a SUBSCRIBE response and a NOTIFY request. CPPUNIT_ASSERT(subscribeResponse); // Extract the to-tag in the response, apply it to // mwiSubscribeRequest. Url toUrl; subscribeResponse->getToUrl(toUrl); UtlString toTag; toUrl.getFieldParameter("tag", toTag); mwiSubscribeRequest.setToFieldTag(toTag); CPPUNIT_ASSERT(notifyRequest); CPPUNIT_ASSERT(subscribeResponse->getResponseStatusCode() == SIP_ACCEPTED_CODE); } // Wait for the subscription to be ended. OsTask::delay(100); // Send a re-SUBSCRIBE in the existing dialog, to find out if the // subscription was terminated or not. mwiSubscribeRequest.incrementCSeqNumber(); // Leave the Expires header with the default value. CPPUNIT_ASSERT(userAgentp->send(mwiSubscribeRequest)); // We should get a 481 response and no NOTIFY, because the // subscription has been terminated. { const SipMessage* subscribeResponse; const SipMessage* notifyRequest; runListener(incomingClientMsgQueue, *userAgentp, messageTimeout, messageTimeout, notifyRequest, subscribeResponse, SIP_OK_CODE, FALSE, 0, NULL); // We should have received a SUBSCRIBE response and no NOTIFY request. CPPUNIT_ASSERT(subscribeResponse); CPPUNIT_ASSERT(subscribeResponse->getResponseStatusCode() == SIP_BAD_TRANSACTION_CODE); CPPUNIT_ASSERT(!notifyRequest); } } }
// Test for XECS-243, Subscribe Server does not send NOTIFY when it // processes a re-SUBSCRIBE. //*** Error scenario not yet reproduced. void resubscribeContentTest() { // Test MWI messages const char* mwiSubscribe = "SUBSCRIBE sip:111@localhost SIP/2.0\r\n" "From: <sip:[email protected]>;tag=1612c1612\r\n" "To: <sip:[email protected]>\r\n" "Cseq: 1 SUBSCRIBE\r\n" "Event: message-summary\r\n" "Accept: application/simple-message-summary\r\n" "Expires: 3600\r\n" "Date: Tue, 26 Apr 2005 14:59:30 GMT\r\n" "Max-Forwards: 20\r\n" "User-Agent: Pingtel/2.2.0 (VxWorks)\r\n" "Accept-Language: en\r\n" "Supported: sip-cc, sip-cc-01, timer, replaces\r\n" "Content-Length: 0\r\n" "\r\n"; // Send a SUBSCRIBE to ourselves SipMessage mwiSubscribeRequest(mwiSubscribe); { UtlString c; CallId::getNewCallId(c); mwiSubscribeRequest.setCallIdField(c); } mwiSubscribeRequest.setSipRequestFirstHeaderLine(SIP_SUBSCRIBE_METHOD, aor, SIP_PROTOCOL_VERSION); mwiSubscribeRequest.setContactField(aor_name_addr); CPPUNIT_ASSERT(userAgentp->send(mwiSubscribeRequest)); // We should get a 202 response and a NOTIFY request in the queue // Send a 500 response to the NOTIFY. OsTime messageTimeout(1, 0); // 1 second { const SipMessage* subscribeResponse; const SipMessage* notifyRequest; runListener(incomingClientMsgQueue, *userAgentp, messageTimeout, messageTimeout, notifyRequest, subscribeResponse, SIP_SERVER_INTERNAL_ERROR_CODE, FALSE, 0, NULL); // We should have received a SUBSCRIBE response and a NOTIFY request. CPPUNIT_ASSERT(subscribeResponse); CPPUNIT_ASSERT(notifyRequest); CPPUNIT_ASSERT(subscribeResponse->getResponseStatusCode() == SIP_ACCEPTED_CODE); // The NOTIFY should have no body because none has been published yet. { const HttpBody* bodyPtr = notifyRequest->getBody(); CPPUNIT_ASSERT(bodyPtr == NULL); } } // Send a re-SUBSCRIBE mwiSubscribeRequest.incrementCSeqNumber(); // Leave the Expires header with the default value. CPPUNIT_ASSERT(userAgentp->send(mwiSubscribeRequest)); // We should get a 202 response and a NOTIFY request in the queue { const SipMessage* subscribeResponse; const SipMessage* notifyRequest; runListener(incomingClientMsgQueue, *userAgentp, messageTimeout, messageTimeout, notifyRequest, subscribeResponse, SIP_OK_CODE, FALSE, 0, NULL); // We should have received a SUBSCRIBE response and a NOTIFY request. CPPUNIT_ASSERT(subscribeResponse); CPPUNIT_ASSERT(notifyRequest); CPPUNIT_ASSERT(subscribeResponse->getResponseStatusCode() == SIP_ACCEPTED_CODE); // The NOTIFY should have no body because none has been published yet. { const HttpBody* bodyPtr = notifyRequest->getBody(); CPPUNIT_ASSERT(bodyPtr == NULL); } } }
// Basic server functionality test. // Checks that server answers SUBSCRIBES, sends NOTIFY, sends NOTIFY // when content changes. void basicSubscriptionTest() { // Verify that authentication and authorization are // disabled by default. { SipSubscribeServerEventHandler* eventHandler = subServerp->getEventHandler(eventName); CPPUNIT_ASSERT(eventHandler); SipMessage bogusSubscribeRequest; SipMessage bogusSubscribeResponse; CPPUNIT_ASSERT(eventHandler->isAuthenticated(bogusSubscribeRequest, bogusSubscribeResponse)); CPPUNIT_ASSERT(eventHandler->isAuthorized(bogusSubscribeRequest, bogusSubscribeResponse)); } // Send a SUBSCRIBE to the notifier. SipMessage mwiSubscribeRequest; { UtlString c; CallId::getNewCallId(c); mwiSubscribeRequest.setSubscribeData(notifier_aor, // request URI subscriber_name_addr, // From notifier_name_addr, // To c, // Call-Id 0, // CSeq eventName, // Event mwiMimeType, // Accept NULL, // Event id subscriber_name_addr, // Contact NULL, // Route 3600 // Expires ); } CPPUNIT_ASSERT(subscriberUserAgentp->send(mwiSubscribeRequest)); // We should get a 202 response and a NOTIFY request in the queue OsTime messageTimeout(1, 0); // 1 second { const SipMessage* subscribeResponse; const SipMessage* notifyRequest; runListener(incomingClientMsgQueue, *subscriberUserAgentp, messageTimeout, messageTimeout, notifyRequest, subscribeResponse, SIP_OK_CODE, FALSE, 0, NULL); // We should have received a SUBSCRIBE response and a NOTIFY request. CPPUNIT_ASSERT(subscribeResponse); CPPUNIT_ASSERT(notifyRequest); // Check that the response code and CSeq method in the // subscribe response are OK. { CPPUNIT_ASSERT(subscribeResponse->getResponseStatusCode() == SIP_ACCEPTED_CODE); UtlString subscribeMethod; subscribeResponse->getCSeqField(NULL, &subscribeMethod); ASSERT_STR_EQUAL(SIP_SUBSCRIBE_METHOD, subscribeMethod.data()); } // Check that the method in the notify request is OK. { UtlString notifyMethod; notifyRequest->getRequestMethod(¬ifyMethod); ASSERT_STR_EQUAL(SIP_NOTIFY_METHOD, notifyMethod.data()); } // Check that the Event header in the NOTIFY is the same as the // one in the SUBSCRIBE. { UtlString notifyEventHeader; UtlString subscribeEventHeader; notifyRequest->getEventField(notifyEventHeader); mwiSubscribeRequest.getEventField(subscribeEventHeader); ASSERT_STR_EQUAL(subscribeEventHeader, notifyEventHeader); } // The NOTIFY should have no body because none has been published yet. { const HttpBody* bodyPtr = notifyRequest->getBody(); CPPUNIT_ASSERT(bodyPtr == NULL); } // The Contact in the subscribe response should be the notifier. ASSERT_STR_EQUAL(notifier_contact_name_addr, subscribeResponse-> getHeaderValue(0, SIP_CONTACT_FIELD)); // The Contact in the NOTIFY should be the notifier. CPPUNIT_ASSERT(notifyRequest-> getHeaderValue(0, SIP_CONTACT_FIELD)); ASSERT_STR_EQUAL(notifier_contact_name_addr, notifyRequest-> getHeaderValue(0, SIP_CONTACT_FIELD)); } // Publish some content (mwiStateString) for this resourceID { HttpBody* newMwiBodyPtr = new HttpBody(mwiStateString, strlen(mwiStateString), mwiMimeType); SipPublishContentMgr* publishMgr = subServerp->getPublishMgr(eventName); CPPUNIT_ASSERT(publishMgr); publishMgr->publish(notifier_resource_id, eventName, eventName, 1, &newMwiBodyPtr); } // Should get a NOTIFY queued up { const SipMessage* subscribeResponse; const SipMessage* secondNotify; runListener(incomingClientMsgQueue, *subscriberUserAgentp, messageTimeout, messageTimeout, secondNotify, subscribeResponse, SIP_OK_CODE, FALSE, 0, NULL); CPPUNIT_ASSERT(secondNotify); CPPUNIT_ASSERT(subscribeResponse == NULL); // Check that the body of the NOTIFY is what we expect (mwiStateString). { const HttpBody* secondNotifyBody = secondNotify->getBody(); CPPUNIT_ASSERT(secondNotifyBody); ssize_t notifyBodySize; const char* notifyBodyBytes; secondNotifyBody->getBytes(¬ifyBodyBytes, ¬ifyBodySize); CPPUNIT_ASSERT(notifyBodyBytes); ASSERT_STR_EQUAL(mwiStateString, notifyBodyBytes); } // Check that the Dialog Manager reports that the dialog handle is OK. { UtlString secondNotifyDialogHandle; secondNotify->getDialogHandle(secondNotifyDialogHandle); CPPUNIT_ASSERT(!secondNotifyDialogHandle.isNull()); CPPUNIT_ASSERT(dialogMgrp->dialogExists(secondNotifyDialogHandle)); CPPUNIT_ASSERT(dialogMgrp->countDialogs() == 1); } } // Create a new one-time SUBSCRIBE SipMessage oneTimeMwiSubscribeRequest; { UtlString c; CallId::getNewCallId(c); oneTimeMwiSubscribeRequest. setSubscribeData(notifier_aor, // request URI subscriber_name_addr, // From notifier_name_addr, // To c, // Call-Id 0, // CSeq eventName, // Event mwiMimeType, // Accept NULL, // Event id subscriber_name_addr, // Contact NULL, // Route 0 // Expires ); } CPPUNIT_ASSERT(subscriberUserAgentp->send(oneTimeMwiSubscribeRequest)); { const SipMessage* oneTimeNotifyRequest; const SipMessage* oneTimeSubscribeResponse; runListener(incomingClientMsgQueue, *subscriberUserAgentp, messageTimeout, messageTimeout, oneTimeNotifyRequest, oneTimeSubscribeResponse, SIP_OK_CODE, FALSE, 0, NULL); // Validate the one time subscribe response and notify request CPPUNIT_ASSERT(oneTimeSubscribeResponse); CPPUNIT_ASSERT(oneTimeNotifyRequest); { CPPUNIT_ASSERT(oneTimeSubscribeResponse->getResponseStatusCode() == SIP_ACCEPTED_CODE); UtlString oneTimeSubscribeMethod; oneTimeSubscribeResponse->getCSeqField(NULL, &oneTimeSubscribeMethod); ASSERT_STR_EQUAL(SIP_SUBSCRIBE_METHOD, oneTimeSubscribeMethod.data()); UtlString oneTimeSubscribeEventHeader; oneTimeSubscribeResponse->getEventField(oneTimeSubscribeEventHeader); // The Event: header never appears in responses -- see RFC 3265 section 7.2. // The "R" in the "where" column means that "Event" appears only in // requests -- see RFC 3261 table 2 and page 160. ASSERT_STR_EQUAL("", oneTimeSubscribeEventHeader); } { UtlString oneTimeNotifyMethod; oneTimeNotifyRequest->getRequestMethod(&oneTimeNotifyMethod); ASSERT_STR_EQUAL(SIP_NOTIFY_METHOD, oneTimeNotifyMethod.data()); UtlString oneTimeNotifyEventHeader; oneTimeNotifyRequest->getEventField(oneTimeNotifyEventHeader); // The Event: header should appear in the NOTIFY. ASSERT_STR_EQUAL(SIP_EVENT_MESSAGE_SUMMARY, oneTimeNotifyEventHeader); } { const HttpBody* oneTimeBodyPtr = oneTimeNotifyRequest->getBody(); CPPUNIT_ASSERT(oneTimeBodyPtr != NULL); const char* oneTimeBodyString; ssize_t oneTimeNotifyBodySize; oneTimeBodyPtr->getBytes(&oneTimeBodyString, &oneTimeNotifyBodySize); ASSERT_STR_EQUAL(mwiStateString, oneTimeBodyString); } { UtlString oneTimeNotifyDialogHandle; oneTimeNotifyRequest->getDialogHandle(oneTimeNotifyDialogHandle); CPPUNIT_ASSERT(!oneTimeNotifyDialogHandle.isNull()); CPPUNIT_ASSERT(dialogMgrp->dialogExists(oneTimeNotifyDialogHandle)); CPPUNIT_ASSERT(dialogMgrp->countDialogs() == 2); long now = OsDateTime::getSecsSinceEpoch(); subMgrp->removeOldSubscriptions(now + 1); // The one time subscription should get garbage collected // leaving only the persistant 3600 second subscription CPPUNIT_ASSERT(dialogMgrp->countDialogs() == 1); } } }
void QgsAuthConfigEditor::setMasterPassword() { QgsAuthGuiUtils::setMasterPassword( messageBar(), messageTimeout() ); }
void QgsAuthEditorWidgets::resetMasterPassword() { QgsAuthGuiUtils::resetMasterPassword( messageBar(), messageTimeout(), this ); }
void QgsAuthEditorWidgets::clearCachedAuthenticationConfigs() { QgsAuthGuiUtils::clearCachedAuthenticationConfigs( messageBar(), messageTimeout() ); }
// Check the Contact header of responses to SUBSCRIBE. // Check the Contact header of NOTIFY. // XECS-297 and XECS-298. void responseContact() { // Test MWI messages const char* mwiSubscribe = "SUBSCRIBE sip:111@localhost SIP/2.0\r\n" "From: <sip:[email protected]>;tag=1612c1612\r\n" "To: <sip:[email protected]>\r\n" "Cseq: 1 SUBSCRIBE\r\n" "Event: message-summary\r\n" "Accept: application/simple-message-summary\r\n" "Expires: 3600\r\n" "Date: Tue, 26 Apr 2005 14:59:30 GMT\r\n" "Max-Forwards: 20\r\n" "User-Agent: Pingtel/2.2.0 (VxWorks)\r\n" "Accept-Language: en\r\n" "Supported: sip-cc, sip-cc-01, timer, replaces\r\n" "Content-Length: 0\r\n" "\r\n"; // Send a SUBSCRIBE to ourselves SipMessage mwiSubscribeRequest(mwiSubscribe); { UtlString c; CallId::getNewCallId(c); mwiSubscribeRequest.setCallIdField(c); } mwiSubscribeRequest.setSipRequestFirstHeaderLine(SIP_SUBSCRIBE_METHOD, aor, SIP_PROTOCOL_VERSION); mwiSubscribeRequest.setContactField(aor_name_addr); CPPUNIT_ASSERT(userAgentp->send(mwiSubscribeRequest)); // We should get a 202 response and a NOTIFY request in the queue // Send the specified response to the NOTIFY. OsTime messageTimeout(1, 0); // 1 second { const SipMessage* subscribeResponse; const SipMessage* notifyRequest; runListener(incomingClientMsgQueue, *userAgentp, messageTimeout, messageTimeout, notifyRequest, subscribeResponse, SIP_OK_CODE, FALSE, 0, NULL); // We should have received a SUBSCRIBE response and a NOTIFY request. CPPUNIT_ASSERT(subscribeResponse); CPPUNIT_ASSERT(notifyRequest); CPPUNIT_ASSERT(subscribeResponse->getResponseStatusCode() == SIP_ACCEPTED_CODE); // Check the Contact headers. UtlString c; subscribeResponse->getContactField(0, c); ASSERT_STR_EQUAL(aor_contact_name_addr, c.data()); notifyRequest->getContactField(0, c); ASSERT_STR_EQUAL(aor_contact_name_addr, c.data()); } }
void QgsAuthEditorWidgets::eraseAuthenticationDatabase() { QgsAuthGuiUtils::eraseAuthenticationDatabase( messageBar(), messageTimeout(), this ); }
void QgsAuthConfigEditor::clearCachedMasterPassword() { QgsAuthUtils::clearCachedMasterPassword( messageBar(), messageTimeout() ); }
void QgsAuthConfigEditor::resetMasterPassword() { QgsAuthUtils::resetMasterPassword( messageBar(), messageTimeout(), this ); }
void QgsAuthConfigEditor::clearCachedAuthenticationConfigs() { QgsAuthUtils::clearCachedAuthenticationConfigs( messageBar(), messageTimeout() ); }
/* Init our module */ void Novae::init() { try { StelFileMgr::makeSureDirExistsAndIsWritable(StelFileMgr::getUserDir()+"/modules/Novae"); // If no settings in the main config file, create with defaults if (!conf->childGroups().contains("Novae")) { qDebug() << "Novae: no Novae section exists in main config file - creating with defaults"; restoreDefaultConfigIni(); } // populate settings from main config file. readSettingsFromConfig(); novaeJsonPath = StelFileMgr::findFile("modules/Novae", (StelFileMgr::Flags)(StelFileMgr::Directory|StelFileMgr::Writable)) + "/novae.json"; if (novaeJsonPath.isEmpty()) return; texPointer = StelApp::getInstance().getTextureManager().createTexture(StelFileMgr::getInstallationDir()+"/textures/pointeur2.png"); addAction("actionShow_Novae_ConfigDialog", N_("Bright Novae"), N_("Bright Novae configuration window"), configDialog, "visible"); } catch (std::runtime_error &e) { qWarning() << "Novae: init error:" << e.what(); return; } // A timer for hiding alert messages messageTimer = new QTimer(this); messageTimer->setSingleShot(true); // recurring check for update messageTimer->setInterval(9000); // 6 seconds should be enough time messageTimer->stop(); connect(messageTimer, SIGNAL(timeout()), this, SLOT(messageTimeout())); // If the json file does not already exist, create it from the resource in the Qt resource if(QFileInfo(novaeJsonPath).exists()) { if (!checkJsonFileFormat() || getJsonFileVersion()<CATALOG_FORMAT_VERSION) { restoreDefaultJsonFile(); } } else { qDebug() << "Novae: novae.json does not exist - copying default file to" << QDir::toNativeSeparators(novaeJsonPath); restoreDefaultJsonFile(); } qDebug() << "Novae: loading catalog file:" << QDir::toNativeSeparators(novaeJsonPath); readJsonFile(); // Set up download manager and the update schedule downloadMgr = new QNetworkAccessManager(this); connect(downloadMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(updateDownloadComplete(QNetworkReply*))); updateState = CompleteNoUpdates; updateTimer = new QTimer(this); updateTimer->setSingleShot(false); // recurring check for update updateTimer->setInterval(13000); // check once every 13 seconds to see if it is time for an update connect(updateTimer, SIGNAL(timeout()), this, SLOT(checkForUpdate())); updateTimer->start(); GETSTELMODULE(StelObjectMgr)->registerStelObjectMgr(this); }
/* Init our module */ void Supernovae::init() { try { StelFileMgr::makeSureDirExistsAndIsWritable(StelFileMgr::getUserDir()+"/modules/Supernovae"); // If no settings in the main config file, create with defaults if (!conf->childGroups().contains("Supernovae")) { qDebug() << "Supernovae::init no Supernovae section exists in main config file - creating with defaults"; restoreDefaultConfigIni(); } // populate settings from main config file. readSettingsFromConfig(); sneJsonPath = StelFileMgr::findFile("modules/Supernovae", (StelFileMgr::Flags)(StelFileMgr::Directory|StelFileMgr::Writable)) + "/supernovae.json"; // key bindings and other actions StelGui* gui = dynamic_cast<StelGui*>(StelApp::getInstance().getGui()); connect(gui->getGuiAction("actionShow_Supernovae_ConfigDialog"), SIGNAL(toggled(bool)), configDialog, SLOT(setVisible(bool))); connect(configDialog, SIGNAL(visibleChanged(bool)), gui->getGuiAction("actionShow_Supernovae_ConfigDialog"), SLOT(setChecked(bool))); } catch (std::runtime_error &e) { qWarning() << "Supernovas::init error: " << e.what(); return; } // A timer for hiding alert messages messageTimer = new QTimer(this); messageTimer->setSingleShot(true); // recurring check for update messageTimer->setInterval(9000); // 6 seconds should be enough time messageTimer->stop(); connect(messageTimer, SIGNAL(timeout()), this, SLOT(messageTimeout())); // If the json file does not already exist, create it from the resource in the Qt resource if(QFileInfo(sneJsonPath).exists()) { if (!checkJsonFileFormat() || getJsonFileVersion()<CATALOG_FORMAT_VERSION) { restoreDefaultJsonFile(); } } else { qDebug() << "Supernovae::init supernovae.json does not exist - copying default file to " << QDir::toNativeSeparators(sneJsonPath); restoreDefaultJsonFile(); } qDebug() << "Supernovae::init using file: " << QDir::toNativeSeparators(sneJsonPath); readJsonFile(); // Set up download manager and the update schedule downloadMgr = new QNetworkAccessManager(this); connect(downloadMgr, SIGNAL(finished(QNetworkReply*)), this, SLOT(updateDownloadComplete(QNetworkReply*))); updateState = CompleteNoUpdates; updateTimer = new QTimer(this); updateTimer->setSingleShot(false); // recurring check for update updateTimer->setInterval(13000); // check once every 13 seconds to see if it is time for an update connect(updateTimer, SIGNAL(timeout()), this, SLOT(checkForUpdate())); updateTimer->start(); GETSTELMODULE(StelObjectMgr)->registerStelObjectMgr(this); }