summaryrefslogtreecommitdiff
path: root/src/login_sql/login.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/login_sql/login.h')
-rw-r--r--src/login_sql/login.h43
1 files changed, 42 insertions, 1 deletions
diff --git a/src/login_sql/login.h b/src/login_sql/login.h
index bc6337f42..b67d202cb 100644
--- a/src/login_sql/login.h
+++ b/src/login_sql/login.h
@@ -4,6 +4,8 @@
#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"
@@ -18,9 +20,9 @@ struct mmo_account {
int passwdenc;
int account_id;
- int char_id;
long login_id1;
long login_id2;
+ int char_id;
char lastlogin[24];
int sex;
uint8 level;
@@ -28,6 +30,7 @@ struct mmo_account {
struct mmo_char_server {
char name[20];
+ int fd;
uint32 ip;
uint16 port;
int users;
@@ -35,4 +38,42 @@ struct mmo_char_server {
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;
+
+// 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_SQL_H_ */