This is an automated email from the git hooks/post-receive script. x2go pushed a commit to branch master in repository x2goserver. commit 669b3aabb8f574a2bb30d415fb38b1ccf6837f0d Author: Mike Gabriel <mike.gabriel@das-netzwerkteam.de> Date: Sun Jun 29 00:18:07 2014 +0200 Provide support for client-side choice of clipboard security. (Fixes: #524). --- debian/changelog | 2 ++ x2goserver/bin/x2goresume-session | 11 ++++++++++- x2goserver/bin/x2gostartagent | 9 +++++++-- x2goserver/share/x2gofeature.d/x2goserver.features | 1 + 4 files changed, 20 insertions(+), 3 deletions(-) diff --git a/debian/changelog b/debian/changelog index 6945a4e..b3e54ef 100644 --- a/debian/changelog +++ b/debian/changelog @@ -166,6 +166,8 @@ x2goserver (4.0.1.16-0x2go1) UNRELEASED; urgency=low - Don't die if no session state file is found, as it will break X2Go completely after upgrading from versions << 4.0.1.16 if sessions are still running/suspended during package upgrade. + - Provide support for client-side choice of clipboard security. (Fixes: + #524). * debian/control, x2goserver.spec: + Update versioned D: x2goagent (>= 3.5.0.25). This assures that X2Go works with poly-instantiated /tmp directories. diff --git a/x2goserver/bin/x2goresume-session b/x2goserver/bin/x2goresume-session index 84f31ec..925582f 100755 --- a/x2goserver/bin/x2goresume-session +++ b/x2goserver/bin/x2goresume-session @@ -33,6 +33,7 @@ X2GO_PACK="$4" X2GO_KBD_LAYOUT="$5" X2GO_KBD_TYPE="$6" X2GO_SET_KBD="$7" +X2GO_CLIPBOARD="$8" X2GO_LIB_PATH="$(x2gopath libexec)"; X2GO_AGENT_PID=`$X2GO_LIB_PATH/x2gogetagent "$SESSION_NAME"` @@ -219,10 +220,12 @@ if [ -n "$test_GSTR" ]; then RSTR=`echo "$OPTIONS" | awk -F, {'print $13'}` FSTR=`echo "$OPTIONS" | awk -F, {'print $14'}` LISTSTR=`echo "$OPTIONS" | awk -F, {'print $16'}` + CLIPBOARD=`echo "$OPTIONS" | awk -F, {'print $17'}` else RSTR=`echo "$OPTIONS" | awk -F, {'print $14'}` FSTR=`echo "$OPTIONS" | awk -F, {'print $15'}` LISTSTR=`echo "$OPTIONS" | awk -F, {'print $17'}` + CLIPBOARD=`echo "$OPTIONS" | awk -F, {'print $18'}` fi KTSTR=`echo "$KTSTR" | sed "s/\//\\\\\\\\\//"` @@ -234,13 +237,19 @@ else keyboard_type="$X2GO_KBD_TYPE" fi +if [ -n "$X2GO_CLIPBOARD" ] && [ -z "`echo $X2GO_CLIPBOARD | sed -re 's/(0|none|client|server|both|1)//'`" ]; then + clipboard="clipboard=$X2GO_CLIPBOARD" +fi + NEWOPTIONS=`echo "$OPTIONS" | sed -e "s/$LSTR/link=$X2GO_LINK/"\ -e "s/$PSTR/pack=$X2GO_PACK/"\ -e "s/$KTSTR/kbtype=$keyboard_type/"\ -e "s/$GSTR/geometry=$X2GO_GEOMETRY/"\ -e "s/$RSTR/resize=$X2GO_RESIZE/"\ -e "s/$LISTSTR/listen=$GR_PORT/"\ - -e "s/$FSTR/fullscreen=$X2GO_FULLSCREEN/"` + -e "s/$FSTR/fullscreen=$X2GO_FULLSCREEN/" \ + -e "s/$CLIPBOARD/$clipboard/" \ +` if [ -z "$X2GO_GEOMETRY" ] || [ "$X2GO_GEOMETRY" == "fullscreen" ]; then NEWOPTIONS=`echo $NEWOPTIONS | sed -e "s/geometry=${X2GO_GEOMETRY},//"` diff --git a/x2goserver/bin/x2gostartagent b/x2goserver/bin/x2gostartagent index 17e436c..ceec1cc 100755 --- a/x2goserver/bin/x2gostartagent +++ b/x2goserver/bin/x2gostartagent @@ -61,6 +61,7 @@ X2GO_KBD_TYPE="$1"; shift X2GO_SET_KBD="$1"; shift X2GO_STYPE="$1"; shift X2GO_CMD="$1"; shift +X2GO_CLIPBOARD="$1"; shift X2GO_RESIZE=1 X2GO_FULLSCREEN=0 @@ -292,10 +293,14 @@ if [ -n "$X2GO_GEOMETRY" ] && [ "$X2GO_GEOMETRY" != "fullscreen" ]; then option_geometry="geometry=${X2GO_GEOMETRY}," fi +if [ -n "$X2GO_CLIPBOARD" ] && [ -z "`echo $X2GO_CLIPBOARD | sed -re 's/(0|none|client|server|both|1)//'`" ]; then + clipboard=",clipboard=$X2GO_CLIPBOARD" +fi + if [ "$X2GO_SET_KBD" == "0" ] || [ "$X2GO_KBD_TYPE" == "auto" ];then - X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=null/null,${option_geometry}resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0,state=${STATE_FILE}" + X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=null/null,${option_geometry}resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT}${clipboard},client=linux,menu=0,state=${STATE_FILE}," else - X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=${X2GO_KBD_TYPE},${option_geometry}resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT},client=linux,menu=0,state=${STATE_FILE}" + X2GO_HOST="nx/nx,link=${X2GO_LINK},pack=${X2GO_PACK},limit=0,root=${SESSION_DIR},cache=8M,images=32M,type=${X2GO_TYPE},id=${SESSION_NAME},cookie=$X2GO_COOKIE,errors=${SESSION_LOG},kbtype=${X2GO_KBD_TYPE},${option_geometry}resize=${X2GO_RESIZE},fullscreen=${X2GO_FULLSCREEN},accept=${REMOTE},listen=${GR_PORT}${clipboard},client=linux,menu=0,state=${STATE_FILE},${clipboard}" fi diff --git a/x2goserver/share/x2gofeature.d/x2goserver.features b/x2goserver/share/x2gofeature.d/x2goserver.features index fc769b9..2b75c6d 100755 --- a/x2goserver/share/x2gofeature.d/x2goserver.features +++ b/x2goserver/share/x2gofeature.d/x2goserver.features @@ -38,6 +38,7 @@ case "$X2GO_FEATURE" in "X2GO_SET_KEYBOARD") echo "ok"; exit 0;; "X2GO_LIST_SHADOWSESSIONS") echo "ok"; exit 0;; "X2GO_MOUNT_UNCPATHS") echo "ok"; exit 0;; + "X2GO_CLIPBOARD_MODES") echo "ok"; exit 0;; *) exit -1;; esac -- Alioth's /srv/git/_hooks_/post-receive-email on /srv/git/code.x2go.org/x2goserver.git