#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
-#include <openssl/sha.h> // SHA1
+//#include <openssl/sha.h> // SHA1
#define USE_NCURSES_INTERFACE 0
#define DEBUG_TRACE_SERVER 0
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;
" dispense iteminfo <itemid>\n"
" Get the name and price for an item\n"
);
+// if( giTextArgc == 0 || strcmp(gsTextArgs[0], "enumitems") == 0 )
+// printf(
+// " dispense enumitems\n"
+// " List avaliable items\n"
+// );
if( giTextArgc == 0 )
printf(" == Coke members == \n");
if( giTextArgc == 0 || strcmp(gsTextArgs[0], "acct") == 0 )
printf(
" dispense refund <user> <itemid> [<price>]\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(
if( j > 1 ) {
printf("%i items dispensed\n", j);
}
+ Dispense_ShowUser(sock, gsUserName);
close(sock);
- }
- Dispense_ShowUser(sock, gsUserName);
+ }
return ret;
}
*/
int ShowItemAt(int Row, int Col, int Width, int Index, int bHilighted)
{
- int _x, _y, times;
char *name = NULL;
int price = 0;
int status = -1;
break;
}
+ if( price > 100*100 ) {
+ nameWidth --;
+ }
+ if( price > 1000*100 ) {
+ nameWidth --;
+ }
+
printw("%-*.*s", nameWidth, nameWidth, name);
// getyx(stdscr, _y, _x);
// times = Width - 5 - (_x - Col); // TODO: Better handling for large prices
// while(times--) addch(' ');
+ // 999.99 should be enough
printw(" %4i", price);
}
else
{
- printw("-- %s", name);
- getyx(stdscr, _y, _x);
- times = Width - 4 - (_x - Col);
- while(times--) addch(' ');
- printw(" ");
+// int _x, _y, times;
+ printw("-- %-*.*s ", Width-4, Width-4, name);
}
}
// 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;
}
else {
len = recv(Socket, buf+bufPos, BUFSIZ-1-bufPos, 0);
- if( len < 0 ) {
+ if( len <= 0 ) {
free(ret);
- return strdup("499 Client Connection Error\n");
+ return strdup("599 Client Connection Error\n");
}
}
buf[bufPos+len] = '\0';