Cleanup and Implementations
[tpg/opendispense2.git] / proto.txt
index 3314ad8..b45d7a6 100644 (file)
--- a/proto.txt
+++ b/proto.txt
@@ -15,38 +15,50 @@ All server responses are on one line and are prefixed by a three digit response
 403    User not allowed to perform this action
 404    Bad other username
 406    Bad Item ID
 403    User not allowed to perform this action
 404    Bad other username
 406    Bad Item ID
+407    Invalid arguments
 500    Unknown Dispense Failure
 500    Unknown Dispense Failure
+501    Action Rejected
 
 
+== Item IDs ==
+<item_id> represents the item ID
+Item IDs are allowed to contain any non-whitespace character, but in
+general they will be limited to the standard alpha-numeric set
 
 === User Auth ===
 c      USER <username>\n
 
 === User Auth ===
 c      USER <username>\n
-s      100 SALT <string 4-8>\n
-c      PASS <Hash>\n   (Hex-Encoded SHA-512 Hash of <username><salt><password>)
+s      100 SALT <string>\n or 100 User Set\n   (If no salt used)
+c      PASS <hash>\n   (Hex-Encoded SHA-1 Hash of <username><salt><password>)
 s      200 Auth OK\n or 401 Auth Failure\n
 User is now authenticated
 s      200 Auth OK\n or 401 Auth Failure\n
 User is now authenticated
+--- Alternate Method (Implicit Trust Authentication) ---
+If the client is connecting from a trusted machine on a root port then
+automatic authentication is allowed
+c      AUTOAUTH <username>\n
+s      200 Auth OK\n or 404 Bad Username\n or 401 Untrusted\n
 
 === Commands ===
 
 === Commands ===
---- Get Item list ---
-c      ENUM_ITEMS\n
-s      201 Items <count> <item_id> <item_id> ...\n
---- Get Item Information ---
-c      ITEM_INFO <item_id>\n
-s      202 Item <item_id> <price> "<description>"\n
 --- Dispense an item ---
 c      DISPENSE <item_id>\n
 s      200 Dispense OK\n or 402 Poor You\n or 500 Dispense Error\n or 406 Bad Item\n
 --- Give to another user ---
 c      GIVE <user> <ammount> <reason>\n
 s      200 Give OK\n or 402 Poor You\n or 404 Bad User\n
 --- Dispense an item ---
 c      DISPENSE <item_id>\n
 s      200 Dispense OK\n or 402 Poor You\n or 500 Dispense Error\n or 406 Bad Item\n
 --- Give to another user ---
 c      GIVE <user> <ammount> <reason>\n
 s      200 Give OK\n or 402 Poor You\n or 404 Bad User\n
---- Update balance ---
-c      ADD <user> <ammount> "<reason>"\n
-s      200 Add OK\n or 403 Not Coke\n or 404 Bad User\n
---- Set Balance ---
-c      SET <user> <balance> "<reason>"\n
-s      200 Set OK\n or 403 Not allowed\n or 404 Bad User\n
---- Get Users Balances ---
+--- Alter balance ---
+c      ADD <user> <ammount> <reason>\n
+s      200 Add OK\n or 402 No balance\n or 403 Not Coke\n or 404 Bad User\n
+--- Set balance ---
+c      SET <user> <ammount> <reason>\n
+s      200 Set OK\n or 403 Not Coke\n or 404 Bad User\n
+
+--- Get Item list ---
+c      ENUM_ITEMS\n
+s      201 Items <count> <item_id> <item_id> ...\n
+--- Get Item Information ---
+c      ITEM_INFO <item_id>\n
+s      202 Item <item_id> <price> <description>\n
+--- Get Users' Balances ---
 c      ENUM_USERS[ <max balance>]\n
 c      ENUM_USERS[ <max balance>]\n
-s      201 Users <count> <username> <username> ...\n
+s      201 Users <count> <username>:<balance>:<flags> <username>:<balance>:<flags> ...\n
 --- Get a User's Balance ---
 --- Get a User's Balance ---
-c      USERINFO\n
-s      202 User <username> <balance>\n
+c      USER_INFO\n
+s      202 User <username> <balance> <flags>\n

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