BOOL COptions::ReadSpeedLimits(TiXmlElement *pXML) { const char* names[] = { "Download", "Upload" }; for (int i = 0; i < 2; i++) { for (TiXmlElement* pSpeedLimits = pXML->FirstChildElement("SpeedLimits"); pSpeedLimits; pSpeedLimits = pSpeedLimits->NextSiblingElement("SpeedLimits")) { for (TiXmlElement* pLimit = pSpeedLimits->FirstChildElement(names[i]); pLimit; pLimit = pLimit->NextSiblingElement(names[i])) { for (TiXmlElement* pRule = pLimit->FirstChildElement("Rule"); pRule; pRule = pRule->NextSiblingElement("Rule")) { CSpeedLimit limit; if (!limit.Load(pRule)) continue; if (m_sSpeedLimits[i].size() < 20000) m_sSpeedLimits[i].push_back(limit); } } } } return TRUE; }