Пример #1
0
fsInternetResult fsMirrorURLsMgr::SearchForMirrors()
{
    fsInternetResult ir;

    CString strURL = m_strSearchURL;

    strURL.Replace ("%file%", m_strFile);

    if (m_uSize != _UI64_MAX)
    {
        CString strSize;
        strSize.Format ("%I64u", m_uSize);
        strURL.Replace ("%size%", strSize);
    }
    else
        strURL.Replace ("%size%", "");

    m_bAbort = FALSE;

    ir = m_dldr.Download (strURL);
    if (ir != IR_SUCCESS)
        return ir;

    return OnSearchScriptResultsReceived ();
}
Пример #2
0
fsInternetResult fsMirrorURLsMgr::SearchForMirrors()
{
	fsInternetResult ir;

	CString strURL = m_strSearchURL;

	strURL.Replace ("%file%", m_strFile);

	if (m_uSize != _UI64_MAX)
	{
		CString strSize;
		strSize.Format ("%I64u", m_uSize);
		strURL.Replace ("%size%", strSize);
	}
	else
		strURL.Replace ("%size%", "");

	m_bAbort = FALSE;

	LPCTSTR ptsz = _tcsrchr (strURL,  '/');
	if (ptsz)
	{
		tstring tstrReferer;
		LPCTSTR ptsz2 = _tcsrchr (strURL,  '?');
		if (ptsz2 < ptsz)
		{
			tstrReferer.assign (strURL, ptsz2 - (LPCTSTR)strURL);
			LPCTSTR ptsz = _tcsrchr (tstrReferer.c_str (),  '/');
			if (ptsz)
			{
				tstring tstr;
				tstr.assign (tstrReferer.c_str (), ptsz - tstrReferer.c_str () + 1);
				tstrReferer = tstr;
			}
		}
		else
		{
			tstrReferer.assign (strURL, ptsz - (LPCTSTR)strURL + 1);
		}
		m_dldr.Get_File ()->SetReferer (tstrReferer.c_str ());
	}

	ir = m_dldr.Download (strURL);
	if (ir != IR_SUCCESS)
		return ir;

	return OnSearchScriptResultsReceived ();
}