void CFileZillaEnginePrivate::RegisterFailedLoginAttempt(const CServer& server, bool critical) { std::list<t_failedLogins>::iterator iter = m_failedLogins.begin(); while (iter != m_failedLogins.end()) { const wxTimeSpan span = wxDateTime::UNow() - iter->time; if (span.GetSeconds() >= m_pOptions->GetOptionVal(OPTION_RECONNECTDELAY) || iter->server == server || (!critical && (iter->server.GetHost() == server.GetHost() && iter->server.GetPort() == server.GetPort()))) { std::list<t_failedLogins>::iterator prev = iter; iter++; m_failedLogins.erase(prev); } else iter++; } t_failedLogins failure; failure.server = server; failure.time = wxDateTime::UNow(); m_failedLogins.push_back(failure); }
bool CUpdater::LongTimeSinceLastCheck() const { wxString const lastCheckStr = COptions::Get()->GetOption(OPTION_UPDATECHECK_LASTDATE); if (lastCheckStr == _T("")) return true; wxDateTime lastCheck; lastCheck.ParseDateTime(lastCheckStr); if (!lastCheck.IsValid()) return true; wxTimeSpan const span = wxDateTime::Now() - lastCheck; if (span.GetSeconds() < 0) // Last check in future return true; int days = 1; if (!CBuildInfo::IsUnstable()) days = COptions::Get()->GetOptionVal(OPTION_UPDATECHECK_INTERVAL); return span.GetDays() >= days; }
unsigned int CFileZillaEnginePrivate::GetRemainingReconnectDelay(const CServer& server) { std::list<t_failedLogins>::iterator iter = m_failedLogins.begin(); while (iter != m_failedLogins.end()) { const wxTimeSpan span = wxDateTime::UNow() - iter->time; const int delay = m_pOptions->GetOptionVal(OPTION_RECONNECTDELAY); if (span.GetSeconds() >= delay) { std::list<t_failedLogins>::iterator prev = iter; iter++; m_failedLogins.erase(prev); } else if (!iter->critical && iter->server.GetHost() == server.GetHost() && iter->server.GetPort() == server.GetPort()) return delay * 1000 - span.GetMilliseconds().GetLo(); else if (iter->server == server) return delay * 1000 - span.GetMilliseconds().GetLo(); else iter++; } return 0; }
bool wxTimeSpinCtrl::SetValue(const wxTimeSpan &span) { m_txt->SetValue(span.Format(m_format)); spinValue = span.GetSeconds().GetLo(); return true; }