mirror of
				https://github.com/luanti-org/luanti.git
				synced 2025-11-04 09:15:29 +01:00 
			
		
		
		
	Disable confirmation dialog on localhost
This commit is contained in:
		@@ -271,3 +271,19 @@ void Address::print(std::ostream *s) const
 | 
			
		||||
	else
 | 
			
		||||
		*s << serializeString() << ":" << m_port;
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
bool Address::isLocalhost() const {
 | 
			
		||||
	if (isIPv6()) {
 | 
			
		||||
		static const unsigned char localhost_bytes[] = {
 | 
			
		||||
				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 1};
 | 
			
		||||
		static const unsigned char mapped_ipv4_localhost[] = {
 | 
			
		||||
				0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0xff, 0xff, 0x7f, 0, 0, 1};
 | 
			
		||||
 | 
			
		||||
		auto addr = m_address.ipv6.sin6_addr.s6_addr;
 | 
			
		||||
 | 
			
		||||
		return memcmp(addr, localhost_bytes, 16) == 0 ||
 | 
			
		||||
			memcmp(addr, mapped_ipv4_localhost, 16) == 0;
 | 
			
		||||
	} else {
 | 
			
		||||
		return m_address.ipv4.sin_addr.s_addr == 0x0100007F;
 | 
			
		||||
	}
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -66,6 +66,7 @@ public:
 | 
			
		||||
	void setPort(unsigned short port);
 | 
			
		||||
	void print(std::ostream *s) const;
 | 
			
		||||
	std::string serializeString() const;
 | 
			
		||||
	bool isLocalhost() const;
 | 
			
		||||
 | 
			
		||||
private:
 | 
			
		||||
	unsigned int m_addr_family = 0;
 | 
			
		||||
 
 | 
			
		||||
@@ -97,9 +97,10 @@ void Client::handleCommand_Hello(NetworkPacket* pkt)
 | 
			
		||||
 | 
			
		||||
	// Authenticate using that method, or abort if there wasn't any method found
 | 
			
		||||
	if (chosen_auth_mechanism != AUTH_MECHANISM_NONE) {
 | 
			
		||||
		if (chosen_auth_mechanism == AUTH_MECHANISM_FIRST_SRP
 | 
			
		||||
				&& !m_simple_singleplayer_mode
 | 
			
		||||
				&& g_settings->getBool("enable_register_confirmation")) {
 | 
			
		||||
		if (chosen_auth_mechanism == AUTH_MECHANISM_FIRST_SRP &&
 | 
			
		||||
				!m_simple_singleplayer_mode &&
 | 
			
		||||
				!getServerAddress().isLocalhost() &&
 | 
			
		||||
				g_settings->getBool("enable_register_confirmation")) {
 | 
			
		||||
			promptConfirmRegistration(chosen_auth_mechanism);
 | 
			
		||||
		} else {
 | 
			
		||||
			startAuth(chosen_auth_mechanism);
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user