You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
159 lines
4.1 KiB
159 lines
4.1 KiB
18 years ago
|
#!/bin/sh
|
||
|
#
|
||
|
# Copyright (c) 2006 by Karl J. Runge <runge@karlrunge.com>
|
||
|
#
|
||
|
# ssl_tightvncviewer:
|
||
|
#
|
||
|
# A wrapper that calls ssl_vncviewer to use the enhanced TightVNC viewer.
|
||
|
#
|
||
|
# The enhanced TightVNC viewer features are:
|
||
|
#
|
||
|
# - SSL support for connections using the co-bundled stunnel program.
|
||
|
# - rfbNewFBSize VNC support (screen resizing)
|
||
|
# - cursor alphablending with x11vnc at 32bpp
|
||
|
# - xgrabserver support for fullscreen mode (for old window mgrs)
|
||
|
#
|
||
|
#
|
||
|
# Your platform (e.g. Linux.i686) is autodetected and enhanced
|
||
|
# vncviewer and stunnel binaries for it are used (see the ./bin directory).
|
||
|
#
|
||
|
# See the build.unix script if your platform is not in this package.
|
||
|
# You can also set the env. var. UNAME=os.arch to any "os.arch" you want
|
||
|
# to override the autodetetion.
|
||
|
#
|
||
|
# Usage:
|
||
|
#
|
||
|
# ssl_tightvncviewer [ssl_vncviewer-args] hostname:N [tightvncviewer-args]
|
||
|
#
|
||
|
# "hostname:N" is the host and VNC display to connect to, e.g. snoopy:0
|
||
|
#
|
||
|
# See the script util/ssl_vncviewer for details about its arguments:
|
||
|
#
|
||
|
# -verify pemfile
|
||
|
# -mycert pemfile
|
||
|
# -proxy phost:pport
|
||
|
# -alpha
|
||
|
# -grab
|
||
|
#
|
||
|
#
|
||
|
# If the *very first* argument is "-cotvnc" then it is assumed you are on
|
||
|
# Darwin and want to run the Chicken of the VNC viewer via our wrapper.
|
||
|
#
|
||
|
#
|
||
|
# See the TightVNC viewer documentation for on its cmdline arguments.
|
||
|
#
|
||
|
# For convenience, here is the current (7/2006) TightVNC viewer -help output:
|
||
|
#
|
||
|
# TightVNC viewer version 1.3dev5
|
||
|
#
|
||
|
# Usage: vncviewer [<OPTIONS>] [<HOST>][:<DISPLAY#>]
|
||
|
# vncviewer [<OPTIONS>] [<HOST>][::<PORT#>]
|
||
|
# vncviewer [<OPTIONS>] -listen [<DISPLAY#>]
|
||
|
# vncviewer -help
|
||
|
#
|
||
|
# <OPTIONS> are standard Xt options, or:
|
||
|
# -via <GATEWAY>
|
||
|
# -shared (set by default)
|
||
|
# -noshared
|
||
|
# -viewonly
|
||
|
# -fullscreen
|
||
|
# -noraiseonbeep
|
||
|
# -passwd <PASSWD-FILENAME> (standard VNC authentication)
|
||
|
# -user <USERNAME> (Unix login authentication)
|
||
|
# -encodings <ENCODING-LIST> (e.g. "tight copyrect")
|
||
|
# -bgr233
|
||
|
# -owncmap
|
||
|
# -truecolour
|
||
|
# -depth <DEPTH>
|
||
|
# -compresslevel <COMPRESS-VALUE> (0..9: 0-fast, 9-best)
|
||
|
# -quality <JPEG-QUALITY-VALUE> (0..9: 0-low, 9-high)
|
||
|
# -nojpeg
|
||
|
# -nocursorshape
|
||
|
# -x11cursor
|
||
|
# -autopass
|
||
|
#
|
||
|
# Option names may be abbreviated, e.g. -bgr instead of -bgr233.
|
||
|
# See the manual page for more information.
|
||
|
#
|
||
|
|
||
|
if [ "X$1" = "X-h" -o "X$1" = "X-help" -o "X$1" = "X--help" ]; then
|
||
|
head -76 "$0" | grep -v bin/sh
|
||
|
exit
|
||
|
fi
|
||
|
|
||
|
# Include /usr/bin... to be sure to get regular utilities:
|
||
|
#
|
||
|
PATH=$PATH:/usr/bin:/bin
|
||
|
export PATH
|
||
|
|
||
|
# Set this for ssl_vncviewer to pick up:
|
||
|
#
|
||
|
use_ours=0
|
||
|
if [ "X$1" = "X-cotvnc" ]; then
|
||
|
shift
|
||
|
DARWIN_COTVNC=1
|
||
|
export DARWIN_COTVNC
|
||
|
fi
|
||
|
if [ "X$VNCVIEWERCMD" = "X" ]; then
|
||
|
VNCVIEWERCMD="vncviewer"
|
||
|
export VNCVIEWERCMD
|
||
|
if [ "X$DARWIN_COTVNC" = "X" ]; then
|
||
|
use_ours=1
|
||
|
fi
|
||
|
fi
|
||
|
|
||
|
# work out os.arch platform string and check for binaries:
|
||
|
#
|
||
|
name=$UNAME
|
||
|
if [ "X$name" = "X" ]; then
|
||
|
name=`uname -sm | sed -e 's/ /./g'`
|
||
|
fi
|
||
|
|
||
|
f="$0"
|
||
|
for t in 1 2 3 4 5
|
||
|
do
|
||
|
if [ -L "$f" ]; then
|
||
|
f0="$f"
|
||
|
f=`ls -l "$f" | sed -e 's/^.* -> //'`
|
||
|
if echo "$f" | grep '^/' > /dev/null; then
|
||
|
:
|
||
|
else
|
||
|
f="`dirname "$f0"`/$f"
|
||
|
fi
|
||
|
else
|
||
|
break
|
||
|
fi
|
||
|
done
|
||
|
dir=`dirname "$f"`
|
||
|
|
||
|
if [ ! -d "$dir/$name" ]; then
|
||
|
echo "cannot find platform dir: $dir/$name for your OS:"
|
||
|
uname -sm
|
||
|
echo "you can set the \$UNAME env. var. to override the setting."
|
||
|
exit 1
|
||
|
fi
|
||
|
|
||
|
# Put our os.arch and other utils dirs at head of PATH to be sure to
|
||
|
# pick them up:
|
||
|
#
|
||
|
PATH="$dir:$dir/$name:$dir/util:$PATH"
|
||
|
if echo "$dir" | grep '^/' > /dev/null; then
|
||
|
:
|
||
|
else
|
||
|
dir=`pwd`/$dir
|
||
|
PATH="$dir:$dir/$name:$dir/util:$PATH"
|
||
|
fi
|
||
|
|
||
|
STUNNEL_EXTRA_OPTS=${STUNNEL_EXTRA_OPTS:-"maxconn = 1"}
|
||
|
export STUNNEL_EXTRA_OPTS
|
||
|
|
||
|
# If ours (and not cotvnc), force the use of tight encoding for localhost
|
||
|
# redir connection:
|
||
|
#
|
||
|
#
|
||
|
if [ $use_ours = 1 ]; then
|
||
|
ssl_vncviewer "$@" -encodings 'copyrect tight zrle zlib hextile'
|
||
|
else
|
||
|
ssl_vncviewer "$@"
|
||
|
fi
|