diff --git a/dispsrv.conf b/dispsrv.conf index 5039948bbee3c526947e4b18d37df93eabb0b460..20437084f83bbdd5a167519af40511efcc23bec9 100644 --- a/dispsrv.conf +++ b/dispsrv.conf @@ -1,14 +1,29 @@ # # OpenDispense2 Server config file # -daemonise no -server_port 11020 +daemonise yes +server_port 11021 cokebank_database cokebank.db items_file items.cfg -door_serial_port /dev/ttyS0 -coke_modbus_address 130.95.13.72 +# PLC - coke brain +#coke_modbus_address 130.95.13.73 +coke_modbus_address 0.0.0.0 -trusted_host 192.168.1.39 -trusted_host 192.168.1.34 -trusted_host 192.168.1.37 +# Zero price items, defaults to off +test_mode no +#test_mode yes + +# Used to set dispense into a dummy mode when the coke machine is out of action +# and we're dispensing drinks from the fridge (or manually) +coke_dummy_mode no +#coke_dummy_mode yes + +door_serial_port /dev/ttyUSB0 +door_unlocked_delay 10 + +trusted_host 130.95.13.4 # Merlo +trusted_host 130.95.13.7 # motsugo +trusted_host 130.95.13.18 # mussel +trusted_host 130.95.13.23 # martello +trusted_host 130.95.13.42 # meersau diff --git a/src/cokebank.h b/src/cokebank.h index 13d0bb5c37e5a917597a872fd1fd17ec636ae674..1ea81205f2a5ba7538704e36bd64cfb4f413b332 100644 --- a/src/cokebank.h +++ b/src/cokebank.h @@ -18,7 +18,8 @@ #define COKEBANK_SALES_ACCT ">sales" //!< Sales made into #define COKEBANK_SALES_PREFIX ">sales:" //!< Sales made into -#define COKEBANK_DEBT_ACCT ">countersum" //!< Credit taken out of +#define COKEBANK_ADDSRC_ACCT ">delta" //!< Credit taken out of +#define COKEBANK_DEBT_ACCT ">countersum" //!< Balancing account (causes sum to be 0) #define COKEBANK_FREE_ACCT ">freeitems" //!< ODay drink costs taken out of #define COKEBANK_DONATE_ACCT ">donations" //!< Donations go here #define COKEBANK_GRAT_ACCR ">gratuities" //!< Coke runs and new users diff --git a/src/server/common.h b/src/server/common.h index 74c42d9767cefa287f08f8b97cc9ccdfbdd257dd..8a804972fff38e6b1707084e75da0e031ae4b5e8 100644 --- a/src/server/common.h +++ b/src/server/common.h @@ -91,7 +91,7 @@ extern int DispenseItem(int ActualUser, int User, tItem *Item); extern int DispenseRefund(int ActualUser, int DestUser, tItem *Item, int OverridePrice); extern int DispenseGive(int ActualUser, int SrcUser, int DestUser, int Ammount, const char *ReasonGiven); extern int DispenseAdd(int ActualUser, int User, int Ammount, const char *ReasonGiven); -extern int DispenseSet(int ActualUser, int User, int Balance, const char *ReasonGiven); +extern int DispenseSet(int ActualUser, int User, int Balance, const char *ReasonGiven, int *OrigBalance); extern int DispenseDonate(int ActualUser, int User, int Ammount, const char *ReasonGiven); extern int DispenseUpdateItem(int User, tItem *Item, const char *NewName, int NewPrice); diff --git a/src/server/dispense.c b/src/server/dispense.c index 181181f94c9e4ee60e7d3da6acbe09116c30c695..8ec7c2e9c81af6576666aba3aa3b0ae8ce963ad0 100644 --- a/src/server/dispense.c +++ b/src/server/dispense.c @@ -203,9 +203,9 @@ int DispenseAdd(int ActualUser, int User, int Ammount, const char *ReasonGiven) char *dstName, *byName; #if DISPENSE_ADD_BELOW_MIN - ret = _Transfer( Bank_GetAcctByName(COKEBANK_DEBT_ACCT,1), User, Ammount, ReasonGiven ); + ret = _Transfer( Bank_GetAcctByName(COKEBANK_ADDSRC_ACCT,1), User, Ammount, ReasonGiven ); #else - ret = Bank_Transfer( Bank_GetAcctByName(COKEBANK_DEBT_ACCT,1), User, Ammount, ReasonGiven ); + ret = Bank_Transfer( Bank_GetAcctByName(COKEBANK_ADDSRC_ACCT,1), User, Ammount, ReasonGiven ); #endif if(ret) return 2; @@ -222,7 +222,7 @@ int DispenseAdd(int ActualUser, int User, int Ammount, const char *ReasonGiven) return 0; } -int DispenseSet(int ActualUser, int User, int Balance, const char *ReasonGiven) +int DispenseSet(int ActualUser, int User, int Balance, const char *ReasonGiven, int *OrigBalance) { int curBal = Bank_GetBalance(User); char *byName, *dstName; @@ -232,10 +232,11 @@ int DispenseSet(int ActualUser, int User, int Balance, const char *ReasonGiven) byName = Bank_GetAcctName(ActualUser); dstName = Bank_GetAcctName(User); - Log_Info("set balance of %s to %i by %s [balance %i] - %s", - dstName, Balance, byName, Bank_GetBalance(User), ReasonGiven + Log_Info("set balance of %s to %i by %s [was %i, balance %i] - %s", + dstName, Balance, byName, curBal, Bank_GetBalance(User), ReasonGiven ); + *OrigBalance = curBal; free(byName); free(dstName); diff --git a/src/server/server.c b/src/server/server.c index e76c4596504cf3d827a8b3a7009632202215a862..c41cc2c30e899ce1ccca3a56ebca1a0b2450dc74 100644 --- a/src/server/server.c +++ b/src/server/server.c @@ -1165,17 +1165,15 @@ void Server_Cmd_SET(tClient *Client, char *Args) return ; } + int origBalance, rv; // Do give - switch( DispenseSet(Client->UID, uid, iAmmount, reason) ) + switch( rv = DispenseSet(Client->UID, uid, iAmmount, reason, &origBalance) ) { case 0: - sendf(Client->Socket, "200 Add OK\n"); - return ; - case 2: - sendf(Client->Socket, "402 Poor Guy\n"); + sendf(Client->Socket, "200 Add OK (%i)\n", origBalance); return ; default: - sendf(Client->Socket, "500 Unknown error\n"); + sendf(Client->Socket, "500 Unknown error (%i)\n", rv); return ; } }