summaryrefslogtreecommitdiff
path: root/src/login/login.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/login.c')
-rw-r--r--src/login/login.c12
1 files changed, 6 insertions, 6 deletions
diff --git a/src/login/login.c b/src/login/login.c
index 61d9bbf1f..0a06dcb75 100644
--- a/src/login/login.c
+++ b/src/login/login.c
@@ -54,7 +54,6 @@ struct mmo_char_server server[MAX_SERVERS]; // char server data
// Advanced subnet check [LuzZza]
struct s_subnet {
- uint32 subnet;
uint32 mask;
uint32 char_ip;
uint32 map_ip;
@@ -2935,7 +2934,7 @@ int parse_admin(int fd)
int lan_subnetcheck(uint32 ip)
{
int i;
- ARR_FIND( 0, subnet_count, i, subnet[i].subnet == (ip & subnet[i].mask) );
+ ARR_FIND( 0, subnet_count, i, (subnet[i].char_ip & subnet[i].mask) == (ip & subnet[i].mask) );
return ( i < subnet_count ) ? subnet[i].char_ip : 0;
}
@@ -3423,13 +3422,14 @@ int login_lan_config_read(const char *lancfgName)
remove_control_chars(w3);
remove_control_chars(w4);
- if(strcmpi(w1, "subnet") == 0) {
-
+ if( strcmpi(w1, "subnet") == 0 )
+ {
subnet[subnet_count].mask = str2ip(w2);
subnet[subnet_count].char_ip = str2ip(w3);
subnet[subnet_count].map_ip = str2ip(w4);
- subnet[subnet_count].subnet = subnet[subnet_count].char_ip&subnet[subnet_count].mask;
- if (subnet[subnet_count].subnet != (subnet[subnet_count].map_ip&subnet[subnet_count].mask)) {
+
+ if( (subnet[subnet_count].char_ip & subnet[subnet_count].mask) != (subnet[subnet_count].map_ip&subnet[subnet_count].mask) )
+ {
ShowError("%s: Configuration Error: The char server (%s) and map server (%s) belong to different subnetworks!\n", lancfgName, w3, w4);
continue;
}