X-Git-Url: https://mattmccutchen.net/rsync/rsync.git/blobdiff_plain/fcb6d28d0bcfa9ac630ee7cf38ff08a1978ee01c..bd685982389b78a158921b7839bdeca501338d19:/csprotocol.txt diff --git a/csprotocol.txt b/csprotocol.txt index bd81de1d..c8dadd41 100644 --- a/csprotocol.txt +++ b/csprotocol.txt @@ -3,21 +3,22 @@ basically a summary of clientserver.c and authenticate.c. -- Martin Pool -$Id$ - - - This is the protocol used for rsync --daemon; i.e. connections to port 873 rather than invocations over a remote shell. When the server accepts a connection, it prints a greeting - @RSYNCD: + @RSYNCD: . -where is the numeric version; currently 24. It follows this -with a free text message-of-the-day. It expects to see a similar -greeting back from the client. +where is the numeric version (see PROTOCOL_VERSION in rsync.h) +'.' is a literal period, and is the numeric subprotocol +version (see SUBPROTOCOL_VERSION -- it will be 0 for final releases). +Protocols prior to 30 only output alone. The daemon expects +to see a similar greeting back from the client. For protocols prior to +30, an absent "." value is assumed to be 0. For protocol +30, an absent value is a fatal error. The daemon then follows this line +with a free-format text message-of-the-day (if any is defined). The server is now in the connected state. The client can either send the command @@ -61,7 +62,27 @@ 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!). + + +------------ +Protocol version changes + +30 (2007-10-04, 3.0.0pre1) + + The use of a "." number was added to + @RSYNCD: . + +25 (2001-08-20, 2.4.7pre2) + + Send an explicit "@RSYNC EXIT" command at the end of the + module listing. We never intentionally end the transmission + by just closing the socket anymore.