//----------------------------------------------------------------------- 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; } } }
ConnectionList CPosixNetworkManager::GetConnections() { FindNetworkInterfaces(); if (CanManageConnections()) RestoreSavedConnection(); else RestoreSystemConnection(); return m_connections; }
//----------------------------------------------------------------------- //----------------------------------------------------------------------- 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(); }