Add a little more protocol documentation.
[rsync/rsync.git] / csprotocol.txt
index 05b28c1..b41c20f 100644 (file)
@@ -3,6 +3,8 @@ basically a summary of clientserver.c and authenticate.c.
 
  -- Martin Pool <mbp@samba.org>
 
+$Id$
+
 
 
 
@@ -54,7 +56,19 @@ So if the client specifies a list of files to be included or excluded,
 they'll defer to existing limits specified in the server
 configuration.
 
+At this point the client and server both switch to using a
+multiplexing layer across the socket.  The main point of this is to
+allow the server to asynchronously pass errors back, while still
+allowing streamed and pipelined data.
+
+Unfortunately, the multiplex protocol is not used at every stage.  We
+start up in plain socket mode and then change over by calling
+io_start_buffering.  Of course both the client and the server have to
+do this at the same point.
+
 The server then talks to the client as normal across the socket,
 passing checksums, file lists and so on.  For documentation of that,
 stay tuned (or write it yourself!).
 
+
+