void Updater::CheckUpdate(bool isBetaChannelEnabled) { if (m_netwManager==NULL) m_netwManager = new QNetworkAccessManager(this); // QSettings cfg(TSHelpers::GetFullConfigPath(), QSettings::IniFormat); // m_isBetaChannel = cfg.value("beta",false).toBool(); m_isBetaChannel = isBetaChannelEnabled; if (m_isBetaChannel) CheckUpdate(BETA_CHECK); CheckUpdate(STABLE); }
/********************************************************************************* * Networkthread for background network initialize and update check with idle prio *********************************************************************************/ static void * networkinitcallback(void *arg) { while (1) { if (!checkincomming && networkHalt) LWP_SuspendThread(networkthread); Initialize_Network(); if (networkinitialized == true && updatechecked == false) { if (CheckUpdate() > 0) updateavailable = true; //suspend thread updatechecked = true; networkHalt = true; } if (checkincomming) NetworkWait(); usleep(100000); } return NULL; }
int NeedUpdate() { ERROR_OUTPUT(__func__); if (!FileExists(UPDATEXML)) { ERROR_OUTPUT("UPDATE_XML"); return UPDATE_XML; } else { if (!CheckInstall()) { ERROR_OUTPUT("UPDATE_FILES"); return UPDATE_FILES; } if (FileExists(UPDATEFILE) && CheckUpdate(UPDATEFILE)) { ERROR_OUTPUT("UPDATE_MCF"); return UPDATE_MCF; } } return UPDATE_NONE; }
void CHMMDemoView::OnMouseMove(UINT nFlags, CPoint point) { CView::OnMouseMove(nFlags, point); if( nFlags & MK_LBUTTON ) { (CPoint&)m_tmp_sel.right = point; CheckUpdate(); } }
INT KJxUpdaterDlg::_ShowWebThreadFunc() { // TODO: Add your control notification handler code here m_CtrlCheckUpdate.EnableWindow(false); CheckUpdate(); m_CtrlCheckUpdate.EnableWindow(true); return true; }
LRESULT KJxUpdaterDlg::OnStartUpMsg(WPARAM wParam, LPARAM lParam) { // TODO: Add your control notification handler code here m_CtrlCheckUpdate.EnableWindow(false); CheckUpdate(); m_CtrlCheckUpdate.EnableWindow(true); m_CtrlQuit.EnableWindow(true); return 0; }
AString ADVBConfig::GetConfigItem(const AString& name, const AString& defval) const { AString res; CheckUpdate(); if (config.Exists(name)) res = config.Get(name); else res = defval; //debug("Request for '%s' (def: '%s'): '%s'\n", name.str(), defval.str(), res.str()); return res; }
// 检查更新 void CAboutPage::OnStnClickedStatic1() { switch (CheckUpdate()) { case UPDATE_NO_UPDATE: AfxMessageBox(_T("已经是最新版本")); break; case UPDATE_FAILED_TO_GET_INFO: if (AfxMessageBox(_T("获取文件信息失败,手动更新?"), MB_ICONQUESTION | MB_YESNO) == IDYES) ManuallyUpdate(); break; } }
void CHMMDemoView::SetSelection( RECT* sel ) { if( sel ) { m_tmp_sel = NormalizeRect( *sel ); } else { CImage& img = Camera().GetFrame(); m_tmp_sel = CRect( 0, 0, img.Width(), img.Height() ); } CheckUpdate(); }
AString ADVBConfig::GetConfigItem(const AString& name) const { const AString *def = NULL; AString res; CheckUpdate(); if (config.Exists(name)) res = config.Get(name); else if ((def = (const AString *)defaults.Read(name)) != NULL) res = *def; //debug("Request for '%s' (def: '%s'): '%s'\n", name.str(), def ? def->str() : "<notset>", res.str()); return res; }
int Chat_Load() { CheckUpdate(); CHAT_MANAGER_INITDATA data = { &g_Settings, sizeof(MODULEINFO), sizeof(SESSION_INFO), LPGENT("Message Sessions")_T("/")LPGENT("Group chats"), FONTMODE_ALTER }; mir_getCI(&data); saveCI = *pci; pci->OnCreateModule = OnCreateModule; pci->OnNewUser = OnNewUser; pci->OnSetStatus = OnSetStatus; pci->OnSetTopic = OnSetTopic; pci->OnAddLog = OnAddLog; pci->OnCreateSession = OnCreateSession; pci->OnRemoveSession = OnRemoveSession; pci->OnRenameSession = OnRenameSession; pci->OnReplaceSession = OnReplaceSession; pci->OnDblClickSession = OnDblClickSession; pci->OnEventBroadcast = OnEventBroadcast; pci->OnSetStatusBar = OnSetStatusBar; pci->OnChangeNick = OnChangeNick; pci->ShowRoom = ShowRoom; pci->OnLoadSettings = OnLoadSettings; // this operation is unsafe, that's why we restore the old pci state on exit pci->DoSoundsFlashPopupTrayStuff = DoSoundsFlashPopupTrayStuff; pci->IsHighlighted = IsHighlighted; pci->LogToFile = LogToFile; pci->DoPopup = DoPopup; pci->ShowPopup = ShowPopup; pci->Log_CreateRtfHeader = Log_CreateRtfHeader; pci->UM_CompareItem = UM_CompareItem; pci->ReloadSettings(); g_hMenu = LoadMenu(g_hInst, MAKEINTRESOURCE(IDR_MENU)); g_Settings.Highlight = new CMUCHighlight(); return 0; }
int NeedUpdateNonGpl() { std::wstring path = UTIL::OS::getAppDataPath(UPDATEFILE_W); if (!FileExists(UPDATEXML_W)) { return UPDATE_XML; } else { if (FileExists(path.c_str()) && CheckUpdate(path.c_str())) return UPDATE_MCF; if (!CheckInstall()) return UPDATE_FILES; } if (CheckCert()) return UPDATE_CERT; return UPDATE_NONE; }
// 自动更新线程 UINT AFX_CDECL AutoUpdateThread(LPVOID _dlg) { CTiebaManagerDlg* dlg = (CTiebaManagerDlg*)_dlg; CoInitializeEx(NULL, COINIT_MULTITHREADED); CheckUpdateResult res = CheckUpdate(); CoUninitialize(); switch (res) { case UPDATE_FAILED_TO_GET_FILE_ID: dlg->m_stateStatic.SetWindowText(_T("检查更新失败:获取文件ID失败,在设置里手动检查更新")); break; case UPDATE_FAILED_TO_GET_LINK: if (AfxMessageBox(_T("获取下载地址失败,手动更新?"), MB_ICONQUESTION | MB_YESNO) == IDYES) ShellExecute(NULL, _T("open"), UPDATE_FULL_URL, NULL, NULL, SW_NORMAL); case UPDATE_NO_UPDATE: case UPDATE_HAS_UPDATE: dlg->m_stateStatic.SetWindowText(_T("待机中")); break; } return 0; }
bool CSecurityCache::GetEigenvalue(unsigned char *data,DWORD& length) { // 获得所有的数据 int effectnum; CheckUpdate(effectnum);//得到有效数据个数 if(false == m_isChange) return true; if(effectnum <= 0) { data = NULL; length = 0; return true; } length = effectnum * SECURE_SIZE; unsigned char* pBuffer = new unsigned char[length]; if(pBuffer == NULL) return false; unsigned char* cur = pBuffer; for(int i = 0; i < SECURE_BUCKET_SIZE; i++) { for(list<SecCachStruct*>::iterator ite = m_secuBucket[i].begin(); ite != m_secuBucket[i].end(); ite ++) { if(((*ite)->tag == 1) || (*ite)->tag == 3 || (*ite)->tag == 4)//有效数据 { memcpy(cur,(void*)(*ite)->chkdata,SECURE_SIZE); cur += SECURE_SIZE; } } } data = pBuffer; return true; }
int NeedUpdateNonGpl() { UpdateLogHandle ulh; std::wstring path = UTIL::OS::getAppDataPath(UPDATEFILE_W); if (!FileExists(UPDATEXML_W)) { Log("NeedUpdate: Missing Xml"); return UPDATE_XML; } else { if (FileExists(path.c_str()) && CheckUpdate(path.c_str())) { Log("NeedUpdate: Missing Mcf"); return UPDATE_MCF; } if (!CheckInstall()) { Log("NeedUpdate: Bad Files"); return UPDATE_FILES; } } #ifdef WITH_CODESIGN if (CheckCert()) { Log("NeedUpdate: Bad Cert"); return UPDATE_CERT; } #endif return UPDATE_NONE; }
int main(int argc, char **argv) { char text[256]; int i; #ifdef _WIN32 HMODULE hLib; WSADATA wsadata; WSAStartup(0x0202, &wsadata); InitUptimePerfCounter(); hLib = LoadLibrary("advapi32.dll"); if (hLib) lpfnRtlGenRandom = (_RtlGenRandom)GetProcAddress(hLib, "SystemFunction036"); #ifdef _DEBUG _CrtSetDbgFlag(_CrtSetDbgFlag(_CRTDBG_REPORT_FLAG) | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF | _CRTDBG_CHECK_CRT_DF | _CRTDBG_ALLOC_MEM_DF); #endif #endif GetOS(text); printf("\n -- Phyros " BOT_VER " -- %s --\n\n", text); loadedtime = getuptime(); #ifndef _WIN32 SetPipeSignalHandler(); if (getuid() == 0) { printf("WARNING: should not be running as root!\n"); setuid(GetUidFromUsername("nobody")); } //////should set the group id instead so files can be modified at runtime #endif botpluser = malloc(sizeof(LUSER)); botpluser->access = 103; strcpy(botpluser->username, "the bot"); maintid = get_self_tid(); #ifndef _DEBUG SetSegvSignalHandler(); #endif tagbans[WCP_BACK] = RadixInit(); tagbans[WCP_FRONT] = RadixInit(); tagbans[WCP_BOTH] = RadixInit(); phrases = RadixInit(); cdkeys = VectorInit(8); //banqueue = malloc(BANQUEUE_INITIALSIZE * sizeof(char *)); //bqsize = BANQUEUE_INITIALSIZE; SetDefaultConfig(); LoadConfig(); LoadUsers(); LoadCDKeys(); GetRealms(); BlacklistLoad(); LoadPhrases(); CmdTreeInit(); LoadAccessModifications(); ParseCmdLine(argc, argv); for (i = 0; i != 3; i++) { if (!hashes[i][0]) { gstate |= GFS_USEBNLS; printf("WARNING: path for binary \'%s\' not set, falling back to BNLS checkrevision\n", hash_filenames[i]); break; } } if (gstate & GFS_CHECKUPDATES) { printf(" - checking %s%s for updates...\n", updatesite, updateverfile); printf("%s\n", updateresult[CheckUpdate(updatesite, updateverfile)]); } CreateAsyncTimer(); ptimertid = _CreateThread(PeriodicTimerWaitProc, NULL); AddPeriodicTimer(TIMER_NULLPKT, 10, NullPacketTimerProc); setjmp(jmpenv); ////////////////////////////////////////////TEST BATTERY////////////////////////////////////// /*ChatHandleChannel("Clan Blah", 0, 0); //ChatHandleJoin("loladfg", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf1aaaaaaaaaa", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf2bbbbbfffe", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf3", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf4", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf5", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf6", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf7", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf8", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladf9", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladfa", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladfb", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladfc", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); ChatHandleJoin("loladfd", 0, 43, "PXES 0 0 0 0 0 PXES", 0, 0); */ /*printf("%x\n", FindTextInWildcards(tagbans, "asdfgdfg")); printf("%x\n", FindTextInWildcards(tagbans, "as[tg]gdfg")); printf("%x\n", FindTextInWildcards(tagbans, "asdfgdfg[tg]")); printf("%x\n", FindTextInWildcards(tagbans, "asdfgdfg")); printf("%x\n", FindPhraseban(phrases, "raiasdfdasdfzomgzasdfasdfasdfasdf")); printf("%x\n", FindPhraseban(phrases, "raiasdfgdfgbloop")); printf("%x\n", FindPhraseban(phrases, "bloo asfukdfgdfg zomg"));*/ ///////////////////////////////////////////////////////////////////////////////////////////// while (1) { fgets(text, sizeof(text), stdin); text[strlen(text) - 1] = 0; if (*(int16_t *)text == '//') CheckCommand(NULL, text, 0, 0); else QueueAdd(text, curbotinc()); } return 0; }
/*! * \brief Config::onNetwManagerFinished Qt slot to retrieve the content * \param reply a QNetworkReply containing the update data to parse */ void Updater::onNetwManagerFinished(QNetworkReply *reply) { if (!m_URLs.remove(reply->url())) return; bool isReplyStable = reply->url().toString().contains("addons.teamspeak.com"); if (reply->error() != QNetworkReply::NoError) { TSLogging::Log(reply->errorString(),LogLevel_WARNING); } else { QByteArray arr = reply->readAll(); QVariant possibleRedirectUrl = reply->attribute(QNetworkRequest::RedirectionTargetAttribute); /* We'll deduct if the redirection is valid in the redirectUrl function */ _urlRedirectedTo = this->redirectUrl(possibleRedirectUrl.toUrl(), _urlRedirectedTo); if(!_urlRedirectedTo.isEmpty()) /* If the URL is not empty, we're being redirected. */ { TSLogging::Log(QString("%1: Update check forwarding to %2").arg(this->objectName()).arg(_urlRedirectedTo.toString()),LogLevel_INFO); CheckUpdate(_urlRedirectedTo); return; } int start = arr.indexOf((isReplyStable)?QString(ts3plugin_name()).append("_"):"Version",0); if (start == -1) { TSLogging::Log((this->objectName() + ": Did not find Version."),LogLevel_WARNING); return; } QString endStr = (isReplyStable)?".ts3_plugin":"Platforms"; int end = arr.indexOf(endStr,start); if (end == -1) { TSLogging::Log((this->objectName() + ": Did not find %1.").arg(endStr),LogLevel_WARNING); return; } QString parse(arr.mid(start,end-start)); QRegExp rx; if (isReplyStable) rx.setPattern("\\d+(?:\\_\\d+)+"); else rx.setPattern("\\d+(?:\\.\\d+)+"); int pos = rx.indexIn(parse); if (pos > -1) parse = rx.cap(0); if (isReplyStable) { parse.replace("_","."); m_VersionStable = parse; } else m_VersionBeta = parse; } reply->deleteLater(); _urlRedirectedTo.clear(); if (m_URLs.isEmpty()) { m_netwManager->deleteLater(); m_netwManager=NULL; CheckTriggerUpdateDialog(); } }
UINT CTrafficMonitorApp::CheckUpdateThreadFunc(LPVOID lpParam) { CCommon::SetThreadLanguage(theApp.m_general_data.language); //设置线程语言 CheckUpdate(false); //检查更新 return 0; }
bool CSecurityCache::IsChanged() { int effectnum; CheckUpdate(effectnum);//得到有效数据个数 return m_isChange; }
//更新到安全缓存文件中 bool CSecurityCache::Flush() { int effectnum; CheckUpdate(effectnum);//得到有效数据个数 if(false == m_isChange) return true; WCHAR expName[MAX_PATH] = {0}; ExpandEnvironmentStringsW(m_cathfile.c_str(), expName, MAX_PATH); HANDLE hFile; if(effectnum <= 0) { hFile = CreateFileW(expName, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile != INVALID_HANDLE_VALUE) { CloseHandle(hFile); } return true; } SecCachStruct tp; DWORD len = effectnum*(sizeof(tp.filename)+SECURE_SIZE + sizeof(short int)); unsigned char* pBuffer = new unsigned char[len]; if(pBuffer == NULL) return false; unsigned char* cur = pBuffer; for(int i = 0; i < SECURE_BUCKET_SIZE; i++) { for(list<SecCachStruct*>::iterator ite = m_secuBucket[i].begin(); ite != m_secuBucket[i].end(); ite ++) { if(((*ite)->tag == 1) || (*ite)->tag == 3 || (*ite)->tag == 4)//有效数据 { memcpy(cur,(void*)(*ite)->filename,sizeof((*ite)->filename)); cur += sizeof((*ite)->filename); memcpy(cur,(void*)(*ite)->chkdata,SECURE_SIZE); cur += SECURE_SIZE; memcpy(cur,(void*)&((*ite)->tag),sizeof(short int)); cur += sizeof(short int); } } } int packlen = len + 128; unsigned char* pPackBuf = new unsigned char[packlen]; if(pPackBuf == NULL) { delete[] pBuffer; return false; } int ret = CachePack(pBuffer,len,pPackBuf); delete[] pBuffer;//先清缓存 if(ret < 0) { delete[] pPackBuf; return false; } hFile = CreateFileW(expName, GENERIC_WRITE, FILE_SHARE_READ | FILE_SHARE_WRITE, NULL, CREATE_ALWAYS, FILE_ATTRIBUTE_NORMAL, NULL); if(hFile == INVALID_HANDLE_VALUE) { ::MessageBoxW(NULL, L"打开安全缓存失败",L"安全缓存",MB_OK | MB_SETFOREGROUND); delete[] pPackBuf; return false; } DWORD dwLength; if(!WriteFile(hFile,pPackBuf,ret,&dwLength,NULL)) { ::MessageBoxW(NULL, L"写安全缓存失败",L"安全缓存",MB_OK | MB_SETFOREGROUND); CloseHandle(hFile); delete[] pPackBuf; return false; } CloseHandle(hFile); delete[] pPackBuf; return true; }
void CHMMDemoView::OnLButtonDown(UINT nFlags, CPoint point) { CView::OnLButtonDown(nFlags, point); /*(CPoint&)m_sel = */(CPoint&)m_tmp_sel.left = (CPoint&)m_tmp_sel.right = point; CheckUpdate(); }
void CHMMDemoView::OnLButtonUp(UINT nFlags, CPoint point) { CView::OnLButtonUp(nFlags, point); (CPoint&)m_tmp_sel.right = point; CheckUpdate(); }