X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fcokebank_sqlite%2Fmain.c;h=e37da05f3abd049de4f1ec7f40897506de80df60;hb=008596161453e64354973268125058b49aee60d3;hp=34761b2ebf9f0ab36637718d609c7681873159a8;hpb=775921ac20618899f084977ac612b6b3e8544425;p=tpg%2Fopendispense2.git diff --git a/src/cokebank_sqlite/main.c b/src/cokebank_sqlite/main.c index 34761b2..e37da05 100644 --- a/src/cokebank_sqlite/main.c +++ b/src/cokebank_sqlite/main.c @@ -63,6 +63,8 @@ struct sAcctIterator // Unused really, just used as a void type int Bank_SetFlags(int AcctID, int Mask, int Value); int Bank_GetBalance(int AcctID); char *Bank_GetAcctName(int AcctID); + int Bank_IsPinValid(int AcctID, int Pin); +void Bank_SetPin(int AcctID, int Pin); sqlite3_stmt *Bank_int_MakeStatemnt(sqlite3 *Database, const char *Query); int Bank_int_QueryNone(sqlite3 *Database, const char *Query, char **ErrorMessage); sqlite3_stmt *Bank_int_QuerySingle(sqlite3 *Database, const char *Query); @@ -119,7 +121,7 @@ int Bank_Initialise(const char *Argument) /* * Move Money */ -int Bank_Transfer(int SourceUser, int DestUser, int Ammount, const char *Reason) +int Bank_Transfer(int SourceUser, int DestUser, int Ammount, const char *Reason __attribute__((unused))) { char *query; int rv; @@ -354,6 +356,34 @@ int Bank_CreateAcct(const char *Name) return sqlite3_last_insert_rowid(gBank_Database); } +int Bank_IsPinValid(int AcctID, int Pin) +{ + char *query = mkstr("SELECT acct_id FROM accounts WHERE acct_id=%i AND acct_pin=%i LIMIT 1", AcctID, Pin); + sqlite3_stmt *statement = Bank_int_QuerySingle(gBank_Database, query); + free(query); + + if( statement ) { + sqlite3_finalize(statement); + } + + return (statement != NULL); +} + +void Bank_SetPin(int AcctID, int Pin) +{ + char *errmsg; + char *query = mkstr("UPDATE accounts SET acct_pin=%i WHERE acct_id=%i", Pin, AcctID); + int rv = Bank_int_QueryNone(gBank_Database, query, &errmsg); + if( rv != SQLITE_OK ) + { + fprintf(stderr, "Bank_CreateAcct - SQLite Error: '%s'\n", errmsg); + fprintf(stderr, "Query = '%s'\n", query); + sqlite3_free(errmsg); + free(query); + return ; + } + free(query); +} /* * Create an iterator for user accounts */ @@ -469,6 +499,7 @@ void Bank_DelIterator(tAcctIterator *It) int Bank_GetUserAuth(const char *Salt, const char *Username, const char *Password) { Salt = Password = Username; // Shut up GCC + Password = Salt; // DEBUG HACKS! #if 0 return Bank_GetAcctByName(Username);