diff options
author | gepard1984 <gepard1984@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-01-17 18:06:34 +0000 |
---|---|---|
committer | gepard1984 <gepard1984@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2012-01-17 18:06:34 +0000 |
commit | 95548cb1caad95933e2b36df9a13af070b733b04 (patch) | |
tree | b9ce67cc8b45c6956528e5bb2935900b6d8ad441 /src/login/login.c | |
parent | a09cc2371ac0a2534f514a35a5637614c11f6a37 (diff) | |
download | hercules-95548cb1caad95933e2b36df9a13af070b733b04.tar.gz hercules-95548cb1caad95933e2b36df9a13af070b733b04.tar.bz2 hercules-95548cb1caad95933e2b36df9a13af070b733b04.tar.xz hercules-95548cb1caad95933e2b36df9a13af070b733b04.zip |
Enabled Mersenne Twister MT19937 as random number generator instead of standard `rand()` function (follow-up to r14865, r14870).
- It fixes issues caused by RAND_MAX being only 32k in Windows system (bugreport:1927, bugreport:86).
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@15483 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/login/login.c')
-rw-r--r-- | src/login/login.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/src/login/login.c b/src/login/login.c index a8abef1c7..53f36c270 100644 --- a/src/login/login.c +++ b/src/login/login.c @@ -5,6 +5,7 @@ #include "../common/db.h" #include "../common/malloc.h" #include "../common/md5calc.h" +#include "../common/random.h" #include "../common/showmsg.h" #include "../common/socket.h" #include "../common/strlib.h" @@ -1068,8 +1069,8 @@ int mmo_auth(struct login_session_data* sd) // update session data sd->account_id = acc.account_id; - sd->login_id1 = rand(); - sd->login_id2 = rand(); + sd->login_id1 = rnd(); + sd->login_id2 = rnd(); safestrncpy(sd->lastlogin, acc.lastlogin, sizeof(sd->lastlogin)); sd->sex = acc.sex; sd->level = acc.level; @@ -1413,7 +1414,7 @@ int parse_login(int fd) RFIFOSKIP(fd,2); { memset(sd->md5key, '\0', sizeof(sd->md5key)); - sd->md5keylen = (uint16)(12 + rand() % 4); + sd->md5keylen = (uint16)(12 + rnd() % 4); MD5_Salt(sd->md5keylen, sd->md5key); WFIFOHEAD(fd,4 + sd->md5keylen); @@ -1730,7 +1731,7 @@ int do_init(int argc, char** argv) login_config_read((argc > 1) ? argv[1] : LOGIN_CONF_NAME); login_lan_config_read((argc > 2) ? argv[2] : LAN_CONF_NAME); - srand((unsigned int)time(NULL)); + rnd_init(); for( i = 0; i < ARRAYLENGTH(server); ++i ) chrif_server_init(i); |