diff options
Diffstat (limited to 'src/login/login.c')
-rw-r--r-- | src/login/login.c | 12 |
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; } |