
* 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://svn.code.sf.net/p/rathena/svn/trunk@12441 54d463be-8e91-2dee-dedb-b68131a5f0ec
68 lines
2.4 KiB
C
68 lines
2.4 KiB
C
// Copyright (c) Athena Dev Teams - Licensed under GNU GPL
|
|
// For more information, see LICENCE in the main folder
|
|
|
|
#ifndef _LOGIN_SQL_H_
|
|
#define _LOGIN_SQL_H_
|
|
|
|
#include "../common/mmo.h" // NAME_LENGTH
|
|
|
|
#define LOGIN_CONF_NAME "conf/login_athena.conf"
|
|
#define SQL_CONF_NAME "conf/inter_athena.conf"
|
|
#define LAN_CONF_NAME "conf/subnet_athena.conf"
|
|
|
|
// supported encryption types: 1- passwordencrypt, 2- passwordencrypt2, 3- both
|
|
#define PASSWORDENC 3
|
|
|
|
struct mmo_account {
|
|
int version;
|
|
char userid[NAME_LENGTH];
|
|
char passwd[NAME_LENGTH];
|
|
int passwdenc;
|
|
|
|
int account_id;
|
|
long login_id1;
|
|
long login_id2;
|
|
char lastlogin[24];
|
|
int sex;
|
|
uint8 level;
|
|
};
|
|
|
|
struct mmo_char_server {
|
|
char name[20];
|
|
int fd;
|
|
uint32 ip;
|
|
uint16 port;
|
|
int users;
|
|
int maintenance;
|
|
int new_;
|
|
};
|
|
|
|
extern struct Login_Config {
|
|
|
|
uint32 login_ip; // the address to bind to
|
|
uint16 login_port; // the port to bind to
|
|
unsigned int ip_sync_interval; // interval (in minutes) to execute a DNS/IP update (for dynamic IPs)
|
|
bool log_login; // whether to log login server actions or not
|
|
char date_format[32]; // date format used in messages
|
|
bool console; // console input system enabled?
|
|
bool new_account_flag; // autoregistration via _M/_F ?
|
|
bool case_sensitive; // are logins case sensitive ?
|
|
bool use_md5_passwds; // work with password hashes instead of plaintext passwords?
|
|
bool login_gm_read; // should the login server handle info about gm accounts?
|
|
int min_level_to_connect; // minimum level of player/GM (0: player, 1-99: GM) to connect
|
|
bool online_check; // reject incoming players that are already registered as online ?
|
|
bool check_client_version; // check the clientversion set in the clientinfo ?
|
|
int client_version_to_connect; // the client version needed to connect (if checking is enabled)
|
|
|
|
bool ipban; // perform IP blocking (via contents of `ipbanlist`) ?
|
|
bool dynamic_pass_failure_ban; // automatic IP blocking due to failed login attemps ?
|
|
unsigned int dynamic_pass_failure_ban_interval; // how far to scan the loginlog for password failures
|
|
unsigned int dynamic_pass_failure_ban_limit; // number of failures needed to trigger the ipban
|
|
unsigned int dynamic_pass_failure_ban_duration; // duration of the ipban
|
|
bool use_dnsbl; // dns blacklist blocking ?
|
|
char dnsbl_servs[1024]; // comma-separated list of dnsbl servers
|
|
|
|
} login_config;
|
|
|
|
#endif /* _LOGIN_SQL_H_ */
|