diff --git a/qrexec/qubes-rpc-multiplexer b/qrexec/qubes-rpc-multiplexer index 06d4213..eac70cf 100755 --- a/qrexec/qubes-rpc-multiplexer +++ b/qrexec/qubes-rpc-multiplexer @@ -9,22 +9,27 @@ QUBES_RPC=/etc/qubes-rpc # XXX: Backward compatibility DEPRECATED_QUBES_RPC=/etc/qubes_rpc if ! [ $# = 2 ] ; then - echo $0: bad argument count >&2 + echo $0: bad argument count, usage: $0 SERVICE-NAME REMOTE-DOMAIN-NAME >&2 exit 1 fi export QREXEC_REMOTE_DOMAIN="$2" -CFG_FILE=$QUBES_RPC/"$1" -if [ -s "$CFG_FILE" ] ; then - exec /bin/sh "$CFG_FILE" + +if [ -s "$QUBES_RPC/$1" ]; then + CFG_FILE=$QUBES_RPC/"$1" +elif [ -s "$DEPRECATED_QUBES_RPC/$1" ]; then + echo "$0: RPC service '$1' uses deprecated directory, please move to $QUBES_RPC" >&2 + CFG_FILE=$DEPRECATED_QUBES_RPC/"$1" +else + echo "$0: Cannot find service $1 file in $QUBES_RPC" >&2 + exit 1 +fi + +if [ -x "$CFG_FILE" ] ; then + exec "$CFG_FILE" echo "$0: failed to execute handler for" "$1" >&2 exit 1 -fi -CFG_FILE=$DEPRECATED_QUBES_RPC/"$1" -if [ -s "$CFG_FILE" ] ; then - echo "$0: RPC service '$1' uses deprecated directory, please move to $QUBES_RPC" >&2 +else exec /bin/sh "$CFG_FILE" echo "$0: failed to execute handler for" "$1" >&2 exit 1 fi -echo "$0: nonexistent or empty" "$CFG_FILE" file >&2 -exit 1