[BACK]Return to rsyncd.5 CVS log [TXT][DIR] Up to [local] / src / usr.bin / rsync

Annotation of src/usr.bin/rsync/rsyncd.5, Revision 1.3

1.3     ! benno       1: .\"    $OpenBSD: rsyncd.5,v 1.2 2019/02/10 23:24:14 benno Exp $
1.1       benno       2: .\"
                      3: .\" Copyright (c) 2019 Kristaps Dzonsons <kristaps@bsd.lv>
                      4: .\"
                      5: .\" Permission to use, copy, modify, and distribute this software for any
                      6: .\" purpose with or without fee is hereby granted, provided that the above
                      7: .\" copyright notice and this permission notice appear in all copies.
                      8: .\"
                      9: .\" THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
                     10: .\" WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
                     11: .\" MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
                     12: .\" ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
                     13: .\" WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
                     14: .\" ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
                     15: .\" OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
                     16: .\"
                     17: .Dd $Mdocdate$
                     18: .Dt RSYNCD 5
                     19: .Os
                     20: .Sh NAME
                     21: .Nm rsyncd
                     22: .Nd rsyncd wire protocol
                     23: .Sh DESCRIPTION
                     24: The
                     25: .Nm
                     26: protocol described in this relates to the BSD-licensed
                     27: .Xr openrsync 1 ,
                     28: a re-implementation of the GPL-licensed reference utility
                     29: .Xr rsync 1 .
                     30: It is compatible with version 27 of the reference.
                     31: .Pp
                     32: The
                     33: .Nm
                     34: protocol is an envelope protocol for
                     35: .Xr rsync 5
                     36: between a client and an rsync://-capable server.
                     37: It provides a means to exchange capabilities information prior to file
                     38: transfer.
                     39: .Pp
                     40: In this document,
                     41: .Qq client
                     42: refers to the
                     43: .Xr openrsync 1
                     44: utility making the request.
                     45: It follows that
                     46: .Qq server
                     47: refers to the daemon servicing the request.
                     48: .Pp
                     49: A connection between a client and server consists of host, a module, and
                     50: zero or more paths.
                     51: .Pp
                     52: .Dl openrsync rsync://host/module/path1 rsync://host/path2... dest
                     53: .Pp
                     54: At this time, operating in sender mode (with the rsync:// host receiving
                     55: information) is not described in this document.
                     56: .Ss Data types
                     57: These are the same as in
                     58: .Xr rsync 5 .
                     59: A newline is always a standalone \en.
                     60: .Ss Client process
                     61: After initialising a connection, the client and server exchange the
                     62: following information, in order.
                     63: This portion of the process is
                     64: .Em not
                     65: multiplexed.
                     66: .Pp
                     67: .Bl -enum -compact
                     68: .It
                     69: client sends requested module followed by newline
                     70: .It
                     71: server responds with preamble followed by standalone newline
                     72: .El
                     73: .Pp
                     74: The requested module must have non-zero length.
                     75: The preamble consists in a sequence of lines.
                     76: Each line either contains free-form text sent by the server as a
                     77: .Qq motd
                     78: .Pq message of the day
                     79: or a command:
                     80: .Pp
                     81: .Dl @RSYNCD: command\en
                     82: .Pp
                     83: The only supported command is the server protocol specification:
                     84: .Pp
                     85: .Dl @RSYNCD: xx[.yy]\en
                     86: .Pp
                     87: The optional component is the submodule, which may be discarded.
                     88: The version may only be specified once.
                     89: Both the motd and commands end in the special termination command:
                     90: .Pp
                     91: .Dl @RSYNCD: OK\en
                     92: .Pp
                     93: Following that, the client must send the command-line arguments that
                     94: would otherwise be used to start a
                     95: .Xr openrsync 1
                     96: server.
                     97: Each argument must be specified on its own line, e.g.,
                     98: .Pp
                     99: .Dl --server\en--sender\en-r\en-t\en.\enpath1\enpath2
                    100: .Pp
                    101: This must be followed by a standalone newline.
                    102: .Pp
                    103: If the server does not understand or accept any of the command-line
                    104: arguments, it will exit at this point.
                    105: .Pp
                    106: Following this, the client must read the integer-length session checksum
                    107: seed.
                    108: Multiplexing is subsequently enabled.
                    109: .Pp
                    110: The sequence that follows is stipulated in
                    111: .Xr rsync 5
                    112: following the handshake.
                    113: .\" The following requests should be uncommented and used where appropriate.
                    114: .\" .Sh CONTEXT
                    115: .\" For section 9 functions only.
                    116: .\" .Sh RETURN VALUES
                    117: .\" For sections 2, 3, and 9 function return values only.
                    118: .\" .Sh ENVIRONMENT
                    119: .\" For sections 1, 6, 7, and 8 only.
                    120: .\" .Sh FILES
                    121: .\" .Sh EXIT STATUS
                    122: .\" For sections 1, 6, and 8 only.
                    123: .\" .Sh EXAMPLES
                    124: .\" .Sh DIAGNOSTICS
                    125: .\" For sections 1, 4, 6, 7, 8, and 9 printf/stderr messages only.
                    126: .\" .Sh ERRORS
                    127: .\" For sections 2, 3, 4, and 9 errno settings only.
                    128: .Sh SEE ALSO
                    129: .Xr openrsync 1 ,
                    130: .Xr rsync 5
                    131: .\" .Sh STANDARDS
                    132: .\" .Sh HISTORY
                    133: .\" .Sh AUTHORS
                    134: .\" .Sh CAVEATS
                    135: .\" .Sh BUGS