forked from Mirrorlandia_minetest/minetest
Disable confirmation dialog on localhost
This commit is contained in:
parent
b7e1bca28c
commit
7796a3118d
@ -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);
|
||||
|
Loading…
Reference in New Issue
Block a user