bool CWebCore::StaticFetchBlacklistProgress ( double dDownloadNow, double dDownloadTotal, char* pCompletedData, size_t completedLength, void *pObj, bool bComplete, int iError ) { if ( !bComplete ) return false; CWebCore* pWebCore = static_cast < CWebCore* > ( pObj ); if ( !pWebCore->m_pXmlConfig ) return false; if ( !pWebCore->MakeSureXMLNodesExist () ) return false; CXMLNode* pRootNode = pWebCore->m_pXmlConfig->GetRootNode (); std::vector<SString> blacklist; SString strData = pCompletedData; strData.Split ( ";", blacklist ); CXMLNode* pListNode = pRootNode->FindSubNode ( "globalblacklist" ); if ( !pListNode ) return false; pListNode->DeleteAllSubNodes (); for ( std::vector<SString>::const_iterator iter = blacklist.begin (); iter != blacklist.end (); ++iter ) { CXMLNode* pNode = pListNode->CreateSubNode ( "url" ); pNode->SetTagContent ( *iter ); } // Set blacklist revision CXMLNode* pNode = pRootNode->FindSubNode ( "blacklistrev" ); if ( !pNode ) return false; pNode->SetTagContent ( pWebCore->m_iBlacklistRevision ); // Write changes to the XML file pWebCore->m_pXmlConfig->Write (); pWebCore->LoadListsFromXML ( false, true, false ); #ifdef MTA_DEBUG OutputDebugLine ( "Updated browser blacklist!" ); #endif return true; }
void CWebCore::StaticFetchWhitelistFinished ( char* pCompletedData, size_t completedLength, void *pObj, bool bSuccess, int iErrorCode ) { if ( !bSuccess ) return; CWebCore* pWebCore = static_cast < CWebCore* > ( pObj ); if ( !pWebCore->m_pXmlConfig ) return; if ( !pWebCore->MakeSureXMLNodesExist () ) return; CXMLNode* pRootNode = pWebCore->m_pXmlConfig->GetRootNode (); std::vector<SString> whitelist; SString strData = pCompletedData; strData.Split ( ";", whitelist ); CXMLNode* pListNode = pRootNode->FindSubNode ( "globalwhitelist" ); if ( !pListNode ) return; pListNode->DeleteAllSubNodes (); for ( std::vector<SString>::const_iterator iter = whitelist.begin (); iter != whitelist.end (); ++iter ) { CXMLNode* pNode = pListNode->CreateSubNode ( "url" ); pNode->SetTagContent ( *iter ); } // Set whitelist revision CXMLNode* pNode = pRootNode->FindSubNode ( "whitelistrev" ); if ( !pNode ) return; pNode->SetTagContent ( pWebCore->m_iWhitelistRevision ); // Write changes to the XML file pWebCore->m_pXmlConfig->Write (); pWebCore->LoadListsFromXML ( true, false, false ); #ifdef MTA_DEBUG OutputDebugLine ( "Updated whitelist!" ); #endif }