Updated protocol def
authorJohn Hodge <[email protected]>
Thu, 6 Jan 2011 03:40:22 +0000 (11:40 +0800)
committerJohn Hodge <[email protected]>
Thu, 6 Jan 2011 03:40:22 +0000 (11:40 +0800)
- 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
src/cokebank_basic/bank.c
src/cokebank_basic/common.h
src/cokebank_basic/main.c
src/server/server.c

index b45d7a6..2565ad0 100644 (file)
--- 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
index 07b8271..1b356e7 100644 (file)
@@ -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;
index fb1e3e9..ce6854f 100644 (file)
@@ -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;
index 83c92be..b8aba3f 100644 (file)
@@ -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
  */
index 4549ff6..875dd04 100644 (file)
@@ -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) )

UCC git Repository :: git.ucc.asn.au