This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goserver. commit b095393f62f5349e4ab5e265368ce5c0d6dc66fa Author: Mihai Moldovan <ionic@ionic.de> Date: Wed Jan 24 09:15:02 2018 +0100 x2goserver/bin/x2goresume-session: handle missing xinerama parameter in options string gracefully, skipping that part (and the other optional geometry string) correctly. --- debian/changelog | 3 +++ x2goserver/bin/x2goresume-session | 28 ++++++++++++++++++++++++++-- 2 files changed, 29 insertions(+), 2 deletions(-) diff --git a/debian/changelog b/debian/changelog index 13d9c6f..eb8f964 100644 --- a/debian/changelog +++ b/debian/changelog @@ -237,6 +237,9 @@ x2goserver (4.1.0.0-0x2go1.2) UNRELEASED; urgency=low work around that gracefully. - x2goserver/lib/x2goistrue: use shift unconditionally and check the parameter to be defined instead. + - x2goserver/bin/x2goresume-session: handle missing xinerama parameter in + options string gracefully, skipping that part (and the other optional + geometry string) correctly. * x2goserver.spec: - Only create session DB in x2goserver's post install script. Do use proper Requires(post) statements to make sure perl-X2Go-Server-DB and diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session index 9adbc11..2e1b905 100755 --- a/x2goserver/bin/x2goresume-session +++ b/x2goserver/bin/x2goresume-session @@ -259,16 +259,40 @@ PSTR="$(awk -F ',' '{print $3}' <<< "${OPTIONS}")" KTSTR="$(awk -F ',' '{print $12}' <<< "${OPTIONS}")" GSTR="$(awk -F ',' '{print $13}' <<< "${OPTIONS}")" typeset xinerama_orig='' -test_GSTR="$(sed 's/geometry=.*//' <<< "${GSTR}")" +test_GSTR="$(sed -e 's/geometry=.*//' <<< "${GSTR}")" if [[ -n "${test_GSTR}" ]]; then GSTR='geometry=' xinerama_orig="$(awk -F ',' '{print $13}' <<< "${OPTIONS}")" +else + xinerama_orig="$(awk -F ',' '{print $14}' <<< "${OPTIONS}")" +fi + +# Sessions started with older X2Go Server versions do not feature +# a xinerama option, so handle this gracefully. +# Note that Xinerama support defaulted to on and was handled by the client, +# so keep it like that. +typeset test_xinerama="$(sed -e 's/xinerama=.*//' <<< "${xinerama_orig}")" +if [[ -n "${test_xinerama}" ]]; then + # Will not actually be replaced by anything, so the value provided + # here does not matter. + xinerama_orig='xinerama=1' +fi + +# Only one component missing => either geometry or xinerama at position 13, +# everything else starts from position 14. +if { [[ -n "${test_GSTR}" ]] && [[ -z "${test_xinerama}" ]]; } || { [[ -z "${test_GSTR}" ]] && [[ -n "${test_xinerama}" ]]; }; then RSTR="$(awk -F ',' '{print $14}' <<< "${OPTIONS}")" FSTR="$(awk -F ',' '{print $15}' <<< "${OPTIONS}")" LISTSTR="$(awk -F ',' '{print $17}' <<< "${OPTIONS}")" CLIPBOARD="$(awk -F ',' '{print $18}' <<< "${OPTIONS}")" +# Neither geometry nor xinerama given, everything else starts at position 13. +elif [[ -n "${test_GSTR}" ]]; then + RSTR="$(awk -F ',' '{print $13}' <<< "${OPTIONS}")" + FSTR="$(awk -F ',' '{print $14}' <<< "${OPTIONS}")" + LISTSTR="$(awk -F ',' '{print $16}' <<< "${OPTIONS}")" + CLIPBOARD="$(awk -F ',' '{print $17}' <<< "${OPTIONS}")" +# Both geometry and xinerama given, everything else starts at position 15. else - xinerama_orig="$(awk -F ',' '{print $14}' <<< "${OPTIONS}")" RSTR="$(awk -F ',' '{print $15}' <<< "${OPTIONS}")" FSTR="$(awk -F ',' '{print $16}' <<< "${OPTIONS}")" LISTSTR="$(awk -F ',' '{print $18}' <<< "${OPTIONS}")" -- Alioth's /home/x2go-admin/maintenancescripts/git/hooks/post-receive-email on /srv/git/code.x2go.org/x2goserver.git