summaryrefslogtreecommitdiff
path: root/src/char/pincode.h
diff options
context:
space:
mode:
authorJedzkie <jedzkie13@rocketmail.com>2018-04-02 00:33:11 +0800
committerJedzkie <jedzkie13@rocketmail.com>2018-04-02 12:58:03 +0800
commit2a05dbfc2f62c6bbac7983dcec120502914567f1 (patch)
treeabe851d3fe5e4c8f250d67200b347b3c21ca4fd9 /src/char/pincode.h
parent584e8de359412091cb05f98b83a25fac47b5c9f2 (diff)
downloadhercules-2a05dbfc2f62c6bbac7983dcec120502914567f1.tar.gz
hercules-2a05dbfc2f62c6bbac7983dcec120502914567f1.tar.bz2
hercules-2a05dbfc2f62c6bbac7983dcec120502914567f1.tar.xz
hercules-2a05dbfc2f62c6bbac7983dcec120502914567f1.zip
Pincode Update
- Added blacklist feature - Added official message when successfully create a pincode / successfully change a pincode
Diffstat (limited to 'src/char/pincode.h')
-rw-r--r--src/char/pincode.h40
1 files changed, 32 insertions, 8 deletions
diff --git a/src/char/pincode.h b/src/char/pincode.h
index cffaa3054..8e4f67c2d 100644
--- a/src/char/pincode.h
+++ b/src/char/pincode.h
@@ -22,18 +22,35 @@
#define CHAR_PINCODE_H
#include "common/hercules.h"
+#include "common/db.h"
/* Forward Declarations */
struct char_session_data;
struct config_t; // common/conf.h
-enum PincodeResponseCode {
- PINCODE_OK = 0,
- PINCODE_ASK = 1,
- PINCODE_NOTSET = 2,
- PINCODE_EXPIRED = 3,
- PINCODE_UNUSED = 7,
- PINCODE_WRONG = 8,
+enum pincode_make_response {
+ PINCODE_MAKE_SUCCESS = 0,
+ PINCODE_MAKE_DUPLICATED = 1,
+ PINCODE_MAKE_RESTRICT_PW = 2,
+ PINCODE_MAKE_PERSONALNUM_PW = 3,
+ PINCODE_MAKE_FAILED = 4,
+};
+
+enum pincode_edit_response {
+ PINCODE_EDIT_SUCCESS = 0x0,
+ PINCODE_EDIT_FAILED = 0x1,
+ PINCODE_EDIT_RESTRICT_PW = 0x2,
+ PINCODE_EDIT_PERSONALNUM_PW = 0x3,
+};
+
+enum pincode_login_response {
+ PINCODE_LOGIN_OK = 0,
+ PINCODE_LOGIN_ASK = 1,
+ PINCODE_LOGIN_NOTSET = 2,
+ PINCODE_LOGIN_EXPIRED = 3,
+ PINCODE_LOGIN_RESTRICT_PW = 5,
+ PINCODE_LOGIN_UNUSED = 7,
+ PINCODE_LOGIN_WRONG = 8,
};
/**
@@ -45,6 +62,8 @@ struct pincode_interface {
int changetime;
int maxtry;
int charselect;
+ bool check_blacklist;
+ VECTOR_DECL(char *) blacklist;
unsigned int multiplier;
unsigned int baseSeed;
/* handler */
@@ -52,12 +71,17 @@ struct pincode_interface {
void (*decrypt) (unsigned int userSeed, char* pin);
void (*error) (int account_id);
void (*update) (int account_id, char* pin);
- void (*sendstate) (int fd, struct char_session_data* sd, uint16 state);
+ void (*makestate) (int fd, struct char_session_data *sd, enum pincode_make_response state);
+ void (*editstate) (int fd, struct char_session_data *sd, enum pincode_edit_response state);
+ void (*loginstate) (int fd, struct char_session_data *sd, enum pincode_login_response state);
void (*setnew) (int fd, struct char_session_data* sd);
void (*change) (int fd, struct char_session_data* sd);
+ bool (*isBlacklisted) (const char *pin);
int (*compare) (int fd, struct char_session_data* sd, char* pin);
void (*check) (int fd, struct char_session_data* sd);
bool (*config_read) (const char *filename, const struct config_t *config, bool imported);
+ void (*init) (void);
+ void (*final) (void);
};
#ifdef HERCULES_CORE