# This program is distributable under the terms of the GNU GPL (see
# COPYING)
-# This test starts up an rsync daemon on a high-numbered port using a
-# configuration file from the test directory. I can't think of a good
-# way to choose it dynamically at the moment, so we just use 2612. If
-# that's in use then you lose.
+# We don't really want to start the server listening, because that
+# might interfere with the security or operation of the test machine.
+# Instead we use the fake-connect feature to dynamically assign a pair
+# of ports.
# Having started the server we try some basic operations against it:
. "$suitedir/rsync.fns"
+SSH="$scratchdir/pretend-ssh"
+
+cat >"$SSH" <<'EOT'
+while : ; do
+ case "$1" in
+ -*) shift ;;
+ localhost) shift; break ;;
+ *) exit 1 ;;
+ esac
+done
+
+eval "${@}"
+EOT
+chmod +x "$SSH"
+
build_rsyncd_conf
-start_rsyncd
+cd "$scratchdir"
+
+ln -s test-rsyncd.conf rsyncd.conf
+
+$RSYNC -ve $SSH --rsync-path="$RSYNC" localhost::
+
+RSYNC_CONNECT_PROG="$RSYNC --config=$conf --daemon"
+export RSYNC_CONNECT_PROG
+$RSYNC -v localhost::