| OLD | NEW | 
|     1 #include "PluginStdAfx.h" |     1 #include "PluginStdAfx.h" | 
|     2  |     2  | 
|     3 #include <Wbemidl.h> |     3 #include <Wbemidl.h> | 
|     4 #include <time.h> |     4 #include <time.h> | 
|     5 #include "PluginIniFileW.h" |     5 #include "PluginIniFileW.h" | 
|     6 #include "PluginIniFile.h" |     6 #include "PluginIniFile.h" | 
|     7 #include "PluginSettings.h" |     7 #include "PluginSettings.h" | 
|     8 #include "PluginDictionary.h" |     8 #include "PluginDictionary.h" | 
|     9 #include "PluginClient.h" |     9 #include "PluginClient.h" | 
|    10 #include "PluginChecksum.h" |    10 #include "PluginChecksum.h" | 
| (...skipping 220 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   231         } |   231         } | 
|   232  |   232  | 
|   233         CPluginSettingsLock lock; |   233         CPluginSettingsLock lock; | 
|   234         if (lock.IsLocked()) |   234         if (lock.IsLocked()) | 
|   235         { |   235         { | 
|   236             isRead = m_settingsFile->Read();         |   236             isRead = m_settingsFile->Read();         | 
|   237             if (isRead) |   237             if (isRead) | 
|   238             { |   238             { | 
|   239                 if (m_settingsFile->IsValidChecksum()) |   239                 if (m_settingsFile->IsValidChecksum()) | 
|   240                 { |   240                 { | 
 |   241                                         m_properties = m_settingsFile->GetSectio
      nData("Settings"); | 
 |   242  | 
|   241 #ifdef SUPPORT_FILTER                        |   243 #ifdef SUPPORT_FILTER                        | 
|   242                     // Unpack filter URLs |   244                     // Unpack filter URLs | 
|   243                     CPluginIniFileW::TSectionData filters = m_settingsFile->GetS
      ectionData("Filters"); |   245                     CPluginIniFileW::TSectionData filters = m_settingsFile->GetS
      ectionData("Filters"); | 
|   244                     int filterCount = 0; |   246                     int filterCount = 0; | 
|   245                     bool bContinue = true; |   247                     bool bContinue = true; | 
|   246  |   248  | 
|   247                     s_criticalSectionFilters.Lock(); |   249                     s_criticalSectionFilters.Lock(); | 
|   248                             { |   250                             { | 
|   249                                     m_filterUrlList.clear(); |   251                                     m_filterUrlList.clear(); | 
|   250  |   252  | 
| (...skipping 101 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|   352                 m_filterDownloadTimesList[CString(FILTERS_PROTOCOL) + CString(FI
      LTERS_HOST) + "/easylist.txt"] = time(NULL); |   354                 m_filterDownloadTimesList[CString(FILTERS_PROTOCOL) + CString(FI
      LTERS_HOST) + "/easylist.txt"] = time(NULL); | 
|   353 */ |   355 */ | 
|   354         } |   356         } | 
|   355         s_criticalSectionFilters.Unlock(); |   357         s_criticalSectionFilters.Unlock(); | 
|   356  |   358  | 
|   357 #endif // SUPPORT_FILTER |   359 #endif // SUPPORT_FILTER | 
|   358 } |   360 } | 
|   359  |   361  | 
|   360 bool CPluginSettings::MakeRequestForUpdate() |   362 bool CPluginSettings::MakeRequestForUpdate() | 
|   361 { |   363 { | 
 |   364         time_t updateTime = this->GetValue(SETTING_LAST_UPDATE_TIME); | 
 |   365  | 
 |   366         if (time(NULL) <= updateTime) | 
 |   367                 return false; | 
 |   368  | 
|   362         CPluginHttpRequest httpRequest(PLUGIN_UPDATE_URL); |   369         CPluginHttpRequest httpRequest(PLUGIN_UPDATE_URL); | 
|   363  |   370  | 
|   364         CPluginSystem* system = CPluginSystem::GetInstance(); |   371         CPluginSystem* system = CPluginSystem::GetInstance(); | 
|   365  |   372  | 
|   366     httpRequest.Add("lang", this->GetString(SETTING_LANGUAGE, "err")); |   373     httpRequest.Add("lang", this->GetString(SETTING_LANGUAGE, "err")); | 
|   367         httpRequest.Add("ie", system->GetBrowserVersion()); |   374         httpRequest.Add("ie", system->GetBrowserVersion()); | 
|   368         httpRequest.Add("ielang", system->GetBrowserLanguage()); |   375         httpRequest.Add("ielang", system->GetBrowserLanguage()); | 
|   369  |   376  | 
|   370         httpRequest.AddOsInfo(); |   377         httpRequest.AddOsInfo(); | 
|   371  |   378  | 
|   372         httpRequest.Send(); |   379         httpRequest.Send(); | 
|   373  |   380  | 
 |   381         this->SetValue(SETTING_LAST_UPDATE_TIME, time(NULL) + (5 * 24 * 60 * 60)
       * ((rand() % 100) / 100 * 0.4 + 0.8)); | 
|   374         if (httpRequest.IsValidResponse()) |   382         if (httpRequest.IsValidResponse()) | 
|   375         { |   383         { | 
|   376                 const std::auto_ptr<CPluginIniFile>& iniFile = httpRequest.GetRe
      sponseFile(); |   384                 const std::auto_ptr<CPluginIniFile>& iniFile = httpRequest.GetRe
      sponseFile(); | 
|   377  |   385  | 
|   378                 CPluginIniFile::TSectionData settingsData = iniFile->GetSectionD
      ata("Settings"); |   386                 CPluginIniFile::TSectionData settingsData = iniFile->GetSectionD
      ata("Settings"); | 
|   379                 CPluginIniFile::TSectionData::iterator it; |   387                 CPluginIniFile::TSectionData::iterator it; | 
|   380  |   388  | 
|   381                 it = settingsData.find("pluginupdate"); |   389                 it = settingsData.find("pluginupdate"); | 
|   382                 if (it != settingsData.end()) |   390                 if (it != settingsData.end()) | 
|   383                 { |   391                 { | 
| (...skipping 10 matching lines...) Expand all  Loading... | 
|   394                         SetString(SETTING_PLUGIN_UPDATE_VERSION, ver); |   402                         SetString(SETTING_PLUGIN_UPDATE_VERSION, ver); | 
|   395                         m_isDirty = true; |   403                         m_isDirty = true; | 
|   396                         DEBUG_SETTINGS("Settings::Configuration plugin update ve
      rsion:" + it->second); |   404                         DEBUG_SETTINGS("Settings::Configuration plugin update ve
      rsion:" + it->second); | 
|   397                 } |   405                 } | 
|   398         } |   406         } | 
|   399  |   407  | 
|   400         return true; |   408         return true; | 
|   401 } |   409 } | 
|   402 bool CPluginSettings::CheckFilterAndDownload() |   410 bool CPluginSettings::CheckFilterAndDownload() | 
|   403 { |   411 { | 
|   404         TFilterUrlList currentFilterUrlList = this->GetFilterUrlList(); |   412 »       s_criticalSectionLocal.Lock(); | 
|   405         std::map<CString, CString> fileNamesList = this->GetFilterFileNamesList(
      ); |   413     TFilterUrlList currentFilterUrlList = this->GetFilterUrlList(); | 
 |   414     std::map<CString, CString> fileNamesList = this->GetFilterFileNamesList(); | 
|   406  |   415  | 
|   407         for (TFilterUrlList::iterator it = currentFilterUrlList.begin(); it != c
      urrentFilterUrlList.end(); ++it)  |   416 »       bool filterAvailable = false; | 
 |   417     for (TFilterUrlList::iterator it = currentFilterUrlList.begin(); it != curre
      ntFilterUrlList.end(); ++it)  | 
 |   418     { | 
 |   419         CString downloadFilterName = it->first; | 
 |   420  | 
 |   421 »       »       std::map<CString, CString>::const_iterator fni = fileNamesList.f
      ind(downloadFilterName);»       »        | 
 |   422 »       »       CString filename = ""; | 
 |   423 »       »       if (fni != fileNamesList.end()) | 
 |   424 »       »       { | 
 |   425 »       »       »       filename = fni->second; | 
 |   426 »       »       } | 
 |   427 »       »       else | 
 |   428 »       »       { | 
 |   429 »       »       »       filename = downloadFilterName.Trim().Right(downloadFilte
      rName.GetLength() - downloadFilterName.ReverseFind('/') - 1).Trim(); | 
 |   430 »       »       } | 
 |   431         int version = it->second; | 
 |   432         if ((this->FilterShouldLoad(downloadFilterName))) | 
|   408         { |   433         { | 
|   409             CString downloadFilterName = it->first; |   434 »       »       »       filterAvailable = true; | 
|   410  |   435 »       »       »       if (this->FilterlistExpired(downloadFilterName)) | 
|   411 »       »       »       std::map<CString, CString>::const_iterator fni = fileNam
      esList.find(downloadFilterName);»       »        |  | 
|   412 »       »       »       CString filename = ""; |  | 
|   413 »       »       »       if (fni != fileNamesList.end()) |  | 
|   414                         { |   436                         { | 
|   415 »       »       »       »       filename = fni->second; |   437 »       »       »       »       CPluginFilter::DownloadFilterFile(downloadFilter
      Name, filename); | 
|   416 »       »       »       } |  | 
|   417 »       »       »       else |  | 
|   418 »       »       »       { |  | 
|   419 »       »       »       »       filename = downloadFilterName.Trim().Right(downl
      oadFilterName.GetLength() - downloadFilterName.ReverseFind('/') - 1).Trim(); |  | 
|   420 »       »       »       } |  | 
|   421             int version = it->second; |  | 
|   422  |  | 
|   423             if (this->FilterlistExpired(downloadFilterName) && (this->FilterShou
      ldLoad(downloadFilterName))) |  | 
|   424             { |  | 
|   425                 CPluginFilter::DownloadFilterFile(downloadFilterName, filename); |  | 
|   426                                 this->SetFilterRefreshDate(downloadFilterName, t
      ime(NULL) + (5 * 24 * 60 * 60) * ((rand() % 100) / 100 * 0.4 + 0.8)); |   438                                 this->SetFilterRefreshDate(downloadFilterName, t
      ime(NULL) + (5 * 24 * 60 * 60) * ((rand() % 100) / 100 * 0.4 + 0.8)); | 
|   427             } |  | 
|   428                         else |  | 
|   429                         { |  | 
|   430                                 //Cleanup, since we don't need the filter defini
      tion |  | 
|   431                                 DeleteFile(CPluginSettings::GetDataPath(filename
      )); |  | 
|   432                                 this->SetFilterRefreshDate(downloadFilterName, 0
      ); |  | 
|   433                         } |   439                         } | 
|   434         } |   440         } | 
 |   441                 else | 
 |   442                 { | 
 |   443                         //Cleanup, since we don't need the filter definition | 
 |   444                         DeleteFile(CPluginSettings::GetDataPath(filename)); | 
 |   445                         this->SetFilterRefreshDate(downloadFilterName, 0); | 
 |   446                 } | 
 |   447     } | 
|   435  |   448  | 
|   436         this->Write(); |   449 »       if (!filterAvailable) | 
 |   450 »       { | 
 |   451 »       »       //If no filter list found, default to "en" | 
|   437  |   452  | 
|   438         this->IncrementTabVersion(SETTING_TAB_FILTER_VERSION); |   453 »           this->SetString(SETTING_LANGUAGE, (BSTR)L"en"); | 
|   439  |   454  | 
|   440 »       »       return true; |   455 »       »       CPluginDictionary* dict = CPluginDictionary::GetInstance(); | 
 |   456 »       »       dict->SetLanguage(L"en"); | 
 |   457  | 
 |   458 »       »       for (std::map<CString, CString>::iterator it = m_filterLanguages
      List.begin(); it != m_filterLanguagesList.end(); ++it)  | 
 |   459 »       »       { | 
 |   460 »       »       »       if (it->second == L"en") | 
 |   461 »       »       »       { | 
 |   462 »       »       »       »       CPluginFilter::DownloadFilterFile(it->first, m_f
      ilterFileNameList.find(it->first)->second); | 
 |   463 »       »       »       »       this->SetFilterRefreshDate(it->first, time(NULL)
       + (5 * 24 * 60 * 60) * ((rand() % 100) / 100 * 0.4 + 0.8)); | 
 |   464 »       »       »       } | 
 |   465 »       »       } | 
 |   466 »       } | 
 |   467  | 
 |   468     this->Write(); | 
 |   469  | 
 |   470     this->IncrementTabVersion(SETTING_TAB_FILTER_VERSION); | 
 |   471  | 
 |   472 »       s_criticalSectionLocal.Unlock(); | 
 |   473 »       return true; | 
|   441 } |   474 } | 
|   442  |   475  | 
|   443 CString CPluginSettings::GetDataPathParent() |   476 CString CPluginSettings::GetDataPathParent() | 
|   444 { |   477 { | 
|   445         if (s_dataPathParent == NULL)  |   478         if (s_dataPathParent == NULL)  | 
|   446         { |   479         { | 
|   447                 WCHAR* lpData = new WCHAR[MAX_PATH]; |   480                 WCHAR* lpData = new WCHAR[MAX_PATH]; | 
|   448  |   481  | 
|   449                 OSVERSIONINFO osVersionInfo; |   482                 OSVERSIONINFO osVersionInfo; | 
|   450                 ::ZeroMemory(&osVersionInfo, sizeof(OSVERSIONINFO)); |   483                 ::ZeroMemory(&osVersionInfo, sizeof(OSVERSIONINFO)); | 
| (...skipping 1733 matching lines...) Expand 10 before | Expand all | Expand 10 after  Loading... | 
|  2184            osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); |  2217            osvi.dwOSVersionInfoSize = sizeof(OSVERSIONINFOEX); | 
|  2185            bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO*) &osvi); |  2218            bOsVersionInfoEx = GetVersionEx((OSVERSIONINFO*) &osvi); | 
|  2186  |  2219  | 
|  2187            m_WindowsBuildNumber = osvi.dwBuildNumber; |  2220            m_WindowsBuildNumber = osvi.dwBuildNumber; | 
|  2188         } |  2221         } | 
|  2189  |  2222  | 
|  2190    return m_WindowsBuildNumber; |  2223    return m_WindowsBuildNumber; | 
|  2191 } |  2224 } | 
|  2192  |  2225  | 
|  2193 #endif // SUPPORT_WHITELIST |  2226 #endif // SUPPORT_WHITELIST | 
| OLD | NEW |