void CSpiderAddPageDlg::OnUrlChanged() { fsURL url; if (IR_SUCCESS != url.Crack (m_strUrl)) return; fsSiteInfo *site = _SitesMgr.FindSite2 (url.GetHostName (), fsNPToSiteValidFor (fsSchemeToNP (url.GetInternetScheme ()))); if (site) { if (site->strUser != NULL && m_bAuthChanged == FALSE && *url.GetUserName () == 0) { CheckDlgButton (IDC_USELOGIN, BST_CHECKED); SetDlgItemText (IDC_USER, site->strUser); if (site->strPassword) SetDlgItemText (IDC_PASSWORD, site->strPassword); UpdateEnabled (); } if (site->pGroup && m_bGroupChanged == FALSE) { m_wndGroups.SelectGroup (site->pGroup); OnChangeGroups(); } } BuildOutFolder (); }
void CSpiderAddPageDlg::OnUrlChanged() { fsURL url; if (IR_SUCCESS != url.Crack (m_strUrl)) return; CString strNewUser, strNewPassword; strNewUser = url.GetUserName (); strNewPassword = url.GetPassword (); fsSiteInfo *site = _SitesMgr.FindSite (url.GetHostName (), fsNPToSiteValidFor (fsSchemeToNP (url.GetInternetScheme ()))); if (site) { if (!m_bAuthChanged && strNewUser.IsEmpty ()) { if (!site->strUser.IsEmpty ()) { strNewUser = site->strUser; if (!site->strPassword.IsEmpty ()) strNewPassword = site->strPassword; } } if (site->pGroup && m_bGroupChanged == FALSE) { m_wndGroups.SelectGroup (site->pGroup); OnChangeGroups(); m_bGroupChanged = FALSE; } } if (!m_bAuthChanged) { CheckDlgButton (IDC_USELOGIN, !strNewUser.IsEmpty () ? BST_CHECKED : BST_UNCHECKED); SetDlgItemText (IDC_USER, strNewUser); SetDlgItemText (IDC_PASSWORD, strNewPassword); m_bAuthChanged = FALSE; UpdateEnabled (); } BuildOutFolder (); }
DWORD WINAPI fsInternetFileListMgr::_threadGetList(LPVOID lp) { fsInternetFileListMgr* pThis = (fsInternetFileListMgr*) lp; CString strProxy, strPUser, strPPassword; fsURL url; if (url.Crack (pThis->_strUrl) != IR_SUCCESS) { pThis->m_lastError = IR_BADURL; goto _lExit; } if (*url.GetHostName () == 0 || *url.GetPath () == 0) { pThis->m_lastError = IR_BADURL; goto _lExit; } if (*url.GetUserName ()) { if (pThis->m_strUser != url.GetUserName ()) { pThis->m_strUser = url.GetUserName (); pThis->m_strPassword = url.GetPassword (); pThis->Free (FALSE); pThis->m_bConnected = FALSE; } } else { if (pThis->m_strUser != pThis->_strUser) { if (pThis->_strUser != NULL || fsIsServersEqual (url.GetHostName (), pThis->m_server.GetServerName ()) == FALSE) { pThis->m_strUser = pThis->_strUser; pThis->m_strPassword = pThis->_strPassword; pThis->m_bConnected = FALSE; } } } pThis->m_bCurPathIsRoot = strcmp (url.GetPath (), "/") == 0 || strcmp (url.GetPath (), "\\") == 0; _lConnect: if (pThis->m_bConnected == FALSE || FALSE == fsIsServersEqual (pThis->m_server.GetServerName (), url.GetHostName ()) || pThis->m_server.GetScheme () != url.GetInternetScheme () ) { pThis->Free (FALSE); fsGetProxy (fsSchemeToNP (url.GetInternetScheme ()), strProxy, strPUser, strPPassword); pThis->m_session.Create (_App.Agent (), _App.InternetAccessType (), strProxy, fsSchemeToNP (url.GetInternetScheme ())); pThis->m_session.SetProxyAuth (strPUser, strPPassword); pThis->m_session.SetTimeout (_App.Timeout ()); pThis->m_server.Initialize (&pThis->m_session); pThis->m_server.UseFtpPassiveMode (pThis->m_bFtpPassiveMode); UINT cAttempts = _App.MaxAttempts (); do { pThis->Event (FLME_CONNECTING); pThis->m_lastError = pThis->m_server.Connect (pThis->_strUrl, pThis->m_strUser, pThis->m_strPassword, url.GetPort ()); if (pThis->m_lastError != IR_SUCCESS) { if (pThis->m_lastError != IR_S_FALSE) pThis->Event (FLME_ERROR); } else { if (pThis->m_server.IsFtpServer ()) pThis->Event (FLME_CONNECTED); } if (pThis->m_lastError != IR_SUCCESS) { if (pThis->m_lastError == IR_LOGINFAILURE || pThis->m_lastError == IR_INVALIDUSERNAME || pThis->m_lastError == IR_INVALIDPASSWORD) { fsSiteInfo *site = _SitesMgr.FindSite2 (url.GetHostName (), fsNPToSiteValidFor (fsSchemeToNP (url.GetInternetScheme ()))); if (site && site->strUser) { CString strPass = site->strPassword ? site->strPassword : ""; if (site->strUser != pThis->m_strUser || strPass != pThis->m_strPassword) { pThis->Event (FLME_TRYINGTOUSESITEMGRLOGIN); pThis->m_strUser = site->strUser; pThis->m_strPassword = strPass; continue; } } if (pThis->AskForLogin (url.GetHostName ())) continue; else break; } pThis->SleepInterval (); } cAttempts--; if (cAttempts == 0) break; } while (pThis->m_lastError != IR_SUCCESS && pThis->m_bAbort == FALSE); if (pThis->m_lastError == IR_SUCCESS && pThis->m_bAbort == FALSE) { if (pThis->m_server.IsFtpServer ()) { pThis->m_bConnected = TRUE; } } else { pThis->Event (FLME_STOPPED); goto _lExit2; } } else if (pThis->m_server.IsFtpServer () == FALSE) pThis->Event (FLME_CONNECTING); UINT cAttempts; cAttempts = _App.MaxAttempts (); do { if (pThis->m_server.IsFtpServer ()) pThis->Event (FLME_GETTINGLIST); fsnew1 (pThis->m_files, fsInternetURLFiles); pThis->m_files->SetHttpEventFunc (_HttpEvents, pThis); pThis->m_files->RetreiveInfoWhileGettingList (pThis->m_bRetreiveInfoWhileGettingList); pThis->m_lastError = pThis->m_files->GetList (&pThis->m_server, url.GetPath ()); if (pThis->m_lastError == IR_S_REDIRECTED) pThis->m_lastError = IR_SUCCESS; if (pThis->m_lastError != IR_SUCCESS && pThis->m_lastError != IR_S_REDIRECTED) { fsInternetURLFiles *files = pThis->m_files; pThis->m_files = NULL; delete files; if (pThis->m_lastError != IR_S_FALSE) pThis->Event (FLME_ERROR); if (pThis->m_bAbort) break; switch (pThis->m_lastError) { case IR_CONNECTIONABORTED: case IR_LOSTCONNECTION: pThis->Event (FLME_CONNECTIONWASLOST_RESTORE); pThis->m_bConnected = FALSE; goto _lConnect; break; case IR_LOGINFAILURE: case IR_INVALIDUSERNAME: case IR_INVALIDPASSWORD: if (pThis->AskForLogin (url.GetHostName ())) goto _lConnect; else { pThis->Event (FLME_STOPPED); goto _lExit2; } break; } cAttempts--; if (cAttempts == 0 || pThis->m_bAbort) break; pThis->SleepInterval (); if (pThis->m_bAbort == FALSE) pThis->Event (FLME_CONNECTING); } } while (pThis->m_lastError != IR_SUCCESS && pThis->m_bAbort == FALSE); pThis->_strUrl = NULL; if (pThis->m_lastError == IR_SUCCESS) pThis->m_vFiles.add (pThis->m_files); else { pThis->Event (FLME_STOPPED); goto _lExit2; } _lExit: if (pThis->m_lastError != IR_SUCCESS) { if (pThis->m_lastError != IR_S_FALSE) pThis->Event (FLME_ERROR); } else pThis->Event (FLME_DONE); _lExit2: pThis->m_bThread = FALSE; return 0; }
void CCreateBatchDownload::UrlChanged() { CHAR szFile [10000]; *szFile = 0; fsURL url; m_bBLParametersChanged = true; if (IR_SUCCESS != url.Crack (m_strUrl)) return; if (m_bGroupChanged == FALSE) { fsFileNameFromUrlPath (url.GetPath (), url.GetInternetScheme () == INTERNET_SCHEME_FTP, TRUE, szFile, sizeof (szFile)); int len = strlen (szFile); vmsDownloadsGroupSmartPtr grp; if (len) { int i; for (i = len-1; i > 0; i--) if (szFile [i] == '.') break; if (i && i < len-1) { i++; CHAR szExt [1000]; strcpy (szExt, szFile + i); grp = _DldsGrps.FindGroupByExt (szExt); } } if (grp == NULL) grp = _DldsGrps.FindGroup (GRP_OTHER_ID); if (grp != NULL) { if (m_wndGroups.SelectGroup (grp)) OnChangeGroups(); } m_bGroupChanged = FALSE; } CString strNewUser, strNewPassword; strNewUser = url.GetUserName (); strNewPassword = url.GetPassword (); fsSiteInfo *site = _SitesMgr.FindSite (url.GetHostName (), fsNPToSiteValidFor (fsSchemeToNP (url.GetInternetScheme ()))); if (site) { if (!m_bAuthChanged && strNewUser.IsEmpty ()) { if (!site->strUser.IsEmpty ()) { strNewUser = site->strUser; if (!site->strPassword.IsEmpty ()) strNewPassword = site->strPassword; } } if (site->pGroup && m_bGroupChanged == FALSE) { m_wndGroups.SelectGroup (site->pGroup); OnChangeGroups(); m_bGroupChanged = FALSE; } } if (!m_bAuthChanged) { m_bAuthorization = !strNewUser.IsEmpty (); CheckDlgButton (IDC_USELOGIN, m_bAuthorization ? BST_CHECKED : BST_UNCHECKED); SetDlgItemText (IDC_USER, strNewUser); SetDlgItemText (IDC_PASSWORD, strNewPassword); m_bAuthChanged = FALSE; UpdateEnabled (); } }
BOOL CSites_GeneralPage::OnApply() { CString strSite, strUser, strPassword; UINT cMaxConns; vmsDownloadsGroupSmartPtr pGroup; GetDlgItemText (IDC_SITE, strSite); if (strSite.GetLength () == 0) { MessageBox (LS (L_ENTERSITE), LS (L_INPERR), MB_ICONEXCLAMATION); GetDlgItem (IDC_SITE)->SetFocus (); return FALSE; } fsURL url; if (IR_SUCCESS == url.Crack (strSite)) { strSite = url.GetHostName (); SetDlgItemText (IDC_SITE, strSite); if (*url.GetUserName ()) { CheckDlgButton (IDC_USELOGIN, BST_CHECKED); SetDlgItemText (IDC_USER, url.GetUserName ()); if (url.GetPassword ()) SetDlgItemText (IDC_PASSWORD, url.GetPassword ()); } if (m_advanced->IsUserChangedProtocols () == FALSE) { m_pSite->dwValidFor &= ~ (SITE_VALIDFOR_HTTP|SITE_VALIDFOR_HTTPS|SITE_VALIDFOR_FTP); m_pSite->dwValidFor |= fsNPToSiteValidFor (fsSchemeToNP (url.GetInternetScheme ())); if (!m_bIsAddingSite) _SitesMgr.setDirty(); m_advanced->ToDialog (); } UpdateEnabled (); } m_advanced->FromDialog (); DWORD dwVF = m_pSite->dwValidFor; dwVF &= ~ SITE_VALIDFOR_SUBDOMAINS; fsSiteInfo *pNewSite = _SitesMgr.FindSite (strSite, dwVF, FALSE); if (pNewSite != NULL && pNewSite != m_pSite) { MessageBox (LS (L_SITEALREXISTS), LS (L_INPERR), MB_ICONEXCLAMATION); GetDlgItem (IDC_SITE)->SetFocus (); return FALSE; } if (IsDlgButtonChecked (IDC_USELOGIN) == BST_CHECKED) { GetDlgItemText (IDC_USER, strUser); GetDlgItemText (IDC_PASSWORD, strPassword); if (strUser.GetLength () == 0) { MessageBox (LS (L_ENTERUSER), LS (L_INPERR), MB_ICONEXCLAMATION); GetDlgItem (IDC_USER)->SetFocus (); return FALSE; } } if (IsDlgButtonChecked (IDC_USEMAXCONNS) == BST_CHECKED) { cMaxConns = GetDlgItemInt (IDC_MAXCONNS); if (cMaxConns == 0) { MessageBox (LS (L_MAXCONNSMUST), LS (L_INPERR), MB_ICONEXCLAMATION); GetDlgItem (IDC_MAXCONNS)->SetFocus (); return FALSE; } } else cMaxConns = UINT_MAX; if (IsDlgButtonChecked (IDC_USEDEFGROUP) == BST_CHECKED) { pGroup = m_wndGroups.GetSelectedGroup (); } m_pSite->dwFtpFlags = 0; if (IsDlgButtonChecked (IDC_USEFTPPASSIVE) == BST_CHECKED) m_pSite->dwFtpFlags |= FTP_USEPASSIVEMODE; if (IsDlgButtonChecked (IDC_DONTSENDLIST2) == BST_CHECKED) m_pSite->dwFtpFlags |= FTP_DONTSENDLIST; m_pSite->strName = strSite; m_pSite->cMaxConns = cMaxConns; m_pSite->pGroup = pGroup; if (strUser.GetLength ()) m_pSite->strUser = strUser; else m_pSite->strUser = NULL; if (strPassword.GetLength ()) m_pSite->strPassword = strPassword; else m_pSite->strPassword = NULL; if (!m_bIsAddingSite) _SitesMgr.setDirty(); return CPropertyPage::OnApply(); }