Shortcuts::Shortcuts() { Changed = false; auto cfg = Global->Db->CreateShortcutsConfig(); auto root = cfg->GetKeyID(0,FolderShortcutsKey); if (root) { for_each_cnt(RANGE(Items, i, size_t index) { i.clear(); unsigned __int64 key = cfg->GetKeyID(root, std::to_wstring(index)); if (key) { for(size_t j=0; ; j++) { const auto sIndex = std::to_wstring(j); ShortcutItem Item; if (!cfg->GetValue(key, RecTypeName[PSCR_RT_SHORTCUT] + sIndex, Item.strFolder)) break; cfg->GetValue(key, RecTypeName[PSCR_RT_NAME] + sIndex, Item.strName); string strPluginGuid; cfg->GetValue(key, RecTypeName[PSCR_RT_PLUGINGUID] + sIndex, strPluginGuid); if(!StrToGuid(strPluginGuid, Item.PluginGuid)) Item.PluginGuid=FarGuid; cfg->GetValue(key, RecTypeName[PSCR_RT_PLUGINFILE] + sIndex, Item.strPluginFile); cfg->GetValue(key, RecTypeName[PSCR_RT_PLUGINDATA] + sIndex, Item.strPluginData); i.emplace_back(std::move(Item)); } } });
char * TrackerConnection::GetTrackerURL(TorrentFileData * tf, const char *url, char * peer_id) { char * trackerURL = new char[512]; char temp[2]; strcpy(temp, " "); strcpy(trackerURL, ""); for(int i = 0; i < (int)strlen(url); i++) { // gets rid of extra spaces temp[0] = url[i]; if(temp[0] != ' ') { strcat(trackerURL, temp); } } int port; char cport[5+1]; port = rand()%10 + 49100; _itoa(port,cport,10); strcat(trackerURL, "?info_hash="); strcat(trackerURL, ConvertToHash(tf->m_hash).c_str()); strcat(trackerURL, "&peer_id="); strcat(trackerURL, peer_id); strcat(trackerURL, "&port="); strcat(trackerURL, cport); strcat(trackerURL, "&uploaded="); strcat(trackerURL, "0"); strcat(trackerURL, "&downloaded=0&left="); strcat(trackerURL, "0"); strcat(trackerURL, "&numwant=1000"); strcat(trackerURL, "&compact=1&key="); char * key_id = GetKeyID(); strcat(trackerURL, key_id); delete [] key_id; return trackerURL; }