diff options
| -rw-r--r-- | editor/editor_settings.cpp | 31 | 
1 files changed, 19 insertions, 12 deletions
diff --git a/editor/editor_settings.cpp b/editor/editor_settings.cpp index ca1387007e..2925e7a496 100644 --- a/editor/editor_settings.cpp +++ b/editor/editor_settings.cpp @@ -608,6 +608,18 @@ void EditorSettings::_load_defaults(Ref<ConfigFile> p_extra_config) {  	_initial_set("run/output/always_open_output_on_play", true);  	_initial_set("run/output/always_close_output_on_stop", false); +	/* Network */ + +	// Debug +	_initial_set("network/debug/remote_host", "127.0.0.1"); // Hints provided in setup_network + +	_initial_set("network/debug/remote_port", 6007); +	hints["network/debug/remote_port"] = PropertyInfo(Variant::INT, "network/debug/remote_port", PROPERTY_HINT_RANGE, "1,65535,1"); + +	// SSL +	_initial_set("network/ssl/editor_ssl_certificates", _SYSTEM_CERTS_PATH); +	hints["network/ssl/editor_ssl_certificates"] = PropertyInfo(Variant::STRING, "network/ssl/editor_ssl_certificates", PROPERTY_HINT_GLOBAL_FILE, "*.crt,*.pem"); +  	/* Extra config */  	_initial_set("project_manager/sorting_order", 0); @@ -993,11 +1005,11 @@ void EditorSettings::setup_network() {  	List<IP_Address> local_ip;  	IP::get_singleton()->get_local_addresses(&local_ip); -	String lip = "127.0.0.1";  	String hint;  	String current = has_setting("network/debug/remote_host") ? get("network/debug/remote_host") : ""; -	int port = has_setting("network/debug/remote_port") ? (int)get("network/debug/remote_port") : 6007; +	String selected = "127.0.0.1"; +	// Check that current remote_host is a valid interface address and populate hints.  	for (List<IP_Address>::Element *E = local_ip.front(); E; E = E->next()) {  		String ip = E->get(); @@ -1008,23 +1020,18 @@ void EditorSettings::setup_network() {  		// Same goes for IPv4 link-local (APIPA) addresses.  		if (ip.begins_with("169.254.")) // 169.254.0.0/16  			continue; +		// Select current IP (found)  		if (ip == current) -			lip = current; //so it saves +			selected = ip;  		if (hint != "")  			hint += ",";  		hint += ip;  	} -	_initial_set("network/debug/remote_host", lip); +	// Add hints with valid IP addresses to remote_host property.  	add_property_hint(PropertyInfo(Variant::STRING, "network/debug/remote_host", PROPERTY_HINT_ENUM, hint)); - -	_initial_set("network/debug/remote_port", port); -	add_property_hint(PropertyInfo(Variant::INT, "network/debug/remote_port", PROPERTY_HINT_RANGE, "1,65535,1")); - -	// Editor SSL certificates override -	String certs = has_setting("network/ssl/editor_ssl_certificates") ? get("network/ssl/editor_ssl_certificates") : _SYSTEM_CERTS_PATH; -	_initial_set("network/ssl/editor_ssl_certificates", certs); -	add_property_hint(PropertyInfo(Variant::STRING, "network/ssl/editor_ssl_certificates", PROPERTY_HINT_GLOBAL_FILE, "*.crt,*.pem")); +	// Fix potentially invalid remote_host due to network change. +	set("network/debug/remote_host", selected);  }  void EditorSettings::save() {  |