Ejemplo n.º 1
0
void DNSUpdater::updateCredentials()
{
  if (m_state == FATAL) return;
  Preferences* const pref = Preferences::instance();
  bool change = false;
  // Get DNS service information
  if (m_service != pref->getDynDNSService()) {
    m_service = pref->getDynDNSService();
    change = true;
  }
  if (m_domain != pref->getDynDomainName()) {
    m_domain = pref->getDynDomainName();
    QRegExp domain_regex("^(?:(?!\\d|-)[a-zA-Z0-9\\-]{1,63}\\.)+[a-zA-Z]{2,}$");
    if (domain_regex.indexIn(m_domain) < 0) {
      QBtSession::instance()->addConsoleMessage(tr("Dynamic DNS error: supplied domain name is invalid."),
                                                "red");
      m_lastIP.clear();
      m_ipCheckTimer.stop();
      m_state = INVALID_CREDS;
      return;
    }
    change = true;
  }
  if (m_username != pref->getDynDNSUsername()) {
    m_username = pref->getDynDNSUsername();
    if (m_username.length() < 4) {
      QBtSession::instance()->addConsoleMessage(tr("Dynamic DNS error: supplied username is too short."),
                                                "red");
      m_lastIP.clear();
      m_ipCheckTimer.stop();
      m_state = INVALID_CREDS;
      return;
    }
    change = true;
  }
  if (m_password != pref->getDynDNSPassword()) {
    m_password = pref->getDynDNSPassword();
    if (m_password.length() < 4) {
      QBtSession::instance()->addConsoleMessage(tr("Dynamic DNS error: supplied password is too short."),
                                                "red");
      m_lastIP.clear();
      m_ipCheckTimer.stop();
      m_state = INVALID_CREDS;
      return;
    }
    change = true;
  }

  if (m_state == INVALID_CREDS && change) {
    m_state = OK; // Try again
    m_ipCheckTimer.start();
    checkPublicIP();
  }
}
Ejemplo n.º 2
0
DNSUpdater::DNSUpdater(QObject *parent) :
  QObject(parent), m_state(OK), m_service(DNS::NONE)
{
  updateCredentials();

  // Load saved settings from previous session
  const Preferences* const pref = Preferences::instance();
  m_lastIPCheckTime = pref->getDNSLastUpd();
  m_lastIP = QHostAddress(pref->getDNSLastIP());

  // Start IP checking timer
  m_ipCheckTimer.setInterval(IP_CHECK_INTERVAL_MS);
  connect(&m_ipCheckTimer, SIGNAL(timeout()), SLOT(checkPublicIP()));
  m_ipCheckTimer.start();

  // Check lastUpdate to avoid flooding
  if (!m_lastIPCheckTime.isValid() ||
      m_lastIPCheckTime.secsTo(QDateTime::currentDateTime())*1000 > IP_CHECK_INTERVAL_MS) {
    checkPublicIP();
  }
}
Ejemplo n.º 3
0
DNSUpdater::DNSUpdater(QObject *parent) :
  QObject(parent), m_state(OK), m_service(DNS::NONE)
{
  updateCredentials();

  // Load saved settings from previous session
  QIniSettings settings;
  m_lastIPCheckTime = settings.value("DNSUpdater/lastUpdateTime").toDateTime();
  m_lastIP = QHostAddress(settings.value("DNSUpdater/lastIP").toString());

  // Start IP checking timer
  m_ipCheckTimer.setInterval(IP_CHECK_INTERVAL_MS);
  connect(&m_ipCheckTimer, SIGNAL(timeout()), SLOT(checkPublicIP()));
  m_ipCheckTimer.start();

  // Check lastUpdate to avoid flooding
  if (!m_lastIPCheckTime.isValid() ||
      m_lastIPCheckTime.secsTo(QDateTime::currentDateTime())*1000 > IP_CHECK_INTERVAL_MS) {
    checkPublicIP();
  }
}