/usr/share/doc/rsync/support
NameSizeModeActions
atomic-rsync51900644editdlrm
cvs2includes12160644editdlrm
deny-rsync10050644editdlrm
file-attr-restore49360644editdlrm
files-to-excludes5380644editdlrm
git-set-file-times39020644editdlrm
instant-rsyncd27910644editdlrm
logfilter11040644editdlrm
lsh31020644editdlrm
lsh.sh11080644editdlrm
Makefile800644editdlrm
mapfrom6330644editdlrm
mapto6250644editdlrm
mnt-excl18480644editdlrm
munge-symlinks26170644editdlrm
nameconvert15270644editdlrm
rrsync126170644editdlrm
rrsync.1.md43830644editdlrm
rsync-no-vanished5930644editdlrm
rsync-slash-strip7690644editdlrm
rsyncstats86910644editdlrm
savetransfer.c45600644editdlrm
Edit: /usr/share/doc/rsync/support/deny-rsync (1005B)
#!/usr/bin/env bash # Send an error message via the rsync-protocol to a non-daemon client rsync. # # Usage: deny-rsync "message" protocol_version=29 exit_code=4 # same as a daemon that refuses an option # e.g. byte_escape 29 => \035 function byte_escape { echo -ne "\\0$(printf "%o" $1)" } msg="$1" if [ "${#msg}" -gt 254 ]; then # truncate a message that is too long for this naive script to handle msg="${msg:0:251}..." fi msglen=$(( ${#msg} + 1 )) # add 1 for the newline we append below # Send protocol version. All numbers are LSB-first 4-byte ints. echo -ne "$(byte_escape $protocol_version)\\000\\000\\000" # Send a zero checksum seed. echo -ne "\\000\\000\\000\\000" # The following is equivalent to rprintf(FERROR_XFER, "%s\n", $msg). # 1. Message header: ((MPLEX_BASE + FERROR_XFER) << 24) + $msglen. echo -ne "$(byte_escape $msglen)\\000\\000\\010" # 2. The actual data. echo -E "$msg" # Make sure the client gets our message, not a write failure. sleep 1 exit $exit_code