void ConnectivityManager::setup(bool v4SettingsChanged, bool v6SettingsChanged) {
	bool autoDetect4 = SETTING(AUTO_DETECT_CONNECTION) &&  SETTING(INCOMING_CONNECTIONS) != SettingsManager::INCOMING_DISABLED;
	bool autoDetect6 = SETTING(AUTO_DETECT_CONNECTION6) &&  SETTING(INCOMING_CONNECTIONS6) != SettingsManager::INCOMING_DISABLED;

	/*{
		if((!autoDetect4 && autoDetectedV4) || (!autoDetect6 && autoDetectedV6) || v4SettingsChanged || v6SettingsChanged) {
			if(v4SettingsChanged || (SETTING(INCOMING_CONNECTIONS) != SettingsManager::INCOMING_ACTIVE_UPNP)) {
				mapperV4.close();
			}
			if((SETTING(INCOMING_CONNECTIONS6) != SettingsManager::INCOMING_ACTIVE_UPNP) || v6SettingsChanged) {
				mapperV6.close();
			}
			startSocket();
		} else if(SETTING(INCOMING_CONNECTIONS) == SettingsManager::INCOMING_ACTIVE_UPNP && !runningV4) {
			// previous mappings had failed; try again
			startMapping();
		}
	}*/

	if (v4SettingsChanged || (autoDetectedV4 && !autoDetect4)) {
		mapperV4.close();
		autoDetectedV4 = false;
	}

	if (v6SettingsChanged || (autoDetectedV6 && !autoDetect6)) {
		mapperV6.close();
		autoDetectedV6 = false;
	}


	if(!autoDetect6 && autoDetectedV6)
		clearAutoSettings(true, false);
		
	if (!autoDetect4 && autoDetectedV4) {
		clearAutoSettings(false, false);
	}

	bool autoDetect = false;
	if(autoDetect4  || autoDetect6) {
		if ((!autoDetectedV4 && autoDetect4) || (!autoDetectedV6 && autoDetect6) || autoSettings.empty()) {
			detectConnection();
			autoDetect = true;
		}
	}

	if (!autoDetect && (v4SettingsChanged || v6SettingsChanged)) {
		startSocket();
	}

	if(!autoDetect4 && SETTING(INCOMING_CONNECTIONS) == SettingsManager::INCOMING_ACTIVE_UPNP && !runningV4) // previous mappings had failed; try again
		startMapping(false);

	if(!autoDetect6 && SETTING(INCOMING_CONNECTIONS6) == SettingsManager::INCOMING_ACTIVE_UPNP && !runningV4) // previous mappings had failed; try again
		startMapping(true);
}
void ConnectivityManager::setup(bool settingsChanged) {
	if(BOOLSETTING(AUTO_DETECT_CONNECTION)) {
		if (!autoDetected) detectConnection();
	} else {
		if(autoDetected || settingsChanged) {
			if(settingsChanged || (SETTING(INCOMING_CONNECTIONS) != SettingsManager::INCOMING_FIREWALL_UPNP)) {
				MappingManager::getInstance()->close();
			}
			startSocket();
		} else if(SETTING(INCOMING_CONNECTIONS) == SettingsManager::INCOMING_FIREWALL_UPNP && !MappingManager::getInstance()->getOpened()) {
			// previous mappings had failed; try again
			MappingManager::getInstance()->open();
		}
	}
}
void ConnectivityManager::setup(bool settingsChanged) {
   if(BOOLSETTING(AUTO_DETECT_CONNECTION)) {
       if (!autoDetected) detectConnection();
   } else {
        if(autoDetected || (settingsChanged && (SearchManager::getInstance()->getPort() != SETTING(UDP_PORT) || ConnectionManager::getInstance()->getPort() != SETTING(TCP_PORT) || ConnectionManager::getInstance()->getSecurePort() != SETTING(TLS_PORT) || SETTING(BIND_ADDRESS) != lastBind))) {
           if(settingsChanged || SETTING(INCOMING_CONNECTIONS) != SettingsManager::INCOMING_FIREWALL_UPNP) {
               UPnPManager::getInstance()->close();
           }
           startSocket();
       } else if(SETTING(INCOMING_CONNECTIONS) == SettingsManager::INCOMING_FIREWALL_UPNP && !UPnPManager::getInstance()->getOpened()) {
           // previous UPnP mappings had failed; try again
           UPnPManager::getInstance()->open();
       }
   }
}
Ejemplo n.º 4
0
void ConnectivityManager::setup_connections(bool settingsChanged)
{
	try
	{
		if (BOOLSETTING(AUTO_DETECT_CONNECTION))
		{
			if (!autoDetected)
				detectConnection();
		}
		else
		{
			if (autoDetected || settingsChanged)
			{
				if (settingsChanged || SETTING(INCOMING_CONNECTIONS) != SettingsManager::INCOMING_FIREWALL_UPNP)
				{
					MappingManager::getInstance()->close();
				}
				startSocket();
			}
			else if (SETTING(INCOMING_CONNECTIONS) == SettingsManager::INCOMING_FIREWALL_UPNP && !MappingManager::getInstance()->getOpened())
			{
				// previous mappings had failed; try again
				MappingManager::getInstance()->open();
			}
		}
	}
	catch (const Exception& e)
	{
		dcassert(0);
		const string l_error = "ConnectivityManager::setup error = " + e.getError();
		CFlyServerJSON::pushError(56, l_error);
	}
	if (settingsChanged)
	{
		if (SETTING(INCOMING_CONNECTIONS) != SettingsManager::INCOMING_FIREWALL_UPNP)
		{
			test_all_ports();
		}
	}
}