X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=src%2Fclient%2Fmain.c;h=0f7d525c4b769e315b6ed3ac39e3277f137b1a09;hb=8a516dd60ab15cf514481c74dd087a294915565d;hp=fc7c19f9d6a90bcbe54f0ae60f4632d9a2a02af9;hpb=81797498c0f078dbe129a59f9e28e17848c00611;p=tpg%2Fopendispense2.git diff --git a/src/client/main.c b/src/client/main.c index fc7c19f..0f7d525 100644 --- a/src/client/main.c +++ b/src/client/main.c @@ -23,7 +23,7 @@ #include #include #include -#include // SHA1 +//#include // SHA1 #define USE_NCURSES_INTERFACE 0 #define DEBUG_TRACE_SERVER 0 @@ -97,7 +97,7 @@ char *trim(char *string); void CompileRegex(regex_t *regex, const char *pattern, int flags); // === GLOBALS === -char *gsDispenseServer = "heathred"; +char *gsDispenseServer = "merlo.ucc.gu.uwa.edu.au"; int giDispensePort = 11020; tItem *gaItems; @@ -161,6 +161,8 @@ void ShowUsage(void) printf( " dispense refund []\n" " Refund an item to a user (with optional price override)\n" + " Item IDs can be seen in the cokelog (in the brackets after the item name)\n" + " e.g. coke:6 for a coke, snack:33 for slot 33 of the snack machine\n" ); if( giTextArgc == 0 || strcmp(gsTextArgs[0], "slot") == 0 ) printf( @@ -1125,7 +1127,7 @@ int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted) } // If the item isn't availiable for sale, return -1 (so it's skipped) - if( status || price >= giUserBalance ) + if( status || price > giUserBalance ) Index = -1; return Index; @@ -1684,7 +1686,7 @@ int DispenseItem(int Socket, const char *Type, int ID) int Dispense_AlterBalance(int Socket, const char *Username, int Ammount, const char *Reason) { char *buf; - int responseCode; + int responseCode, rv = -1; // Check for a dry run if( gbDryRun ) { @@ -1702,26 +1704,32 @@ int Dispense_AlterBalance(int Socket, const char *Username, int Ammount, const c buf = ReadLine(Socket); responseCode = atoi(buf); - free(buf); switch(responseCode) { - case 200: return 0; // OK + case 200: + rv = 0; // OK + break; case 402: fprintf(stderr, "Insufficient balance\n"); - return RV_BAD_ITEM; + rv = RV_BAD_ITEM; + break; case 403: // Not in coke fprintf(stderr, "You are not in coke (sucker)\n"); - return RV_PERMISSIONS; + rv = RV_PERMISSIONS; + break; case 404: // Unknown user fprintf(stderr, "Unknown user '%s'\n", Username); - return RV_INVALID_USER; + rv = RV_INVALID_USER; + break; default: - fprintf(stderr, "Unknown response code %i\n", responseCode); - return RV_UNKNOWN_RESPONSE; + fprintf(stderr, "Unknown response code %i\n'%s'\n", responseCode, buf); + rv = RV_UNKNOWN_RESPONSE; + break; } + free(buf); - return -1; + return rv; } /** @@ -2208,10 +2216,10 @@ char *ReadLine(int Socket) len = recv(Socket, buf+bufPos, BUFSIZ-1-bufPos, 0); if( len < 0 ) { free(ret); - return strdup("499 Client Connection Error\n"); + return strdup("599 Client Connection Error\n"); } - buf[bufPos+len] = '\0'; } + buf[bufPos+len] = '\0'; newline = strchr( buf+bufPos, '\n' ); if( newline ) {