Hostinfo day 4: Implement command processing code.
[virt-hostinfo.git] / hostinfod / hostinfo-protocol.pod
index df838c0..c50d6e4 100644 (file)
@@ -155,20 +155,27 @@ are not case sensitive, and you can send them in lowercase or mixed
 case.
 
 The request is always a single line, always consists only of 7 bit
-printable ASCII (apart from the final CRLF), and must be less or equal
-to 4096 characters in length (that includes the final CRLF).
+printable ASCII bytes in the range 32-126 (apart from the final CRLF),
+and must be less or equal to 4096 bytes in length (that includes the
+final CRLF).
 
 Arguments that are strings I<must> be quoted (using double-quotes).
 Special characters inside the strings are escaped using backslashes.
-The rules are precisely the same as for C literal strings, so
-for example C<"\t"> is a string containing a single tab character.
+The rules are precisely the same as for C literal strings, so for
+example C<"\t"> is a string containing a single tab character.
 
-Arguments that are integers appear as integer literals.
+Strings may not contain C<\0> characters in the middle, nor can they
+be NULL.
 
-Other argument types that are allowed are: booleans (I<true> or
-I<false>).
+Unless specified otherwise, the charset for strings is I<UTF-8>, but
+any bytes outside the range 32-126 must be sent as escape sequences,
+eg. C<"\xC2\xA3"> would encode the pound (currency) sign.
 
-Note that integers, booleans must never be quoted.
+Arguments that are integers appear as integer literals, with optional
+minus sign (C<->) before.  As with C, use a I<0> to indicate octal and
+I<0x> to indicate hexadecimal literals.
+
+Boolean arguments should be sent as I<true> or I<false>.
 
 =head2 PING
 
@@ -184,6 +191,11 @@ alpha-numeric characters ([0-9a-zA-Z]{1,16}).
 
 Returns C<echodata> back to the caller.
 
+=head3 Example
+
+ >>> PING "hello"
+ <<< 1.0 200 hello
+
 =head3 Description
 
 This command is used to test the hostinfo connection.
@@ -194,8 +206,8 @@ The possible responses to this are:
 
 =item *
 
-The command succeeds and echos back the same C<echodata> string.
-This indicates that everything is working.
+The command succeeds and echos back the same C<echodata> string.  This
+indicates that the connection through to the host daemon is working.
 
 =item *