Пример #1
0
CHttpServer::CHttpServer(int Port, QObject* qObject)
{
	m_Port = Port;
	if(!Listen(Port))
		LogLine(LOG_ERROR, tr("Failed to listen on http port"));

	m_TransferBufferSize = KB2B(4);
	m_KeepAlive = 115; // seconds
}
Пример #2
0
bool CTorrent::MakeTorrent(uint64 uPieceLength, bool bMerkle, const QString& Name, bool bPrivate)
{
    CFile* pFile = GetFile();

    if(!pFile->IsComplete())
    {
        LogLine(LOG_DEBUG | LOG_ERROR, tr("A torrent can not be made form an Incompelte file %1").arg(pFile->GetFileName()));
        return false;
    }

    if(uPieceLength < KB2B(16)) //if(!uPieceLength)
    {
        uPieceLength = pFile->GetFileSize() / (KB2B(40) / 20); // target hast set size 40 KB

        uint64 i = KB2B(16);
        for (; i < MB2B(32); i *= 2)
        {
            if (i >= uPieceLength)
                break;
        }
        uPieceLength = i;
    }

    m_TorrentInfo = new CTorrentInfo(this);
    m_TorrentInfo->SetTorrentName(Name.isEmpty() ? pFile->GetFileName() : Name);
    m_TorrentInfo->SetTotalLength(pFile->GetFileSize());
    if(bPrivate)
        m_TorrentInfo->SetPrivate();

    m_TorrentInfo->SetProperty("CreationTime", QDateTime::currentDateTime());

    ASSERT(m_pHash.isNull());
    if(bMerkle)
        m_pHash = CFileHashPtr(new CFileHashTree(HashTorrent, m_TorrentInfo->GetTotalLength(), uPieceLength));
    else
        m_pHash = CFileHashPtr(new CFileHashSet(HashTorrent, m_TorrentInfo->GetTotalLength(), uPieceLength));
    return true;
}
Пример #3
0
CFileHashSet::CFileHashSet(EFileHashType eType, uint64 TotalSize, uint64 PartSize)
: CFileHashEx(eType, TotalSize), m_SetMutex(QReadWriteLock::Recursive)
{
	switch(eType)
	{
		case HashEd2k:		
			ASSERT(PartSize == -1 || PartSize == ED2K_PARTSIZE);	
			m_PartSize = ED2K_PARTSIZE;	
			break;
		case HashTorrent:	
			if(PartSize == -1 ) 
				m_PartSize = KB2B(64); 
			else	
				m_PartSize = PartSize; 
			break;
		default: 
			m_PartSize = -1;
			ASSERT(0);
	}
}
Пример #4
0
void CUDTSocketSession::Process()
{
	if(!IsValid())
		return;

	UDTSTATUS Value = UDT::getsockstate(m_Client);
	if(Value == CONNECTING)
		return;
	else if(Value != CONNECTED)
	{
		m_LastActivity = 0; // timeout now
		return;
	}

	for(;;) // repeat untill all data is read
	{
		/*timeval tv;
		tv.tv_sec = 0;
		tv.tv_usec = 0;
		UDT::UDSET readfds;
		UD_ZERO(&readfds);
		UD_SET(m_Client, &readfds);
		int res	= UDT::select(0, &readfds, NULL, NULL, &tv); // this is soooo slow
		if (!((res != UDT::ERROR) && (UD_ISSET(m_Client, &readfds))))
			break;*/

		const uint64 Size = KB2B(16);
		char Buffer[Size];
		int Recived = UDT::recv(m_Client, (char*)Buffer, Size, 0);
		if (UDT::ERROR == Recived)
		{
			LogLine(LOG_ERROR, L"recv: %S", UDT::getlasterror().getErrorMessage());
			break;
		}
		else if(Recived == 0)
			break; // hothing (more) to be read

		StreamIn((byte*)Buffer, Recived);

		m_LastActivity = GetCurTick();
	}

	CSocketSession::Process();

	for(;m_Sending.GetSize() > 0;) // repeat untill all data is sent
	{
		/*timeval tv;
		tv.tv_sec = 0;
		tv.tv_usec = 0;
		UDT::UDSET writefds;
		UD_ZERO(&writefds);
		UD_SET(m_Client, &writefds);
		int res	= UDT::select(0, NULL, &writefds, NULL, &tv);
		if (!((res != UDT::ERROR) && (UD_ISSET(m_Client, &writefds))))
			break;*/

		/*uint32_t InBuffer = 0;
		int InSize = sizeof(InBuffer);
		UDT::getsockopt(m_Client, 0, UDT_SNDDATA, &InBuffer, &InSize);
		if(InBuffer > 0)
			break;*/

		int ToGo = m_Sending.GetSize();
		/*if(ToGo > KB2B(10))
			ToGo = KB2B(10);*/
		int Sent = UDT::send(m_Client, (char*)m_Sending.GetBuffer(), ToGo, 0);
		if (UDT::ERROR == Sent)
		{
			LogLine(LOG_ERROR, L"recv: %S", UDT::getlasterror().getErrorMessage());
			break;
		}

		m_Sending.ShiftData(Sent);

		m_LastActivity = GetCurTick();

		if(Sent < ToGo)
			break;
	}
}
Пример #5
0
QMap<QString, CSettings::SSetting> CNeoCore::GetDefaultCoreSettings()
{
	QMap<QString, CSettings::SSetting> Settings;

	// For values with limits is Default, Minimum, Maximum

	Settings.insert("Log/Merge", CSettings::SSetting(true));
	Settings.insert("Log/Store", CSettings::SSetting(false));
	Settings.insert("Log/Limit", CSettings::SSetting(10000,1000,100000));
	Settings.insert("Log/Level", CSettings::SSetting(1)); // 0 basic, 1 normal, 2 verbose

#ifdef _DEBUG
	Settings.insert("Modules/AutoStart",CSettings::SSetting(0));
#else
	Settings.insert("Modules/AutoStart",CSettings::SSetting(1));
#endif
	Settings.insert("Modules/NeoKad",CSettings::SSetting("NeoKad"));
	Settings.insert("Modules/MuleKad",CSettings::SSetting("MuleKad"));

	Settings.insert("Content/SaveInterval", CSettings::SSetting(MIN2S(5)));
	Settings.insert("Content/Temp", CSettings::SSetting(""));
	Settings.insert("Content/Incoming", CSettings::SSetting(""));
	Settings.insert("Content/UnifyedDirs", CSettings::SSetting(0));
	Settings.insert("Content/Shared", CSettings::SSetting(QStringList("")));
	Settings.insert("Content/VerifyTime", CSettings::SSetting(30));
	Settings.insert("Content/VerifySize", CSettings::SSetting(MB2B(5)));
	Settings.insert("Content/CacheLimit", CSettings::SSetting(MB2B(256), MB2B(128), MB2B(1024)));
	Settings.insert("Content/AddPaused", CSettings::SSetting(false));
	Settings.insert("Content/ShareNew", CSettings::SSetting(true));
	//Settings.insert("Content/ShowTemp", CSettings::SSetting(false));
	Settings.insert("Content/MagnetDomain", CSettings::SSetting("http://link.neoloader.to/"));
	Settings.insert("Content/MagnetRetry", CSettings::SSetting(MIN2S(10)));
#ifdef DECODER
	Settings.insert("Content/MagnetTimeLimit", CSettings::SSetting(MIN2S(60)));
	Settings.insert("Content/MagnetVolumeLimit", CSettings::SSetting(15));
	Settings.insert("Content/MagnetAllowDisplay", true);
#endif
	Settings.insert("Content/EndGameVolume", CSettings::SSetting(5,0,10));
	//Settings.insert("Content/AlwaysEndGame", CSettings::SSetting(true));
	Settings.insert("Content/FuseMount", CSettings::SSetting(""));
#ifndef WIN32
    Settings.insert("Content/FuseOptions", CSettings::SSetting("-o|allow_other"));
#endif
	Settings.insert("Content/IgnoreLastModified", CSettings::SSetting(0));
	Settings.insert("Content/ShareRatio", CSettings::SSetting(0)); // 0 means no ratio
	Settings.insert("Content/ShareTime", CSettings::SSetting(0)); // 0 means no limit
	Settings.insert("Content/AutoP2P", CSettings::SSetting(false));
	Settings.insert("Content/PreparePreview", CSettings::SSetting(false));
	Settings.insert("Content/Streamable", CSettings::SSetting("(mp4|m4v|divx|avi|mkv|mov|wmv|asf|mped|mpg|flv)"));
	Settings.insert("Content/FrontLoadSize", CSettings::SSetting(MB2B(8)));
	Settings.insert("Content/BackLoadSize", CSettings::SSetting(MB2B(2)));

	Settings.insert("Content/Preallocation", CSettings::SSetting(MB2B(100)));
	Settings.insert("Content/CalculateHashes", CSettings::SSetting(true));

	Settings.insert("Content/SaveSearch", CSettings::SSetting(true));

#ifdef _DEBUG
	Settings.insert("Other/PreventStandby", CSettings::SSetting(false));
#else
	Settings.insert("Other/PreventStandby", CSettings::SSetting(true));
#endif

	Settings.insert("Bandwidth/Upload", CSettings::SSetting(-1));
	Settings.insert("Bandwidth/Download", CSettings::SSetting(-1));
#ifdef _DEBUG
	Settings.insert("Bandwidth/UseUPnP",CSettings::SSetting(false));
#else
	Settings.insert("Bandwidth/UseUPnP",CSettings::SSetting(true));
#endif
	Settings.insert("Bandwidth/UseIPv6",CSettings::SSetting(false));
	Settings.insert("Bandwidth/DefaultNIC",CSettings::SSetting(""));
	Settings.insert("Bandwidth/WebProxy", CSettings::SSetting(""));
	Settings.insert("Bandwidth/MaxConnections", CSettings::SSetting(2500));
	Settings.insert("Bandwidth/MaxNewPer5Sec", CSettings::SSetting(250));
	Settings.insert("Bandwidth/TransportLimiting", CSettings::SSetting(true));
	Settings.insert("Bandwidth/FrameOverhead", CSettings::SSetting(18));

	Settings.insert("Upload/HistoryDepth", CSettings::SSetting(10,50,100));
	Settings.insert("Upload/UpWaitTime", CSettings::SSetting(HR2S(3),HR2S(1),HR2S(5)));
	Settings.insert("Upload/SlotSpeed", CSettings::SSetting(KB2B(8)));
	//Settings.insert("Upload/SlotFocus", CSettings::SSetting(false));
	Settings.insert("Upload/TrickleVolume", CSettings::SSetting(2));
	Settings.insert("Upload/TrickleSpeed", CSettings::SSetting(KB2B(1)));
	Settings.insert("Upload/DropBlocking", CSettings::SSetting(false));

	Settings.insert("Pinger/MinSpeed", CSettings::SSetting(KB2B(10))); // 10 kb/s
	Settings.insert("Pinger/MaxSpeed", CSettings::SSetting(-1));
	Settings.insert("Pinger/HostsToTrace", CSettings::SSetting(10));
	Settings.insert("Pinger/MaxFails", CSettings::SSetting(60));
	Settings.insert("Pinger/InitialPings", CSettings::SSetting(10));
	Settings.insert("Pinger/ToleranceVal", CSettings::SSetting(""));
	Settings.insert("Pinger/UpDivider", CSettings::SSetting(10));
	Settings.insert("Pinger/DownDivider", CSettings::SSetting(10));
	Settings.insert("Pinger/Average", CSettings::SSetting(3));
	Settings.insert("Pinger/Host", CSettings::SSetting(""));


	Settings.insert("PeerWatch/Enable",CSettings::SSetting(2));
	Settings.insert("PeerWatch/BlockTime", CSettings::SSetting(MIN2S(10),MIN2S(5),MIN2S(60)));
	Settings.insert("PeerWatch/BanTime", CSettings::SSetting(HR2S(2),HR2S(1),HR2S(6)));
	//Settings.insert("PeerWatch/IPFilter",CSettings::SSetting(""));

	Settings.insert("NeoShare/IdleTimeout",CSettings::SSetting(MIN2S(2),MIN2S(1),MIN2S(5)));
	Settings.insert("NeoShare/KeepAlive",CSettings::SSetting(60,30,MIN2S(3)));
	Settings.insert("NeoShare/ConnectTimeout",CSettings::SSetting(20,10,120));
	Settings.insert("NeoShare/RouteTimeout", CSettings::SSetting(MIN2S(5),MIN2S(1),MIN2S(15)));
	Settings.insert("NeoShare/MaxEntities", CSettings::SSetting(250));
	Settings.insert("NeoShare/RequestInterval",CSettings::SSetting(MIN2S(20),MIN2S(10),MIN2S(60)));
	Settings.insert("NeoShare/RequestLimit",CSettings::SSetting(100,10,250));
	Settings.insert("NeoShare/SaveInterval", CSettings::SSetting(MIN2S(5)));
	Settings.insert("NeoShare/SaveEntities",CSettings::SSetting(false));
	Settings.insert("NeoShare/KadPublishmentVolume",CSettings::SSetting(10,5,100));
	Settings.insert("NeoShare/KadLookupVolume",CSettings::SSetting(20,5,100));
	Settings.insert("NeoShare/KadLookupInterval",CSettings::SSetting(MIN2S(20),MIN2S(10),MIN2S(60)));
	Settings.insert("NeoShare/HubCheckoutInterval",CSettings::SSetting(MIN2S(40),MIN2S(20),MIN2S(120)));
	Settings.insert("NeoShare/LoadTreshold", CSettings::SSetting(75,50,100));
	Settings.insert("NeoShare/SaturationLimit", CSettings::SSetting(10,5,20));
	Settings.insert("NeoShare/Enable", CSettings::SSetting(true));
	Settings.insert("NeoShare/Anonymity", CSettings::SSetting(0, 0, 4));
	Settings.insert("NeoShare/Upload", CSettings::SSetting(-1));
	Settings.insert("NeoShare/Download", CSettings::SSetting(-1));
	Settings.insert("NeoShare/Priority", CSettings::SSetting(0));

	Settings.insert("NeoKad/Port", CSettings::SSetting(GetRandomInt(9000, 9999)));
	Settings.insert("NeoKad/TargetID", CSettings::SSetting(""));
	Settings.insert("NeoKad/LastDistance", CSettings::SSetting(0));
	Settings.insert("NeoKad/EntityKey", CSettings::SSetting(""));
	Settings.insert("NeoKad/StoreKey", CSettings::SSetting(""));

	Settings.insert("BitTorrent/Tracking", CSettings::SSetting("All-Tiers")); // "No-Trackers" "One-Tracker" "All-Trackers" "All-Tiers"
	Settings.insert("BitTorrent/MaxPeers", CSettings::SSetting(500, 10, 1000));
	Settings.insert("BitTorrent/ServerPort", CSettings::SSetting(GetRandomInt(6800, 6900)));
	Settings.insert("BitTorrent/AnnounceInterval",CSettings::SSetting(MIN2S(5),MIN2S(1),MIN2S(60)));
	Settings.insert("BitTorrent/AnnounceWanted",CSettings::SSetting(200,1,1000));
	Settings.insert("BitTorrent/ConnectTimeout",CSettings::SSetting(20,10,30));
	Settings.insert("BitTorrent/IdleTimeout",CSettings::SSetting(90,15,320));
	Settings.insert("BitTorrent/KeepAlive",CSettings::SSetting(30,15,60));
	Settings.insert("BitTorrent/RequestTimeout",CSettings::SSetting(60,15,120));
	Settings.insert("BitTorrent/RequestLimit",CSettings::SSetting(250,100,250));
	//Settings.insert("BitTorrent/RetryInterval",CSettings::SSetting(MIN2S(10),MIN2S(1),MIN2S(58)));
	Settings.insert("BitTorrent/Encryption", CSettings::SSetting("Support"));
	Settings.insert("BitTorrent/uTP", CSettings::SSetting(true));
	Settings.insert("BitTorrent/MaxRendezvous", CSettings::SSetting(5,3,10));
	Settings.insert("BitTorrent/CryptTCPPaddingLength",CSettings::SSetting(127,0,511));
	Settings.insert("BitTorrent/EnableTracker",CSettings::SSetting(1)); // 0 off, 1 on, 2 on but only for own torrents
	Settings.insert("BitTorrent/SavePeers",CSettings::SSetting(false));
	Settings.insert("BitTorrent/Enable", CSettings::SSetting(true));
	Settings.insert("BitTorrent/MaxTorrents", CSettings::SSetting(5));
	Settings.insert("BitTorrent/Upload", CSettings::SSetting(-1));
	Settings.insert("BitTorrent/Download", CSettings::SSetting(-1));
	Settings.insert("BitTorrent/Priority", CSettings::SSetting(0));

	Settings.insert("MainlineDHT/NodeID", CSettings::SSetting(""));
	Settings.insert("MainlineDHT/Address", CSettings::SSetting(""));
	Settings.insert("MainlineDHT/RouterNodes", CSettings::SSetting(QString("router.bittorrent.com:6881|router.utorrent.com:6881").split("|")));

	Settings.insert("Ed2kMule/UserHash", CSettings::SSetting(""));
	Settings.insert("Ed2kMule/NickName", CSettings::SSetting("http://neoloader.to"));
	Settings.insert("Ed2kMule/MaxSources", CSettings::SSetting(500, 50, 5000));
	Settings.insert("Ed2kMule/TCPPort", CSettings::SSetting(GetRandomInt(4600, 4700)));
	Settings.insert("Ed2kMule/UDPPort", CSettings::SSetting(GetRandomInt(4700, 4800)));
	Settings.insert("Ed2kMule/CheckFWInterval", CSettings::SSetting(MIN2S(15), MIN2S(10), MIN2S(60)));
	Settings.insert("Ed2kMule/ConnectTimeout",CSettings::SSetting(20,10,30));
	Settings.insert("Ed2kMule/IdleTimeout",CSettings::SSetting(60,15,320));
	Settings.insert("Ed2kMule/IncomingTimeOut",CSettings::SSetting(MIN2S(10),MIN2S(5),MIN2S(60)));
	Settings.insert("Ed2kMule/ReaskInterval",CSettings::SSetting(MIN2S(29),MIN2S(10),MIN2S(58)));
	Settings.insert("Ed2kMule/LanMode", CSettings::SSetting(false));
	Settings.insert("Ed2kMule/Obfuscation", CSettings::SSetting("Support"));
	Settings.insert("Ed2kMule/CryptTCPPaddingLength",CSettings::SSetting(127,0,254));
	Settings.insert("Ed2kMule/NatTraversal", CSettings::SSetting(true));
	Settings.insert("Ed2kMule/KadLookupInterval",CSettings::SSetting(MIN2S(29),MIN2S(10),MIN2S(58)));
	Settings.insert("Ed2kMule/KadMaxLookup",CSettings::SSetting(5,5,50));
	Settings.insert("Ed2kMule/SXInterval",CSettings::SSetting(MIN2S(10),MIN2S(5),MIN2S(40)));
	Settings.insert("Ed2kMule/SXVolume",CSettings::SSetting(20,5,50));
	Settings.insert("Ed2kMule/SaveSources",CSettings::SSetting(false));
	Settings.insert("Ed2kMule/Enable", CSettings::SSetting(true));
	Settings.insert("Ed2kMule/ShareDefault", CSettings::SSetting(false));
	Settings.insert("Ed2kMule/Upload", CSettings::SSetting(-1));
	Settings.insert("Ed2kMule/Download", CSettings::SSetting(-1));
	Settings.insert("Ed2kMule/Priority", CSettings::SSetting(0));
	Settings.insert("Ed2kMule/HashMode", CSettings::SSetting("Random-Secure")); // Random, Static, Random-Secure, Static-Secure
	Settings.insert("Ed2kMule/SUIKey", CSettings::SSetting(""));
	Settings.insert("Ed2kMule/HashAge", CSettings::SSetting(""));
	Settings.insert("Ed2kMule/UseServers", CSettings::SSetting("Static")); // None, Custom, Static, One, Booth
	Settings.insert("Ed2kMule/StaticServers", CSettings::SSetting(QString("ed2k://|server|91.200.42.46|1176|/\r\ned2k://|server|91.200.42.47|3883|/\r\ned2k://|server|91.200.42.119|9939|/\r\ned2k://|server|176.103.48.36|4184|/\r\ned2k://|server|77.120.115.66|5041|/\r\ned2k://|server|46.105.126.71|4661|/").split("\r\n")));
	Settings.insert("Ed2kMule/KeepServers",CSettings::SSetting(MIN2S(10),MIN2S(5),MIN2S(58)));
	Settings.insert("Ed2kMule/MinHordeSlots",CSettings::SSetting(1,0,10));

	Settings.insert("Hoster/MinWebTasks", CSettings::SSetting(10));
	Settings.insert("Hoster/MaxNewPer5Sec", CSettings::SSetting(25));
	Settings.insert("Hoster/MaxWebTasks", CSettings::SSetting(100));
	Settings.insert("Hoster/AccessFailedTimeOut", CSettings::SSetting(10));
	Settings.insert("Hoster/ServerBanTime", CSettings::SSetting(HR2S(2)));
	Settings.insert("Hoster/ServerBanTreshold", CSettings::SSetting(20));
	Settings.insert("Hoster/ServerDownTreshold", CSettings::SSetting(4));
	Settings.insert("Hoster/MaxUploads", CSettings::SSetting(1));
	Settings.insert("Hoster/MaxDownloads", CSettings::SSetting(5));
	Settings.insert("Hoster/MaxChecks", CSettings::SSetting(5));
	Settings.insert("Hoster/ReCheckInterval", CSettings::SSetting(HR2S(24),HR2S(1),HR2S(240)));
	Settings.insert("Hoster/AutoReUpload", CSettings::SSetting(true));
	Settings.insert("Hoster/MaxCheckouts", CSettings::SSetting(3));
	Settings.insert("Hoster/CheckoutInterval", CSettings::SSetting(MIN2S(60),MIN2S(30),HR2S(6)));
	Settings.insert("Hoster/MaxTransferRetry", CSettings::SSetting(3));
	Settings.insert("Hoster/ServerRetryDelay", CSettings::SSetting(MIN2S(2)));
	Settings.insert("Hoster/CaptchaRetryDelay", CSettings::SSetting(MIN2S(20)));
	Settings.insert("Hoster/MaxBadCaptcha", CSettings::SSetting(3));
	Settings.insert("Hoster/ManualCaptcha", CSettings::SSetting(1));
	Settings.insert("Hoster/AutoCleanUp", CSettings::SSetting(true));
	Settings.insert("Hoster/Encap", CSettings::SSetting("7z"));
	Settings.insert("Hoster/RarPath", CSettings::SSetting(""));
	Settings.insert("Hoster/RarComment", CSettings::SSetting(""));
#ifdef CRAWLER
	Settings.insert("Hoster/DecapCleanup", CSettings::SSetting("*.url;*.lnk;thumbs.db"));
	Settings.insert("Hoster/KeepSingleArchives", CSettings::SSetting(false));
#else
	Settings.insert("Hoster/KeepSingleArchives", CSettings::SSetting(true));
#endif
	Settings.insert("Hoster/EncryptUploads", CSettings::SSetting("RC4"));
	Settings.insert("Hoster/ProtectLinks", CSettings::SSetting(true));
	Settings.insert("Hoster/Enable", CSettings::SSetting(true));
	Settings.insert("Hoster/UseCaptcha", CSettings::SSetting(false));
	Settings.insert("Hoster/PartSize", CSettings::SSetting(0));
	Settings.insert("Hoster/MaxArcTasks", CSettings::SSetting(5));
	Settings.insert("Hoster/Upload", CSettings::SSetting(-1));
	Settings.insert("Hoster/Download", CSettings::SSetting(-1));
	Settings.insert("Hoster/Priority", CSettings::SSetting(0));

	Settings.insert("HosterCache/CacheMode", CSettings::SSetting("Off")); // Off, On, All
	Settings.insert("HosterCache/SelectionMode", CSettings::SSetting("Auto")); // All, Auto, Selected - hosters
	Settings.insert("HosterCache/PartSize", CSettings::SSetting(MB2B(100)));
	Settings.insert("HosterCache/MaxAvail", CSettings::SSetting(3));
	Settings.insert("HosterCache/MaxJoints", CSettings::SSetting(1));

	Settings.insert("HashInspector/Majority",CSettings::SSetting(90,80,100));
	Settings.insert("HashInspector/Quorum",CSettings::SSetting(10,5,20));

	Settings.insert("CorruptionLogger/MonitorTime", CSettings::SSetting(HR2S(4),HR2S(2),HR2S(16)));
	Settings.insert("CorruptionLogger/DropRatio", CSettings::SSetting(40, 10, 100));

	//Settings.insert("Script/AutoUpdate", CSettings::SSetting(true));
	//Settings.insert("Script/UserName", CSettings::SSetting(""));
	//Settings.insert("Script/Password", CSettings::SSetting(""));

	Settings.insert("Browser/MaxRetries", CSettings::SSetting(3));
	Settings.insert("Browser/TimeoutSecs", CSettings::SSetting(30));
	Settings.insert("Browser/ReplyBuffer", CSettings::SSetting(MB2B(4),KB2B(256),MB2B(64)));
	Settings.insert("Browser/TransferBuffer",CSettings::SSetting(KB2B(16),KB2B(4),KB2B(256)));

	return Settings;
}