Index: login.c =================================================================== --- login.c (revision 15405) +++ login.c (working copy) @@ -1041,7 +1041,16 @@ if( !check_password(sd->md5key, sd->passwdenc, sd->passwd, acc.pass) ) { ShowNotice("Invalid password (account: '%s', pass: '%s', received pass: '%s', ip: %s)\n", sd->userid, acc.pass, sd->passwd, ip); - return 1; // 1 = Incorrect Password + if ( login_config.re_client ) { + + int fd = sd->fd; + + WFIFOHEAD(fd,2); + WFIFOSET(fd,2); + + } else { + return 1; // 1 = Incorrect Password + } } if( acc.expiration_time != 0 && acc.expiration_time < time(NULL) ) @@ -1512,6 +1521,7 @@ login_config.new_account_flag = true; login_config.new_acc_length_limit = true; login_config.use_md5_passwds = false; + login_config.re_client = false; login_config.min_level_to_connect = 0; login_config.check_client_version = false; login_config.client_version_to_connect = 20; @@ -1597,6 +1607,8 @@ login_config.ipban_cleanup_interval = (unsigned int)atoi(w2); else if(!strcmpi(w1, "ip_sync_interval")) login_config.ip_sync_interval = (unsigned int)1000*60*atoi(w2); //w2 comes in minutes. + else if(!strcmpi(w1, "re_client")) + login_config.re_client = (bool)config_switch(w2); else if(!strcmpi(w1, "import")) login_config_read(w2); else Index: login.h =================================================================== --- login.h (revision 15405) +++ login.h (working copy) @@ -77,6 +77,7 @@ char dnsbl_servs[1024]; // comma-separated list of dnsbl servers char account_engine[256]; // name of the engine to use (defaults to auto, for the first available engine) + bool re_client; }; #define sex_num2str(num) ( (num == SEX_FEMALE ) ? 'F' : (num == SEX_MALE ) ? 'M' : 'S' )