Remove disable_udp flag
This commit is contained in:
		
					parent
					
						
							
								990116d322
							
						
					
				
			
			
				commit
				
					
						10ce90d99b
					
				
			
		
					 5 changed files with 12 additions and 26 deletions
				
			
		| 
						 | 
					@ -102,7 +102,6 @@ void nano::add_node_flag_options (boost::program_options::options_description &
 | 
				
			||||||
		("disable_request_loop", "Disable request loop")
 | 
							("disable_request_loop", "Disable request loop")
 | 
				
			||||||
		("disable_bootstrap_listener", "Disables bootstrap processing for TCP listener (not including realtime network TCP connections)")
 | 
							("disable_bootstrap_listener", "Disables bootstrap processing for TCP listener (not including realtime network TCP connections)")
 | 
				
			||||||
		("disable_tcp_realtime", "Disables TCP realtime network")
 | 
							("disable_tcp_realtime", "Disables TCP realtime network")
 | 
				
			||||||
		("disable_udp", "(Deprecated) UDP is disabled by default")
 | 
					 | 
				
			||||||
		("enable_udp", "Enables UDP realtime network")
 | 
							("enable_udp", "Enables UDP realtime network")
 | 
				
			||||||
		("disable_unchecked_cleanup", "Disables periodic cleanup of old records from unchecked table")
 | 
							("disable_unchecked_cleanup", "Disables periodic cleanup of old records from unchecked table")
 | 
				
			||||||
		("disable_unchecked_drop", "Disables drop of unchecked table at startup")
 | 
							("disable_unchecked_drop", "Disables drop of unchecked table at startup")
 | 
				
			||||||
| 
						 | 
					@ -141,8 +140,7 @@ std::error_code nano::update_flags (nano::node_flags & flags_a, boost::program_o
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		ec = nano::error_cli::ambiguous_udp_options;
 | 
							ec = nano::error_cli::ambiguous_udp_options;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	flags_a.disable_udp = (vm.count ("enable_udp") == 0);
 | 
						if (flags_a.disable_tcp_realtime)
 | 
				
			||||||
	if (flags_a.disable_tcp_realtime && flags_a.disable_udp)
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		ec = nano::error_cli::disable_all_network;
 | 
							ec = nano::error_cli::disable_all_network;
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -658,7 +658,7 @@ void nano::node::start ()
 | 
				
			||||||
		tcp_listener.start ();
 | 
							tcp_listener.start ();
 | 
				
			||||||
		tcp_enabled = true;
 | 
							tcp_enabled = true;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
		if (flags.disable_udp && network.port != tcp_listener.port)
 | 
							if (network.port != tcp_listener.port)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			network.port = tcp_listener.port;
 | 
								network.port = tcp_listener.port;
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
| 
						 | 
					@ -682,8 +682,8 @@ void nano::node::start ()
 | 
				
			||||||
			this_l->bootstrap_wallet ();
 | 
								this_l->bootstrap_wallet ();
 | 
				
			||||||
		});
 | 
							});
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
	// Start port mapping if external address is not defined and TCP or UDP ports are enabled
 | 
						// Start port mapping if external address is not defined and TCP ports are enabled
 | 
				
			||||||
	if (config.external_address == boost::asio::ip::address_v6{}.any ().to_string () && (tcp_enabled || !flags.disable_udp))
 | 
						if (config.external_address == boost::asio::ip::address_v6{}.any ().to_string () && tcp_enabled)
 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		port_mapping.start ();
 | 
							port_mapping.start ();
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -137,7 +137,6 @@ public:
 | 
				
			||||||
	bool disable_rep_crawler{ false };
 | 
						bool disable_rep_crawler{ false };
 | 
				
			||||||
	bool disable_request_loop{ false }; // For testing only
 | 
						bool disable_request_loop{ false }; // For testing only
 | 
				
			||||||
	bool disable_tcp_realtime{ false };
 | 
						bool disable_tcp_realtime{ false };
 | 
				
			||||||
	bool disable_udp{ true };
 | 
					 | 
				
			||||||
	bool disable_unchecked_cleanup{ false };
 | 
						bool disable_unchecked_cleanup{ false };
 | 
				
			||||||
	bool disable_unchecked_drop{ true };
 | 
						bool disable_unchecked_drop{ true };
 | 
				
			||||||
	bool disable_providing_telemetry_metrics{ false };
 | 
						bool disable_providing_telemetry_metrics{ false };
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -17,7 +17,9 @@ std::string nano::mapping_protocol::to_string ()
 | 
				
			||||||
 | 
					
 | 
				
			||||||
