From dc305dd8327bc8c6a801482f026633effc3583cd Mon Sep 17 00:00:00 2001
From: John Hodge <tpg@mutabah.net>
Date: Thu, 6 Jan 2011 11:40:22 +0800
Subject: [PATCH] Updated protocol def

- Changed ENUM_USERS to return a list of USER_INFO responses.
- Adding stub support for reading user flags from cokebank (TODO:
  standardise the flag values)
 > Also TODO: Common header for the cokebank (shared between it and the
   server)
---
 proto.txt                   |  5 ++++-
 src/cokebank_basic/bank.c   | 10 ++++++++++
 src/cokebank_basic/common.h |  1 +
 src/cokebank_basic/main.c   |  5 +++++
 src/server/server.c         |  3 ++-
 5 files changed, 22 insertions(+), 2 deletions(-)

diff --git a/proto.txt b/proto.txt
index b45d7a6..2565ad0 100644
--- a/proto.txt
+++ b/proto.txt
@@ -58,7 +58,10 @@ c	ITEM_INFO <item_id>\n
 s	202 Item <item_id> <price> <description>\n
 --- Get Users' Balances ---
 c	ENUM_USERS[ <max balance>]\n
-s	201 Users <count> <username>:<balance>:<flags> <username>:<balance>:<flags> ...\n
+s	201 Users <count>\n
+s	202 User <username> <balance> <flags>\n
+    ...
+s   200 List End
 --- Get a User's Balance ---
 c	USER_INFO\n
 s	202 User <username> <balance> <flags>\n
diff --git a/src/cokebank_basic/bank.c b/src/cokebank_basic/bank.c
index 07b8271..1b356e7 100644
--- a/src/cokebank_basic/bank.c
+++ b/src/cokebank_basic/bank.c
@@ -56,6 +56,14 @@ int Bank_GetUserBalance(int ID)
 	return gaBank_Users[ID].Balance;
 }
 
+int Bank_GetUserFlags(int ID)
+{
+	if( ID < 0 || ID >= giBank_NumUsers )
+		return INT_MIN;
+
+	return gaBank_Users[ID].Flags;
+}
+
 int Bank_AlterUserBalance(int ID, int Delta)
 {
 	// Sanity
@@ -93,6 +101,8 @@ int Bank_GetMinAllowedBalance(int ID)
 	if( ID < 0 || ID >= giBank_NumUsers )
 		return 0;
 
+//	printf("gaBank_Users[%i].Flags = 0x%x\n", ID, gaBank_Users[ID].Flags);
+
 	switch( gaBank_Users[ID].Flags & FLAG_TYPEMASK )
 	{
 	case USER_TYPE_NORMAL:	return     0;
diff --git a/src/cokebank_basic/common.h b/src/cokebank_basic/common.h
index fb1e3e9..ce6854f 100644
--- a/src/cokebank_basic/common.h
+++ b/src/cokebank_basic/common.h
@@ -21,6 +21,7 @@ extern int	Bank_GetMinAllowedBalance(int ID);
 extern int	Bank_GetUserBalance(int ID);
 extern int	Bank_AlterUserBalance(int ID, int Delta);
 extern char	*Bank_GetUserName(int ID);
+extern int	Bank_GetUserFlags(int ID);
 extern int	Bank_GetUserByName(const char *Username);
 extern int	Bank_AddUser(const char *Username);
 extern FILE	*gBank_File;
diff --git a/src/cokebank_basic/main.c b/src/cokebank_basic/main.c
index 83c92be..b8aba3f 100644
--- a/src/cokebank_basic/main.c
+++ b/src/cokebank_basic/main.c
@@ -72,6 +72,11 @@ int Transfer(int SourceUser, int DestUser, int Ammount, const char *Reason)
 	return 0;
 }
 
+int GetFlags(int User)
+{
+	return Bank_GetUserFlags(User);
+}
+
 /**
  * \brief Get the balance of the passed user
  */
diff --git a/src/server/server.c b/src/server/server.c
index 4549ff6..875dd04 100644
--- a/src/server/server.c
+++ b/src/server/server.c
@@ -559,7 +559,8 @@ char *Server_Cmd_ADD(tClient *Client, char *Args)
 
 	// Parse ammount
 	iAmmount = atoi(ammount);
-	if( iAmmount == 0 && ammount[0] != '0' )	return strdup("407 Invalid Argument, ammount must be > zero\n");
+	if( iAmmount == 0 && ammount[0] != '0' )
+		return strdup("407 Invalid Argument\n");
 
 	// Do give
 	switch( DispenseAdd(uid, Client->UID, iAmmount, reason) )
-- 
GitLab