00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021 #include <time.h>
00022
00023 enum USERDB_RESULT {
00024 USER_ERROR = -2,
00025 USER_ISNT = -1,
00026 USER_OK = 0,
00027 USER_OVERDRAWN = 1
00028 } ;
00029
00030 enum TRANSACTION {
00031 TRANSACTION_CHARGE = 0,
00032 TRANSACTION_DEPOSIT = 1,
00033 TRANSACTION_WITHDRAWAL = 2,
00034 TRANSACTION_CORRECTION = 3
00035 } ;
00036
00037 #define MAX_AUTHCODE 16
00038 #define MAX_FULLNAME 32
00039
00040 struct userdb
00041 {
00042 char authcode[MAX_AUTHCODE+1];
00043 char fullname[MAX_FULLNAME+1];
00044 int balance;
00045 int cutoff;
00046 char revoked;
00047 time_t last_mod;
00048 int lifetime;
00049 } ;
00050
00051 char *dbstrlower(const char *s);
00052 enum USERDB_RESULT db_auth(struct userdb *user, const char *username);
00053 enum USERDB_RESULT db_add_user(const char *username, struct userdb *user);
00054 enum USERDB_RESULT db_delete_user(const char *username);
00055 enum USERDB_RESULT db_transaction(const char *username, int amount, enum TRANSACTION transaction_type);
00056 enum USERDB_RESULT db_new_authcode(const char *username, const char *newauthcode);
00057
00058
00059