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
|
else
|
||||||
*s << serializeString() << ":" << m_port;
|
*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 setPort(unsigned short port);
|
||||||
void print(std::ostream *s) const;
|
void print(std::ostream *s) const;
|
||||||
std::string serializeString() const;
|
std::string serializeString() const;
|
||||||
|
bool isLocalhost() const;
|
||||||
|
|
||||||
private:
|
private:
|
||||||
unsigned int m_addr_family = 0;
|
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
|
// 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_NONE) {
|
||||||
if (chosen_auth_mechanism == AUTH_MECHANISM_FIRST_SRP
|
if (chosen_auth_mechanism == AUTH_MECHANISM_FIRST_SRP &&
|
||||||
&& !m_simple_singleplayer_mode
|
!m_simple_singleplayer_mode &&
|
||||||
&& g_settings->getBool("enable_register_confirmation")) {
|
!getServerAddress().isLocalhost() &&
|
||||||
|
g_settings->getBool("enable_register_confirmation")) {
|
||||||
promptConfirmRegistration(chosen_auth_mechanism);
|
promptConfirmRegistration(chosen_auth_mechanism);
|
||||||
} else {
|
} else {
|
||||||
startAuth(chosen_auth_mechanism);
|
startAuth(chosen_auth_mechanism);
|
||||||
|
Loading…
Reference in New Issue
Block a user