int ret;
char *dstName, *byName;
- ret = _Transfer( Bank_GetAcctByName(COKEBANK_DEBT_ACCT), User, Ammount, ReasonGiven );
+#if DISPENSE_ADD_BELOW_MIN
+// ret = _Transfer( Bank_GetAcctByName(COKEBANK_DEBT_ACCT), User, Ammount, ReasonGiven );
+#else
+ ret = Bank_Transfer( Bank_GetAcctByName(COKEBANK_DEBT_ACCT), User, Ammount, ReasonGiven );
+#endif
if(ret) return 2;
byName = Bank_GetAcctName(ActualUser);
// - Internal accounts have no lower bound
if( flags & USER_FLAG_INTERNAL ) return INT_MIN;
- // Admin to -$10
- //if( flags & USER_FLAG_ADMIN ) return -1000;
+ // Admin to -$50
+ if( flags & USER_FLAG_ADMIN ) return -5000;
- // Coke to -$5
- //if( flags & USER_FLAG_COKE ) return -500;
+ // Coke to -$20
+ if( flags & USER_FLAG_COKE ) return -2000;
// Anyone else, non-negative
return 0;
{
if( Ammount > 0 )
{
- if( Bank_GetBalance(Source) + Ammount < _GetMinBalance(Source) )
+ if( Bank_GetBalance(Source) - Ammount < _GetMinBalance(Source) )
return 0;
}
else
{
- if( Bank_GetBalance(Destination) - Ammount < _GetMinBalance(Destination) )
+ if( Bank_GetBalance(Destination) + Ammount < _GetMinBalance(Destination) )
return 0;
}
return 1;
#define NUM_COMMANDS ((int)(sizeof(gaServer_Commands)/sizeof(gaServer_Commands[0])))
// === GLOBALS ===
+// - Configuration
int giServer_Port = 11020;
- int giServer_NextClientID = 1;
- int giServer_Socket;
+ int gbServer_RunInBackground = 0;
+char *gsServer_LogFile = "/var/log/dispsrv.log";
+char *gsServer_ErrorLog = "/var/log/dispsrv.err";
+// - State variables
+ int giServer_Socket; // Server socket
+ int giServer_NextClientID = 1; // Debug client ID
+
// === CODE ===
/**
perror("Binding");
return ;
}
+
+#if 0
+ if( gbServer_RunInBackground )
+ {
+ int pid = fork();
+ if( pid == -1 ) {
+ fprintf(stderr, "ERROR: Unable to fork\n");
+ perror("fork background");
+ exit(-1);
+ }
+ if( pid != 0 ) {
+ // Parent, quit
+ exit(0);
+ }
+ // In child, sort out stdin/stdout
+ reopen(0, "/dev/null", O_READ);
+ reopen(1, gsServer_LogFile, O_CREAT|O_APPEND);
+ reopen(2, gsServer_ErrorLog, O_CREAT|O_APPEND);
+ }
+#endif
// Listen
if( listen(giServer_Socket, MAX_CONNECTION_QUEUE) < 0 ) {