nano::port_mapping::port_mapping (nano::node & node_a) :
 | 
					nano::port_mapping::port_mapping (nano::node & node_a) :
 | 
				
			||||||
	node (node_a),
 | 
						node (node_a),
 | 
				
			||||||
	protocols ({ { { "TCP", boost::asio::ip::address_v4::any (), 0, true }, { "UDP", boost::asio::ip::address_v4::any (), 0, !node_a.flags.disable_udp } } })
 | 
						// Kept UDP in the array (set disabled) so the port mapping is still
 | 
				
			||||||
 | 
						// implemented in case other transport protocols that rely on it is added.
 | 
				
			||||||
 | 
						protocols ({ { { "TCP", boost::asio::ip::address_v4::any (), 0, true }, { "UDP", boost::asio::ip::address_v4::any (), 0, false } } })
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -27,33 +27,20 @@ void nano::transport::tcp_listener::start ()
 | 
				
			||||||
		throw std::runtime_error (ec.message ());
 | 
							throw std::runtime_error (ec.message ());
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	// the user can either specify a port value in the config or it can leave the choice up to the OS;
 | 
						// the user can either specify a port value in the config or it can leave the choice up to the OS:
 | 
				
			||||||
	// independently of user's port choice, he may have also opted to disable UDP or not; this gives us 4 possibilities:
 | 
						// (1): port specified
 | 
				
			||||||
	// (1): UDP enabled, port specified
 | 
						// (2): port not specified
 | 
				
			||||||
	// (2): UDP enabled, port not specified
 | 
					 | 
				
			||||||
	// (3): UDP disabled, port specified
 | 
					 | 
				
			||||||
	// (4): UDP disabled, port not specified
 | 
					 | 
				
			||||||
	//
 | 
						//
 | 
				
			||||||
	const auto listening_port = listening_socket->listening_port ();
 | 
						const auto listening_port = listening_socket->listening_port ();
 | 
				
			||||||
	if (!node.flags.disable_udp)
 | 
					 | 
				
			||||||
	{
 | 
						{
 | 
				
			||||||
		// (1) and (2) -- no matter if (1) or (2), since UDP socket binding happens before this TCP socket binding,
 | 
							// (1) -- nothing to do, just check that port values match everywhere
 | 
				
			||||||
		// we must have already been constructed with a valid port value, so check that it really is the same everywhere
 | 
					 | 
				
			||||||
		//
 | 
					 | 
				
			||||||
		debug_assert (port == listening_port);
 | 
					 | 
				
			||||||
		debug_assert (port == node.network.port);
 | 
					 | 
				
			||||||
		debug_assert (port == node.network.endpoint ().port ());
 | 
					 | 
				
			||||||
	}
 | 
					 | 
				
			||||||
	else
 | 
					 | 
				
			||||||
	{
 | 
					 | 
				
			||||||
		// (3) -- nothing to do, just check that port values match everywhere
 | 
					 | 
				
			||||||
		//
 | 
							//
 | 
				
			||||||
		if (port == listening_port)
 | 
							if (port == listening_port)
 | 
				
			||||||
		{
 | 
							{
 | 
				
			||||||
			debug_assert (port == node.network.port);
 | 
								debug_assert (port == node.network.port);
 | 
				
			||||||
			debug_assert (port == node.network.endpoint ().port ());
 | 
								debug_assert (port == node.network.endpoint ().port ());
 | 
				
			||||||
		}
 | 
							}
 | 
				
			||||||
		// (4) -- OS port choice happened at TCP socket bind time, so propagate this port value back;
 | 
							// (2) -- OS port choice happened at TCP socket bind time, so propagate this port value back;
 | 
				
			||||||
		// the propagation is done here for the `tcp_listener` itself, whereas for `network`, the node does it
 | 
							// the propagation is done here for the `tcp_listener` itself, whereas for `network`, the node does it
 | 
				
			||||||
		// after calling `tcp_listener.start ()`
 | 
							// after calling `tcp_listener.start ()`
 | 
				
			||||||
		//
 | 
							//
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue