diff options
author | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2008-03-27 12:06:12 +0000 |
---|---|---|
committer | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2008-03-27 12:06:12 +0000 |
commit | b7bda5cccb691b35415a7aa1f51190c4ca487fc9 (patch) | |
tree | 66f63255ee81b51bda20c5e5d89fee29f0fab9d3 /src/login/login.h | |
parent | a011f250a762ed62403cf25f61f52e7b35193aec (diff) | |
download | hercules-b7bda5cccb691b35415a7aa1f51190c4ca487fc9.tar.gz hercules-b7bda5cccb691b35415a7aa1f51190c4ca487fc9.tar.bz2 hercules-b7bda5cccb691b35415a7aa1f51190c4ca487fc9.tar.xz hercules-b7bda5cccb691b35415a7aa1f51190c4ca487fc9.zip |
Partial rewrite of the login server's auth system.
* replaced the cyclic, size-limited auth_fifo data structure with the more appropriate DBMap-based alternative (stops some erratic behavior)
* added code to simulate the pseudo-status "online on login server"
* auth data will now expire after 30 seconds instead of persisting
* better-than-aegis handling of login cancellation (the server will wipe all previous auth data instead of making you wait for it to expire)
* proper status message - no more generic "rejected from server", now you'll get "the server still recognizes your last connection"
* fixed a typo in r10110 which caused disconnect timer removal to fail
* split off some parsing code to login_auth_ok() and login_auth_failed()
* extended the auth confirmation packet so that the login_id1/2 values are sent along with the associated account id (stops charserver from making wrong choices if two incoming sessions have the same account id)
* fixed a bug in the disconnect part of the main charserver parsing loop, where a non-authed client would erase the online db entry for a client that's already online, thus bypassing any dual-login checks
* added code to stop the waiting_disconnect timer when the associated online entry is removed right away, instead of doing checks later
* removed code that would periodically wipe the online status of clients that are in the auth process (producing yet more erratic behavior)
* commented out some TXT-only reconnect prevention code (bugreport:1281)
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@12441 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/login/login.h')
-rw-r--r-- | src/login/login.h | 14 |
1 files changed, 1 insertions, 13 deletions
diff --git a/src/login/login.h b/src/login/login.h index ab6396a5d..2929f7b4f 100644 --- a/src/login/login.h +++ b/src/login/login.h @@ -21,10 +21,9 @@ struct mmo_account { int account_id; long login_id1; long login_id2; - long char_id; char lastlogin[24]; char sex; - //uint8 level; + uint8 level; }; struct mmo_char_server { @@ -84,15 +83,4 @@ extern struct auth_data { struct global_reg account_reg2[ACCOUNT_REG2_NUM]; // account script variables (stored on login server) } *auth_dat; -// stores auth information of incoming clients -// used during charserver auth validation process -#define AUTH_FIFO_SIZE 256 -extern struct _auth_fifo { - int account_id; - uint32 login_id1, login_id2; - uint32 ip; - uint8 sex; - bool delflag; -} auth_fifo[AUTH_FIFO_SIZE]; - #endif /* _LOGIN_H_ */ |