コード例 #1
0
//-----------------------------------------------------------------------
void CPosixNetworkManager::RestoreSavedConnection()
{
  CLog::Log(LOGDEBUG, "NetworkManager: Restoring saved connection");

  std::string saved_name       = g_guiSettings.GetString("network.essid");

  CIPConfig saved_ipconfig;
  saved_ipconfig.m_method      = (IPConfigMethod)g_guiSettings.GetInt("network.method");
  saved_ipconfig.m_address     = g_guiSettings.GetString("network.address");
  saved_ipconfig.m_netmask     = g_guiSettings.GetString("network.netmask");
  saved_ipconfig.m_gateway     = g_guiSettings.GetString("network.gateway");
  saved_ipconfig.m_nameserver  = g_guiSettings.GetString("network.nameserver");

  for (size_t i = 0; i < m_connections.size(); i++)
  {
    std::string connection_name = ((CPosixConnection*)m_connections[i].get())->GetName();
    if (connection_name.find(saved_name) != std::string::npos)
    {
      if (!((CPosixConnection*)m_connections[i].get())->Connect(NULL, saved_ipconfig))
      {
        // best we can do is try an existing system connection
        RestoreSystemConnection();
      }
      break;
    }
  }
}
コード例 #2
0
ConnectionList CPosixNetworkManager::GetConnections()
{
  FindNetworkInterfaces();
  if (CanManageConnections())
    RestoreSavedConnection();
  else
    RestoreSystemConnection();
  return m_connections;
}
コード例 #3
0
//-----------------------------------------------------------------------
//-----------------------------------------------------------------------
CPosixNetworkManager::CPosixNetworkManager()
{
  CLog::Log(LOGDEBUG, "NetworkManager: PosixNetworkManager created");
  m_socket = socket(AF_INET, SOCK_DGRAM, 0);
  m_post_failed = false;
  FindNetworkInterfaces();
  if (CanManageConnections())
    RestoreSavedConnection();
  else
    RestoreSystemConnection();
}