summaryrefslogtreecommitdiff
path: root/src/login/account.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/login/account.h')
-rw-r--r--src/login/account.h227
1 files changed, 112 insertions, 115 deletions
diff --git a/src/login/account.h b/src/login/account.h
index 1b567be70..22e31d799 100644
--- a/src/login/account.h
+++ b/src/login/account.h
@@ -12,144 +12,141 @@ typedef struct AccountDBIterator AccountDBIterator;
// standard engines
-AccountDB* account_db_sql(void);
+AccountDB *account_db_sql(void);
// extra engines (will probably use the other txt functions)
#define ACCOUNTDB_CONSTRUCTOR_(engine) account_db_##engine
#define ACCOUNTDB_CONSTRUCTOR(engine) ACCOUNTDB_CONSTRUCTOR_(engine)
#ifdef ACCOUNTDB_ENGINE_0
-AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_0)(void);
+AccountDB *ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_0)(void);
#endif
#ifdef ACCOUNTDB_ENGINE_1
-AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_1)(void);
+AccountDB *ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_1)(void);
#endif
#ifdef ACCOUNTDB_ENGINE_2
-AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_2)(void);
+AccountDB *ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_2)(void);
#endif
#ifdef ACCOUNTDB_ENGINE_3
-AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_3)(void);
+AccountDB *ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_3)(void);
#endif
#ifdef ACCOUNTDB_ENGINE_4
-AccountDB* ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_4)(void);
+AccountDB *ACCOUNTDB_CONSTRUCTOR(ACCOUNTDB_ENGINE_4)(void);
#endif
-struct mmo_account
-{
- int account_id;
- char userid[NAME_LENGTH];
- char pass[32+1]; // 23+1 for plaintext, 32+1 for md5-ed passwords
- char sex; // gender (M/F/S)
- char email[40]; // e-mail (by default: a@a.com)
- int group_id; // player group id
- unsigned int state; // packet 0x006a value + 1 (0: compte OK)
- time_t unban_time; // (timestamp): ban time limit of the account (0 = no ban)
- time_t expiration_time; // (timestamp): validity limit of the account (0 = unlimited)
- unsigned int logincount;// number of successful auth attempts
- char lastlogin[24]; // date+time of last successful login
- char last_ip[16]; // save of last IP of connection
- char birthdate[10+1]; // assigned birth date (format: YYYY-MM-DD, default: 0000-00-00)
- int account_reg2_num;
- struct global_reg account_reg2[ACCOUNT_REG2_NUM]; // account script variables (stored on login server)
+struct mmo_account {
+ int account_id;
+ char userid[NAME_LENGTH];
+ char pass[32+1]; // 23+1 for plaintext, 32+1 for md5-ed passwords
+ char sex; // gender (M/F/S)
+ char email[40]; // e-mail (by default: a@a.com)
+ int group_id; // player group id
+ unsigned int state; // packet 0x006a value + 1 (0: compte OK)
+ time_t unban_time; // (timestamp): ban time limit of the account (0 = no ban)
+ time_t expiration_time; // (timestamp): validity limit of the account (0 = unlimited)
+ unsigned int logincount;// number of successful auth attempts
+ char lastlogin[24]; // date+time of last successful login
+ char last_ip[16]; // save of last IP of connection
+ char birthdate[10+1]; // assigned birth date (format: YYYY-MM-DD, default: 0000-00-00)
+ int account_reg2_num;
+ struct global_reg account_reg2[ACCOUNT_REG2_NUM]; // account script variables (stored on login server)
};
-struct AccountDBIterator
-{
- /// Destroys this iterator, releasing all allocated memory (including itself).
- ///
- /// @param self Iterator
- void (*destroy)(AccountDBIterator* self);
+struct AccountDBIterator {
+ /// Destroys this iterator, releasing all allocated memory (including itself).
+ ///
+ /// @param self Iterator
+ void (*destroy)(AccountDBIterator *self);
- /// Fetches the next account in the database.
- /// Fills acc with the account data.
- /// @param self Iterator
- /// @param acc Account data
- /// @return true if successful
- bool (*next)(AccountDBIterator* self, struct mmo_account* acc);
+ /// Fetches the next account in the database.
+ /// Fills acc with the account data.
+ /// @param self Iterator
+ /// @param acc Account data
+ /// @return true if successful
+ bool (*next)(AccountDBIterator *self, struct mmo_account *acc);
};
-struct AccountDB
-{
- /// Initializes this database, making it ready for use.
- /// Call this after setting the properties.
- ///
- /// @param self Database
- /// @return true if successful
- bool (*init)(AccountDB* self);
-
- /// Destroys this database, releasing all allocated memory (including itself).
- ///
- /// @param self Database
- void (*destroy)(AccountDB* self);
-
- /// Gets a property from this database.
- /// These read-only properties must be implemented:
- /// "engine.name" -> "txt", "sql", ...
- /// "engine.version" -> internal version
- /// "engine.comment" -> anything (suggestion: description or specs of the engine)
- ///
- /// @param self Database
- /// @param key Property name
- /// @param buf Buffer for the value
- /// @param buflen Buffer length
- /// @return true if successful
- bool (*get_property)(AccountDB* self, const char* key, char* buf, size_t buflen);
-
- /// Sets a property in this database.
- ///
- /// @param self Database
- /// @param key Property name
- /// @param value Property value
- /// @return true if successful
- bool (*set_property)(AccountDB* self, const char* key, const char* value);
-
- /// Creates a new account in this database.
- /// If acc->account_id is not -1, the provided value will be used.
- /// Otherwise the account_id will be auto-generated and written to acc->account_id.
- ///
- /// @param self Database
- /// @param acc Account data
- /// @return true if successful
- bool (*create)(AccountDB* self, struct mmo_account* acc);
-
- /// Removes an account from this database.
- ///
- /// @param self Database
- /// @param account_id Account id
- /// @return true if successful
- bool (*remove)(AccountDB* self, const int account_id);
-
- /// Modifies the data of an existing account.
- /// Uses acc->account_id to identify the account.
- ///
- /// @param self Database
- /// @param acc Account data
- /// @return true if successful
- bool (*save)(AccountDB* self, const struct mmo_account* acc);
-
- /// Finds an account with account_id and copies it to acc.
- ///
- /// @param self Database
- /// @param acc Pointer that receives the account data
- /// @param account_id Target account id
- /// @return true if successful
- bool (*load_num)(AccountDB* self, struct mmo_account* acc, const int account_id);
-
- /// Finds an account with userid and copies it to acc.
- ///
- /// @param self Database
- /// @param acc Pointer that receives the account data
- /// @param userid Target username
- /// @return true if successful
- bool (*load_str)(AccountDB* self, struct mmo_account* acc, const char* userid);
-
- /// Returns a new forward iterator.
- ///
- /// @param self Database
- /// @return Iterator
- AccountDBIterator* (*iterator)(AccountDB* self);
+struct AccountDB {
+ /// Initializes this database, making it ready for use.
+ /// Call this after setting the properties.
+ ///
+ /// @param self Database
+ /// @return true if successful
+ bool (*init)(AccountDB *self);
+
+ /// Destroys this database, releasing all allocated memory (including itself).
+ ///
+ /// @param self Database
+ void (*destroy)(AccountDB *self);
+
+ /// Gets a property from this database.
+ /// These read-only properties must be implemented:
+ /// "engine.name" -> "txt", "sql", ...
+ /// "engine.version" -> internal version
+ /// "engine.comment" -> anything (suggestion: description or specs of the engine)
+ ///
+ /// @param self Database
+ /// @param key Property name
+ /// @param buf Buffer for the value
+ /// @param buflen Buffer length
+ /// @return true if successful
+ bool (*get_property)(AccountDB *self, const char *key, char *buf, size_t buflen);
+
+ /// Sets a property in this database.
+ ///
+ /// @param self Database
+ /// @param key Property name
+ /// @param value Property value
+ /// @return true if successful
+ bool (*set_property)(AccountDB *self, const char *key, const char *value);
+
+ /// Creates a new account in this database.
+ /// If acc->account_id is not -1, the provided value will be used.
+ /// Otherwise the account_id will be auto-generated and written to acc->account_id.
+ ///
+ /// @param self Database
+ /// @param acc Account data
+ /// @return true if successful
+ bool (*create)(AccountDB *self, struct mmo_account *acc);
+
+ /// Removes an account from this database.
+ ///
+ /// @param self Database
+ /// @param account_id Account id
+ /// @return true if successful
+ bool (*remove)(AccountDB *self, const int account_id);
+
+ /// Modifies the data of an existing account.
+ /// Uses acc->account_id to identify the account.
+ ///
+ /// @param self Database
+ /// @param acc Account data
+ /// @return true if successful
+ bool (*save)(AccountDB *self, const struct mmo_account *acc);
+
+ /// Finds an account with account_id and copies it to acc.
+ ///
+ /// @param self Database
+ /// @param acc Pointer that receives the account data
+ /// @param account_id Target account id
+ /// @return true if successful
+ bool (*load_num)(AccountDB *self, struct mmo_account *acc, const int account_id);
+
+ /// Finds an account with userid and copies it to acc.
+ ///
+ /// @param self Database
+ /// @param acc Pointer that receives the account data
+ /// @param userid Target username
+ /// @return true if successful
+ bool (*load_str)(AccountDB *self, struct mmo_account *acc, const char *userid);
+
+ /// Returns a new forward iterator.
+ ///
+ /// @param self Database
+ /// @return Iterator
+ AccountDBIterator *(*iterator)(AccountDB *self);
};