update to 1.0.8 and renaming

pull/1/head
runge 18 years ago
parent 8dead0759f
commit 05ba45f72e

@ -1,18 +1,18 @@
Enhanced TightVNC Viewer package
Enhanced TightVNC Viewer (ssvnc: SSL/SSH VNC viewer)
Copyright (c) Karl J. Runge <runge@karlrunge.com>
Copyright (c) 2006 Karl J. Runge <runge@karlrunge.com>
All rights reserved.
These packages provide 1) An enhanced TightVNC Viewer on Unix, 2) Binaries
for many Operating Systems (including Windows) for your convenience,
3) Wrapper scripts and etc. for gluing them all together.
These bundles provide 1) An enhanced TightVNC Viewer on Unix, 2) Binaries
for many Operating Systems (including Windows and Mac OS X) for your
convenience, 3) Wrapper scripts and a GUI for gluing them all together.
One can straight-forwardly download all of the components and get them
to work together by oneself: this package is mostly for your convenience
to work together by oneself: this bundle is mostly for your convenience
to combine and wrap together the freely available software.
Bundled software co-shipped in this package is copyright and licensed
by others. See these sites and related ones for more information:
Bundled software co-shipped is copyright and licensed by others.
See these sites and related ones for more information:
http://www.tightvnc.com
http://www.realvnc.com
@ -24,31 +24,33 @@ by others. See these sites and related ones for more information:
Note: Some of the Windows binaries included contain cryptographic software
that you may not be allowed to download, use, or redistribute. Please
check your situation first before downloading any of these packages.
check your situation first before downloading any of these bundles.
See the survey http://rechten.uvt.nl/koops/cryptolaw/index.htm for useful
information. The Unix programs do not contain cryptographic software, but
rather will make use of cryptographic libraries that are installed on your
Unix system. Depending on your circumstances you may still need to check.
All work by Karl J. Runge in this package is Copyright (c) Karl J. Runge
All work by Karl J. Runge in this project is Copyright (c) 2006 Karl J. Runge
and is licensed under the GPL as described in the file COPYING in this
directory.
All the files and information in this package are provided "AS IS"
All the files and information in this project are provided "AS IS"
without any warranty of any kind. Use them at your own risk.
=============================================================================
This package contains a convenient collection of enhanced TightVNC viewers
and stunnel binaries for different flavors of Unix and wrapper scripts,
etc to glue them together. SSL and SSH encryption tunnelling is provided.
This bundle contains a convenient collection of enhanced TightVNC
viewers and stunnel binaries for different flavors of Unix and wrapper
scripts and a GUI front-end to glue them together. Automatic SSL and
SSH encryption tunnelling is provided.
Also, a Windows SSL wrapper for the co-bundled TightVNC binary and other
utilities are provided. (Launch ssl_tightvncviewer.exe in the
Windows subdirectory).
A Windows SSL wrapper for the bundled TightVNC binary and other utilities
are provided. (Launch ssvnc.exe in the Windows subdirectory).
It is a self-contained package, you could carry it around on, say,
The short name of the project is "ssvnc" for SSL/SSH VNC Viewer.
It is a self-contained bundle, you could carry it around on, say,
a USB memory stick for secure VNC viewing from almost any machine,
Unix or Windows.
@ -57,17 +59,10 @@ Features:
The enhanced TightVNC viewer features are:
- SSL support for connections using the co-bundled stunnel program.
- SSL support for connections using the bundled stunnel program.
- Automatic SSH connections from the GUI (ssh must already be
installed on Unix; co-bundled plink is used on Windows)
- rfbNewFBSize VNC support on Unix (screen resizing)
- cursor alphablending with x11vnc at 32bpp (-alpha option, Unix only)
- xgrabserver support for fullscreen mode, for old window
managers (-grab option, Unix only).
installed on Unix; bundled plink is used on Windows)
- Create or Import SSL Certificates and Private Keys.
@ -80,31 +75,154 @@ The enhanced TightVNC viewer features are:
connecting.
- You can also use your own VNC Viewer, e.g. UltraVNC or RealVNC,
with the front-end if you like.
with the front-end GUI or scripts if you like.
- Sets up any additional SSH port redirections that you desire.
- Support for native MacOS X usage with bundled Chicken of the
VNC viewer.
(these 3 features only apply to the bundled Unix tightvnc viewer)
- rfbNewFBSize VNC support on Unix (screen resizing, Unix only)
- cursor alphablending with x11vnc at 32bpp (-alpha option, Unix only)
- xgrabserver support for fullscreen mode, for old window
managers (-grab option, Unix only).
The list of software bundled in the archive files:
TightVNC Viewer (windows, unix, macosx)
Chicken of the VNC Viewer (macosx)
Stunnel (windows, unix, macosx)
Putty/Plink/Pageant (windows)
OpenSSL (windows)
esound (windows)
These are all self-contained in the bundle directory: they will not be
installed on your system. Just un-zip or un-tar the file you downloaded
and run it straight from its directory.
Quick Start:
-----------
Unix and Mac OS X:
Inside a Terminal do something like the following.
Unpack the archive:
% gzip -dc ssvnc-1.0.8.tar.gz | tar xvf -
Run the GUI:
% ./ssvnc/Unix/ssvnc (for Unix)
% ./ssvnc/MacOSX/ssvnc (for Mac OS X)
actually both of the above are equivalent, and the same as running
% ./ssvnc/bin/ssvnc
The smaller file "ssvnc_no_windows-1.0.8.tar.gz"
could have been used as well.
Windows:
Unzip, using WinZip or a similar utility, the zip file:
- Sets up any additional SSH port redirections that you want.
ssvnc-1.0.8.zip
Run the GUI, e.g.:
Your package should have included binaries for many OS's: Linux, Solaris,
FreeBSD, etc. Unpack your archive and see the subdirectories of
Start -> Run -> Browse
and then navigate to
.../ssvnc/Windows/ssvnc.exe
select Open, and then OK to launch it.
The smaller file "ssvnc_windows_only-1.0.8.zip"
could have been used as well.
You can make a Windows shortcut to this program if you want to.
See the Windows/README.txt for more info.
Bundle Info:
------------
The bundle files unpack a directory/folder named: ssvnc
It contains these programs to launch the GUI:
Windows/ssvnc.exe for Windows
MacOSX/ssvnc for Mac OS X
Unix/ssvnc for Unix
(the Mac OS X and Unix launchers are simply links to the bin directory).
Your bundle file should have included binaries for many OS's: Linux,
Solaris, FreeBSD, etc. Unpack your archive and see the subdirectories of
./bin
for the ones that were shipped in this package, e.g. ./bin/Linux.i686
for the ones that were shipped in this project, e.g. ./bin/Linux.i686
Run "uname -sm" to see your OS+arch combination. (See the
./bin/tightvncviewer -h output for how to override platform autodection
./bin/ssvnc_cmd -h output for how to override platform autodection
via the UNAME env. var).
External Dependencies:
----------------------
On Windows everything is included. Let us know if you find otherwise.
On Unix depending on what you do you need these programs installed:
- basic unix utilities (sh, ls, cat, awk, sed, etc..)
- tcl/tk (wish interpreter)
- xterm
- perl
- ssh
- openssl
Lesser used ones: netcat, esd/artsd, smbclient, smbmount, cups
On Mac OS X depending on what you do you need these programs installed:
- basic unix utilities (sh, ls, cat, awk, sed, etc..)
- tcl/tk (wish interpreter)
- Terminal
- perl
- ssh
- openssl
Lesser used ones: netcat, smbclient, cups
Most Mac OS X and Unix OS come with the main components installed.
If you need to Build:
--------------------
If your OS/arch is not included, the script "build.unix" may be able to
If your OS/arch is not included or the provided binary has the wrong
library dependencies, etc. the script "build.unix" may be able to
successfully build on for you and deposit the binaries down in ./bin/...
using the included source code.
You must run the build.unix script from this directory (that this toplevel
README is in) and like this:
You MUST run the build.unix script from this directory (that this toplevel
README is in, i.e "ssvnc") and like this:
./build.unix
@ -116,27 +234,21 @@ The programs:
------------
Unpack your archive, and you will see "bin", "Windows", "src" directories
and other files. The wrapper scripts:
and other files. The command line wrapper scripts:
./bin/ssl_tightvncviewer
./bin/ssvnc_cmd
./bin/tightvncviewer
are the main programs you will run and will try to autodetect your OS+arch
are the main programs that are run and will try to autodetect your OS+arch
combination and if binaries are present for it automatically use them.
(if not found try the running the build.unix script).
If you prefer a GUI to prompt for parameters and then start ssl_tightvncviewer
If you prefer a GUI to prompt for parameters and then start ssvnc_cmd
you can run this instead:
./bin/ssl_vnc_gui
this is essentially the same GUI that is run on Windows (the
ssl_tightvncviewer.exe).
./bin/ssvnc
Using the GUI is it not possible (well not easy) to initiate
a VNC connection that is not encrypted with either SSL or SSH.
Unencrypted VNC connections can only be started by manually running the
./bin/tightvncviewer script.
this is the same GUI that is run on Windows (the ssvnc.exe).
For convenience, you can make symlinks from a directory in your PATH to
any of the 3 programs above you wish to run. That is all you usually
@ -144,19 +256,19 @@ need to do for it to pick up all of the binaries, utils, etc. E.g.
assuming $HOME/bin is in your $PATH:
cd $HOME/bin
ln -s /path/to/enhanced_tightvnc_viewer/bin/{s,t}* .
ln -s /path/to/ssvnc/bin/{s,t}* .
(note the "." at the end). The above commands is basically the way to
"install" this package on Unix.
"install" this on Unix.
Also symlinks to the GUI launcher script are provided in:
MacOSX/ssl_vnc_gui.sh
Unix/ssl_vnc_gui
MacOSX/ssvnc
Unix/ssvnc
On Windows unpack your archive and run:
Windows/ssl_tightvncviewer.exe
Windows/ssvnc.exe
Examples:
@ -167,11 +279,11 @@ archive you unpacked.
Use enhanced TightVNC unix viewer to connect to x11vnc via SSL:
./bin/ssl_tightvncviewer far-away.east:0
./bin/ssvnc_cmd far-away.east:0
./bin/tightvncviewer -ssl far-away.east:0 (same)
./bin/ssl_vnc_gui (start GUI launcher)
./bin/ssvnc (start GUI launcher)
Use enhanced TightVNC unix viewer without SSL:
@ -180,7 +292,7 @@ Use enhanced TightVNC unix viewer without SSL:
Use SSL to connect to a x11vnc server, and also verify the server's
identity using the SSL Certificate in the file ./x11vnc.pem:
./bin/ssl_tightvncviewer -alpha -verify ./x11vnc.pem far-away.east:0
./bin/ssvnc_cmd -alpha -verify ./x11vnc.pem far-away.east:0
(also turns on the viewer-side cursor alphablending hack).
@ -188,8 +300,8 @@ identity using the SSL Certificate in the file ./x11vnc.pem:
Brief description of the subdirectories:
---------------------------------------
./bin/util some utility scripts, e.g. ssl_vncviewer
and ssl_tightvncviewer.tcl
./bin/util some utility scripts, e.g. ss_vncviewer
and ssvnc.tcl
./src source code and patches.
./src/zips zip files of source code and binaries.
@ -205,11 +317,24 @@ Brief description of the subdirectories:
./man man pages for TightVNC viewer and stunnel.
./Windows Stock TightVNC viewer and Stunnel, Openssl
etc Windows binaries. ssl_tightvncviewer.exe
is the program to run.
etc Windows binaries. ssvnc.exe is the
program to run.
./MacOSX contains an unpacked Chicken of the VNC
viewer and a symlink to ssvnc.
./Unix contains a symlink to ssvnc.
Since they are large, depending on which package you use not all of the
above may be present in your package.
Depending on which bundle you use not all of the above may be present.
The smallest bundles with binaries are:
ssvnc_windows_only-1.x.y.zip Windows
ssvnc_no_windows-1.x.y.tar.gz Unix and MacOSX
however, the tiny scripts only one (only 60KB) will run properly on Unix
as long as you install external vncviewer and stunnel packages:
ssvnc_unix_minimal-1.x.y.tar.gz
Help and Info:
@ -217,9 +342,8 @@ Help and Info:
For more help on other options and usage patterns run these:
./bin/ssl_tightvncviewer -h
./bin/tightvncviewer -h
./bin/util/ssl_vncviewer -h
./bin/ssvnc_cmd -h
./bin/util/ss_vncviewer -h
See also:
@ -234,26 +358,3 @@ See also:
http://www.realvnc.com
http://www.chiark.greenend.org.uk/~sgtatham/putty/
http://sourceforge.net/projects/cotvnc/
Windows:
-------
Unpack the zip archive somewhere.
A wrapper to create a STUNNEL tunnel and then launch the
Windows TightVNC viewer is provided in:
Windows/ssl_tightvncviewer.exe
Just launch it (Start ... Run) and fill in the remote VNC
display then click "Connect". You can make a shortcut if
you prefer.
Click the Help buttons for more info. There is also a
Windows/README.txt file.
On Windows you may need to terminate the STUNNEL process
from the System Tray if the tool cannot terminate it
by itself. Just right-click on the STUNNEL icon.

@ -6,16 +6,16 @@ is launched to used this SSL tunnel.
An example server would be "x11vnc -ssl", or any VNC server with a
2nd STUNNEL program running on the server side.
Just click on the program "ssl_tightvncviewer.exe", and then enter
the remote VNC Server and click "Connect". Click on "Help" for more
Just click on the program "ssvnc.exe", and then enter the remote
VNC Server and click "Connect". Click on "Help" for more information
information. You can also set some simple options under "Options ..."
Note that on Windows when the TightVNC viewer disconnects you may need to
terminate the STUNNEL program manually. To do this: Click on the STUNNEL
icon (dark green) on the System Tray and then click "Exit". Before that,
however, you will be prompted if you want ssl_tightvncviewer.exe to try
to terminate STUNNEL for you. (Note that even if STUNNEL termination is
successful, the Tray Icon may not go away until the mouse hovers over it!)
however, you will be prompted if you want ssvnc.exe to try to terminate
STUNNEL for you. (Note that even if STUNNEL termination is successful,
the Tray Icon may not go away until the mouse hovers over it!)
With this STUNNEL and TightVNC Viewer wrapper you can also enable using
SSL Certificates with STUNNEL, and so the connection is not only encrypted

@ -9,25 +9,25 @@ set server_fh ""
set debug 0
if {$debug} {
if {! [info exists env(SSL_VNC_DEST)]} {
set env(SSL_VNC_DEST) "haystack:2037"
if {! [info exists env(SSVNC_DEST)]} {
set env(SSVNC_DEST) "haystack:2037"
}
if {! [info exists env(SSL_VNC_PROXY)]} {
set env(SSL_VNC_PROXY) "haystack:2037"
if {! [info exists env(SSVNC_PROXY)]} {
set env(SSVNC_PROXY) "haystack:2037"
}
if {! [info exists env(SSL_VNC_LISTEN)]} {
set env(SSL_VNC_LISTEN) "6789"
if {! [info exists env(SSVNC_LISTEN)]} {
set env(SSVNC_LISTEN) "6789"
}
}
set dest $env(SSL_VNC_DEST)
set dest $env(SSVNC_DEST)
if [regexp {,} $env(SSL_VNC_PROXY)] {
set s [split $env(SSL_VNC_PROXY) ","]
if [regexp {,} $env(SSVNC_PROXY)] {
set s [split $env(SSVNC_PROXY) ","]
set proxy1 [lindex $s 0]
set proxy2 [lindex $s 1]
} else {
set proxy1 $env(SSL_VNC_PROXY)
set proxy1 $env(SSVNC_PROXY)
}
set s [split $proxy1 ":"]
@ -40,7 +40,7 @@ if {$proxy2 != ""} {
set proxy2_port [lindex $s 1]
}
set lport $env(SSL_VNC_LISTEN)
set lport $env(SSVNC_LISTEN)
set got_connection 0
set lsock [socket -myaddr 127.0.0.1 -server handle_connection $lport]

@ -2,11 +2,11 @@
#
# Copyright (c) 2006 by Karl J. Runge <runge@karlrunge.com>
#
# ssl_vnc_gui:
# sslvnc:
#
# A wrapper for ssl_tightvncviewer using a tcl/tk gui.
# A wrapper for ssvnc_cmd using a tcl/tk gui.
#
# See ssl_tightvncviewer for details.
# See ssvnc_cmd for details.
#
if [ "X$XTERM_PRINT" != "X" ]; then
XTERM_PRINT=""
@ -18,14 +18,25 @@ if [ "X$1" = "X-bg" ]; then
exit 0
fi
PATH=$PATH:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/openwin/bin
PATH=$PATH:/usr/bin:/bin:/usr/bin/X11:/usr/X11R6/bin:/usr/openwin/bin:/usr/sfw/bin:/usr/local/bin
export PATH
if [ "X$WISH" = "X" ]; then
WISH=wish
for try in wish wish8.3 wish8.4 wish8.5
do
if type $try > /dev/null; then
WISH=$try
break
fi
done
fi
SSL_VNC_GUI_CMD="$0 $*"
export SSL_VNC_GUI_CMD
SSL_VNC_LAUNCH=$SSL_VNC_GUI_CMD
export SSL_VNC_LAUNCH
SSVNC_GUI_CMD="$0 $*"
export SSVNC_GUI_CMD
SSVNC_LAUNCH=$SSVNC_GUI_CMD
export SSVNC_LAUNCH
# work out os.arch platform string and check for binaries:
#
@ -50,13 +61,48 @@ do
fi
done
dir=`dirname "$f"`
PATH="$dir:$PATH"
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
nearby=0
if [ -x "$dir/vncviewer" -a -x "$dir/stunnel" ]; then
nearby=1
fi
if [ ! -d "$dir/$name" -a $nearby = 0 ]; then
echo
echo "Cannot find platform dir for your OS `uname -sm`:"
echo
echo " $dir/$name"
echo
PATH=$PATH:/usr/sbin:/usr/local/sbin:/dist/sbin
quit=0
if type vncviewer >/dev/null 2>/dev/null; then
:
else
echo "vncviewer not found in PATH."
quit=1
fi
if type stunnel >/dev/null 2>/dev/null; then
:
else
echo "stunnel not found in PATH."
quit=1
fi
echo
if [ "X$quit" = "X1" ]; then
echo "You can set the \$UNAME env. var. to override the OS setting."
echo "Or, if available, run the ./build.unix script to build it."
echo "Or install external \"vncviewer\" and \"stunnel\" packages."
exit 1
fi
echo "Using externel \"vncviewer\" and \"stunnel\" found in PATH."
else
STUNNEL_EXTRA_OPTS=${STUNNEL_EXTRA_OPTS:-"maxconn = 1"}
export STUNNEL_EXTRA_OPTS
SSVNC_VIEWER_INTERNAL=1
export SSVNC_VIEWER_INTERNAL
fi
# Put our os.arch and other utils dirs at head of PATH to be sure to
# pick them up:
@ -69,10 +115,11 @@ else
PATH="$dir:$dir/$name:$dir/util:$PATH"
fi
SSL_VNC_BASEDIR="$dir"
export SSL_VNC_BASEDIR
SSVNC_BASEDIR="$dir"
export SSVNC_BASEDIR
STUNNEL_EXTRA_OPTS=${STUNNEL_EXTRA_OPTS:-"maxconn = 1"}
export STUNNEL_EXTRA_OPTS
exec ssl_tightvncviewer.tcl "$@"
if [ "X$WISH" = "Xwish" ]; then
exec ssvnc.tcl "$@"
else
exec $WISH $dir/util/ssvnc.tcl "$@"
fi

@ -2,9 +2,9 @@
#
# Copyright (c) 2006 by Karl J. Runge <runge@karlrunge.com>
#
# ssl_tightvncviewer:
# ssvnc_cmd:
#
# A wrapper that calls ssl_vncviewer to use the enhanced TightVNC viewer.
# A wrapper that calls ss_vncviewer to use the enhanced TightVNC viewer.
#
# The enhanced TightVNC viewer features are:
#
@ -23,11 +23,11 @@
#
# Usage:
#
# ssl_tightvncviewer [ssl_vncviewer-args] hostname:N [tightvncviewer-args]
# ssvnc_cmd [ss_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:
# See the script util/ss_vncviewer for details about its arguments:
#
# -verify pemfile
# -mycert pemfile
@ -86,18 +86,25 @@ fi
PATH=$PATH:/usr/bin:/bin
export PATH
# Set this for ssl_vncviewer to pick up:
# Set this for ss_vncviewer to pick up:
#
use_ours=0
if [ "X$1" = "X-cotvnc" ]; then
shift
DARWIN_COTVNC=1
export DARWIN_COTVNC
elif [ "X$DARWIN_COTVNC" = "X" -a "X$DISPLAY" = "X" ]; then
uname=`uname`
if [ "X$uname" = "XDarwin" ]; then
DARWIN_COTVNC=1
export DARWIN_COTVNC
fi
fi
use_ours=0
if [ "X$VNCVIEWERCMD" = "X" ]; then
VNCVIEWERCMD="vncviewer"
export VNCVIEWERCMD
if [ "X$DARWIN_COTVNC" = "X" ]; then
if [ "X$DARWIN_COTVNC" != "X" ]; then
use_ours=1
fi
fi
@ -110,7 +117,7 @@ if [ "X$name" = "X" ]; then
fi
f="$0"
for t in 1 2 3 4 5
for t in 1 2 3 4 5 6
do
if [ -L "$f" ]; then
f0="$f"
@ -125,12 +132,55 @@ do
fi
done
dir=`dirname "$f"`
PATH="$dir:$PATH"
nearby=0
if [ -x "$dir/vncviewer" -a -x "$dir/stunnel" ]; then
nearby=1
fi
if [ ! -d "$dir/$name" -a $nearby = 0 ]; then
echo
echo "Cannot find platform dir for your OS `uname -sm`:"
echo
echo " $dir/$name"
echo
PATH=$PATH:/usr/sbin:/usr/local/sbin:/dist/sbin
quit=0
if type vncviewer >/dev/null 2>/dev/null; then
:
else
echo "vncviewer not found in PATH."
quit=1
fi
if type stunnel >/dev/null 2>/dev/null; then
:
else
echo "stunnel not found in PATH."
quit=1
fi
echo
if [ "X$quit" = "X1" ]; then
echo "You can set the \$UNAME env. var. to override the OS setting."
echo "Or, if available, run the ./build.unix script to build it."
echo "Or install external \"vncviewer\" and \"stunnel\" packages."
exit 1
fi
echo "Using externel \"vncviewer\" and \"stunnel\" found in PATH."
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
if [ "X$DARWIN_COTVNC" = "X" -a "X$VNCVIEWERCMD" = "Xvncviewer" ]; then
hstr=`"$VNCVIEWERCMD" -h 2>&1 | head -5`
if echo "$hstr" | grep '^TightVNC.*version 1\.[23]' > /dev/null; then
# we need to avoid raw encoding
use_ours=1
fi
fi
else
STUNNEL_EXTRA_OPTS=${STUNNEL_EXTRA_OPTS:-"maxconn = 1"}
export STUNNEL_EXTRA_OPTS
SSVNC_VIEWER_INTERNAL=1
export SSVNC_VIEWER_INTERNAL
use_ours=1
fi
# Put our os.arch and other utils dirs at head of PATH to be sure to
@ -144,15 +194,26 @@ else
PATH="$dir:$dir/$name:$dir/util:$PATH"
fi
STUNNEL_EXTRA_OPTS=${STUNNEL_EXTRA_OPTS:-"maxconn = 1"}
export STUNNEL_EXTRA_OPTS
base=`basename "$0"`
if [ "X$1" = "X-ssl" ]; then
shift
base="ssvnc_cmd"
fi
# 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'
if [ "X$base" = "Xtightvncviewer" ]; then
"$VNCVIEWERCMD" -encodings 'copyrect tight zrle zlib hextile' "$@"
else
ss_vncviewer "$@" -encodings 'copyrect tight zrle zlib hextile'
fi
else
ssl_vncviewer "$@"
if [ "X$base" = "Xtightvncviewer" ]; then
"$VNCVIEWERCMD" "$@"
else
ss_vncviewer "$@"
fi
fi

@ -1,7 +1,7 @@
#!/bin/sh
#
# ssl_vncviewer: wrapper for vncviewer to use an stunnel SSL tunnel
# or an SSH tunnel.
# ss_vncviewer: wrapper for vncviewer to use an stunnel SSL tunnel
# or an SSH tunnel.
#
# Copyright (c) 2006 by Karl J. Runge <runge@karlrunge.com>
#
@ -14,10 +14,10 @@
# (or use stunnel on the server side for any other VNC server)
#
#
# Usage: ssl_vncviewer [cert-args] host:display <vncviewer-args>
# Usage: ss_vncviewer [cert-args] host:display <vncviewer-args>
#
# e.g.: ssl_vncviewer snoopy:0
# ssl_vncviewer snoopy:0 -encodings "copyrect tight zrle hextile"
# e.g.: ss_vncviewer snoopy:0
# ss_vncviewer snoopy:0 -encodings "copyrect tight zrle hextile"
#
# [cert-args] can be:
#
@ -69,13 +69,13 @@
#
# Examples:
#
# ssl_vncviewer -ssh bob@bobs-home.net:0
# ssl_vncviewer -ssh -sshcmd 'x11vnc -localhost' bob@bobs-home.net:0
# ss_vncviewer -ssh bob@bobs-home.net:0
# ss_vncviewer -ssh -sshcmd 'x11vnc -localhost' bob@bobs-home.net:0
#
# ssl_vncviewer -ssh -proxy fred@mygate.com:2022 mymachine:0
# ssl_vncviewer -ssh -proxy bob@bobs-home.net:2222 localhost:0
# ss_vncviewer -ssh -proxy fred@mygate.com:2022 mymachine:0
# ss_vncviewer -ssh -proxy bob@bobs-home.net:2222 localhost:0
#
# ssl_vncviewer -ssh -proxy fred@gw-host,fred@peecee localhost:0
# ss_vncviewer -ssh -proxy fred@gw-host,fred@peecee localhost:0
#
# -sshcmd cmd Run "cmd" via ssh instead of the default "sleep 15"
# e.g. -sshcmd 'x11vnc -display :0 -localhost -rfbport 5900'
@ -89,7 +89,7 @@
# this if you need to tunnel additional services via -R and -L
# (see -sshargs above).
#
# ssl_vncviewer -sshssl -proxy fred@mygate.com mymachine:0
# ss_vncviewer -sshssl -proxy fred@mygate.com mymachine:0
#
#
# -alpha turn on cursor alphablending hack if you are using the
@ -129,11 +129,29 @@ use_sshssl=""
direct_connect=""
ssh_sleep=15
ssh_cmd="sleep $ssh_sleep"
if [ "X$SSL_VNCVIEWER_SSH_CMD" != "X" ]; then
ssh_cmd="$SSL_VNCVIEWER_SSH_CMD"
if [ "X$SS_VNCVIEWER_SSH_CMD" != "X" ]; then
ssh_cmd="$SS_VNCVIEWER_SSH_CMD"
fi
ssh_args=""
if [ "X$1" = "X-viewerflavor" ]; then
if echo "$VNCVIEWERCMD" | grep -i chicken.of > /dev/null; then
echo "cotvnc"
exit 0
fi
str=`"$VNCVIEWERCMD" -h 2>&1 | head -5`
if echo "$str" | grep -i 'TightVNC.viewer' > /dev/null; then
echo "tightvnc"
elif echo "$str" | grep -i 'RealVNC.Ltd' > /dev/null; then
echo "realvnc4"
elif echo "$str" | grep -i 'VNC viewer version 3' > /dev/null; then
echo "realvnc3"
else
echo "unknown"
fi
exit 0
fi
# grab our cmdline options:
while [ "X$1" != "X" ]
do
@ -312,16 +330,16 @@ if [ "X$use_ssh" = "X1" ]; then
fi
C=""
if [ "X$SSL_VNCVIEWER_USE_C" != "X" ]; then
if [ "X$SS_VNCVIEWER_USE_C" != "X" ]; then
C="-C"
fi
# the -t option actually speeds up typing response via VNC!!
if [ "X$SSL_VNCVIEWER_SSH_ONLY" != "X" ]; then
if [ "X$SS_VNCVIEWER_SSH_ONLY" != "X" ]; then
echo "$ssh -x -p $ssh_port -t $C $ssh_args $ssh_host \"$info\""
echo ""
$ssh -x -p $ssh_port -t $C $ssh_args $ssh_host "$ssh_cmd"
exit $?
elif [ "X$SSL_VNCVIEWER_NO_F" != "X" ]; then
elif [ "X$SS_VNCVIEWER_NO_F" != "X" ]; then
echo "$ssh -x -p $ssh_port -t $C -L ${use}:${vnc_host}:${port} $ssh_args $ssh_host \"$info\""
echo ""
$ssh -x -p $ssh_port -t $C -L ${use}:${vnc_host}:${port} $ssh_args $ssh_host "$ssh_cmd"
@ -401,17 +419,17 @@ fi
pcode() {
tf=$1
SSL_VNC_PROXY=$proxy; export SSL_VNC_PROXY
SSL_VNC_DEST="$host:$port"; export SSL_VNC_DEST
SSVNC_PROXY=$proxy; export SSVNC_PROXY
SSVNC_DEST="$host:$port"; export SSVNC_DEST
cod='#!/usr/bin/perl
# A hack to glue stunnel to a Web proxy for client connections.
use IO::Socket::INET;
my ($first, $second) = split(/,/, $ENV{SSL_VNC_PROXY});
my ($first, $second) = split(/,/, $ENV{SSVNC_PROXY});
my ($proxy_host, $proxy_port) = split(/:/, $first);
my $connect = $ENV{SSL_VNC_DEST};
my $connect = $ENV{SSVNC_DEST};
print STDERR "\nperl script for web proxing:\n";
print STDERR "proxy_host: $proxy_host\n";
@ -419,11 +437,11 @@ print STDERR "proxy_port: $proxy_port\n";
print STDERR "proxy_connect: $connect\n";
my $listen_handle = "";
if ($ENV{SSL_VNC_LISTEN} != "") {
if ($ENV{SSVNC_LISTEN} != "") {
my $listen_sock = IO::Socket::INET->new(
Listen => 2,
LocalAddr => "localhost",
LocalPort => $ENV{SSL_VNC_LISTEN},
LocalPort => $ENV{SSVNC_LISTEN},
Proto => "tcp");
if (! $listen_sock) {
die "perl proxy: $!\n";
@ -550,7 +568,7 @@ sub xfer {
ptmp=""
if [ "X$proxy" != "X" ]; then
ptmp="/tmp/ssl_vncviewer${RANDOM}.$$.pl"
ptmp="/tmp/ss_vncviewer${RANDOM}.$$.pl"
mytmp "$ptmp"
pcode "$ptmp"
connect="exec = $ptmp"
@ -575,8 +593,8 @@ if [ "X$direct_connect" != "X" ]; then
fi
echo ""
if [ "X$ptmp" != "X" ]; then
SSL_VNC_LISTEN=$use
export SSL_VNC_LISTEN
SSVNC_LISTEN=$use
export SSVNC_LISTEN
$ptmp &
sleep 2
host="localhost"
@ -589,7 +607,7 @@ if [ "X$direct_connect" != "X" ]; then
fi
##debug = 7
tmp=/tmp/ssl_vncviewer${RANDOM}.$$
tmp=/tmp/ss_vncviewer${RANDOM}.$$
mytmp "$tmp"
cat > "$tmp" <<END

File diff suppressed because it is too large Load Diff

@ -4,7 +4,7 @@
#
# e.g. on Darwin we did:
#
# env LDFLAGS_OS="-L/Volumes/someplace/common/lib/" CPPFLAGS_OS="-I /Volumes/someplace/common/include" ./build.unix
# env LDFLAGS_OS="-L/Volumes/someplace/common/lib" CPPFLAGS_OS="-I /Volumes/someplace/common/include" ./build.unix
#
@ -16,9 +16,33 @@ export PATH
# Check location:
#
thisdir=`dirname "$0"`
if [ ! -d ./bin -o ! -d src/patches ]; then
if [ ! -d ./bin -o ! -d src/patches -o ! -f ./build.unix ]; then
echo ""
echo "You must run this script from: $thisdir"
exit 1
echo ""
echo "Maybe:"
echo ""
echo " cd $thisdir"
echo " ./build.unix"
if [ "X$BUILD_UNIX" != "X" ]; then
sleep 2
exit 1
fi
echo ""
sleep 1
printf "Do you want me to run those for you? y/[n] "
read x
if [ "X$x" = "Xy" ]; then
BUILD_UNIX=1
export BUILD_UNIX
cd "$thisdir" || exit 1
echo "pwd:"
pwd
sleep 1
./build.unix
fi
exit $?
fi
# Try to find osname.arch
@ -112,6 +136,12 @@ elif uname | grep -i bsd > /dev/null; then
CPPFLAGS_OS="$CPPFLAGS_OS -I /usr/local/include -I /usr/pkg/include"
fi
cnt=`ls ./src/patches/*.patch | wc -c`
if [ $cnt -lt 1 ]; then
echo "Could not find any patches in ./src/patches. Is your tarball missing them?"
exit 1
fi
# Do tightvnc viewer:
#
tight_src=`ls -td ./src/vnc_unixsrc* | head -1`
@ -126,18 +156,25 @@ echo "applying tight vnc patches:"
start=`pwd`
cd $tmp;
failed=0
count=0
for patch in ../../patches/tight*
do
if [ ! -f "$patch" ]; then
continue
fi
patch -p0 < $patch
echo PATCHING WITH: "$patch"
ls -l "$patch"
sleep 1
patch -p0 < "$patch"
if [ $? != 0 ]; then
failed=`expr $failed + 1`
else
count=`expr $count + 1`
fi
done
sleep 1
cd "$start"
if [ $failed != 0 ]; then
if [ $failed != 0 -o $count = 0 ]; then
ball=src/zips/vnc_unixsrc_vncviewer.patched.tar
echo "patches failed, trying to use backup tarball:"
ls -l $ball
@ -207,18 +244,25 @@ echo "applying stunnel patches:"
start=`pwd`
cd $tmp;
failed=0
count=0
for patch in ../../patches/stunnel*
do
if [ ! -f "$patch" ]; then
continue
fi
echo PATCHING WITH: "$patch"
ls -l "$patch"
sleep 1
patch -p0 < $patch
if [ $? != 0 ]; then
failed=`expr $failed + 1`
else
count=`expr $count + 1`
fi
done
sleep 1
cd "$start"
if [ $failed != 0 ]; then
if [ $failed != 0 -o $count = 0 ]; then
ball=src/zips/stunnel.patched.tar
echo "patches failed, trying to use backup tarball:"
ls -l $ball

@ -162,10 +162,10 @@
2261967 196 -rwxr-xr-x 1 runge runge 193076 Jul 31 22:59 ./bin/Linux.i686/vncviewer
2261999 80 -rwxr-xr-x 1 runge runge 77148 Jul 31 23:00 ./bin/Linux.i686/stunnel
5538622 4 drwxr-xr-x 2 runge runge 4096 Sep 12 21:24 ./bin/util
5538759 12 -rwxr-xr-x 1 runge runge 12148 Sep 12 21:24 ./bin/util/ssl_vncviewer
5538760 136 -rwxr-xr-x 1 runge runge 132853 Sep 12 21:17 ./bin/util/ssl_tightvncviewer.tcl
5538759 12 -rwxr-xr-x 1 runge runge 12148 Sep 12 21:24 ./bin/util/ss_vncviewer
5538760 136 -rwxr-xr-x 1 runge runge 132853 Sep 12 21:17 ./bin/util/ssvnc.tcl
5538641 4 -rw-r--r-- 1 runge runge 981 Aug 4 09:27 ./bin/util/stunnel-server.conf
2851794 4 -rwxr-xr-x 1 runge runge 3581 Jul 31 23:00 ./bin/ssl_tightvncviewer
2851794 4 -rwxr-xr-x 1 runge runge 3581 Jul 31 23:00 ./bin/ssvnc_cmd
2851592 4 -rwxr-xr-x 1 runge runge 3752 Jul 31 23:01 ./bin/tightvncviewer
2425590 4 drwxr-xr-x 2 runge runge 4096 Jul 31 23:30 ./bin/Linux.alpha
2425595 100 -rwxr-xr-x 1 runge runge 97504 Jul 31 23:30 ./bin/Linux.alpha/stunnel
@ -188,7 +188,7 @@
3064794 4 drwxr-xr-x 2 runge runge 4096 Jul 31 23:47 ./bin/SunOS.sun4u
3064795 108 -rwxr-xr-x 1 runge runge 106260 Jul 31 23:45 ./bin/SunOS.sun4u/vncviewer
3064796 76 -rwxr-xr-x 1 runge runge 71748 Jul 31 23:47 ./bin/SunOS.sun4u/stunnel
2851711 4 -rwxr-xr-x 1 runge runge 1310 Aug 29 16:29 ./bin/ssl_vnc_gui
2851711 4 -rwxr-xr-x 1 runge runge 1310 Aug 29 16:29 ./bin/ssvnc
2851793 4 -rwxr-xr-x 1 runge runge 640 Jul 31 17:22 ./bin/.linkin
3293942 4 drwxr-xr-x 2 runge runge 4096 Aug 1 22:14 ./bin/profiles
3277791 8 -rwxr-xr-x 1 runge runge 4814 Jul 30 17:54 ./build.unix
@ -199,7 +199,7 @@
5063556 16 -rw-r--r-- 1 runge runge 14478 Jul 27 16:32 ./man/man1/vncviewer.1
5063557 24 -rw-r--r-- 1 runge runge 23885 Jul 27 16:33 ./man/man1/stunnel.1
5538624 4 drwxr-xr-x 4 runge runge 4096 Sep 6 16:30 ./Windows
5538633 2312 -rw-r--r-- 1 runge runge 2361922 Sep 12 22:27 ./Windows/ssl_tightvncviewer.exe
5538633 2312 -rw-r--r-- 1 runge runge 2361922 Sep 12 22:27 ./Windows/ssvnc.exe
5538576 4 -rw-r--r-- 1 runge runge 2149 Aug 2 09:42 ./Windows/README.txt
3293943 4 drwxr-xr-x 2 runge runge 4096 Aug 1 22:14 ./Windows/profiles
4621136 4 drwxr-xr-x 5 runge runge 4096 Sep 6 16:30 ./Windows/util

@ -1,35 +1,84 @@
#!/bin/sh
rm -rf ./src/tmp/* || exit 1
vers=1.0.7
vers=1.0.8
cd .. || exit 1
if [ -f enhanced_tightvnc_viewer-$vers.zip ]; then
mv enhanced_tightvnc_viewer-$vers.zip enhanced_tightvnc_viewer-$vers.zip~
###########################################
dest=./t.unix_only
rm -rf $dest
mkdir -p $dest || exit 1
tar cvf - ssvnc/{README,COPYING} ssvnc/bin ssvnc/Unix | (cd $dest; tar xvf -)
rm -f $dest/ssvnc/bin/.linkin
tar=ssvnc_unix_only-${vers}.tar.gz
(cd $dest; tar czvf ../$tar ssvnc)
ls -l $tar
rm -rf $dest
###########################################
dest=./t.unix_minimal
rm -rf $dest
mkdir -p $dest || exit 1
#tar cvf - ssvnc/{README,COPYING} ssvnc/bin/{ss*,util/ss*} ssvnc/Unix | (cd $dest; tar xvf -)
tar cvf - ssvnc/{README,COPYING} ssvnc/bin/{ss*,util/ss*} | (cd $dest; tar xvf -)
tar=ssvnc_unix_minimal-${vers}.tar.gz
(cd $dest; tar czvf ../$tar ssvnc)
ls -l $tar
rm -rf $dest
top='#!/bin/sh
n=11
tmp=`mktemp -d "/tmp/ssvnc.XXXXXX"` || exit 1
if [ "X$tmp" = "X" -o ! -d "$tmp" ]; then exit 1; fi
trap "cd /tmp; rm -rf $tmp" 0 2 15
tail +$n "$0" | (cd $tmp; tar xf -) || exit 1
$tmp/bin/ssvnc "$@"
exit 0
data__() {'
scr=./ssvnc.sh
echo "$top" > $scr
(cd ssvnc; tar cvf - README COPYING bin/{ss*,util/ss*}) >> $scr
chmod 755 $scr
ls -l $scr
if [ "X$1" = "Xquick" ]; then
exit 0
fi
rm -f enhanced_tightvnc_viewer_all-$vers.zip
rm -f enhanced_tightvnc_viewer-$vers.zip
zip -9 -r enhanced_tightvnc_viewer_all-$vers.zip enhanced_tightvnc_viewer
zip -9 -r enhanced_tightvnc_viewer-$vers.zip enhanced_tightvnc_viewer -x '*.zip' '*.tar.gz'
tar cvf - --exclude='*.zip' --exclude='*.tar.gz' enhanced_tightvnc_viewer | gzip -9 > enhanced_tightvnc_viewer-$vers.tar.gz
tar cvf - --exclude='*.zip' --exclude='*.tar.gz' --exclude='*.dll' --exclude='*.exe' --exclude enhanced_tightvnc_viewer/Windows/util enhanced_tightvnc_viewer | gzip -9 > enhanced_tightvnc_viewer_no_windows-$vers.tar.gz
ls -l enhanced_tightvnc_viewer*-$vers.*
###########################################
rm -f ssvnc_all-$vers.zip
rm -f ssvnc-$vers.zip
zip -9 -r ssvnc_all-$vers.zip ssvnc
zip -9 -r ssvnc-$vers.zip ssvnc -x '*.zip' '*.tar.gz'
tar cvf - --exclude='*.zip' --exclude='*.tar.gz' ssvnc | gzip -9 > ssvnc-$vers.tar.gz
tar cvf - --exclude='*.zip' --exclude='*.tar.gz' --exclude='*.dll' --exclude='*.exe' --exclude ssvnc/Windows/util ssvnc | gzip -9 > ssvnc_no_windows-$vers.tar.gz
ls -l ssvnc*-$vers.*
###########################################
dest=./t.windows_only
rm -rf ${dest}
mkdir -p $dest || exit 1
rm -rf enhanced_tightvnc_viewer_windows_only-${vers}*
cp -pR ssvnc $dest
rm -rf $dest/ssvnc/{src,bin,man}
rm -rf $dest/ssvnc/MacOSX
rm -rf $dest/ssvnc/Unix
rm -f $dest/ssvnc/build.unix
rm -f $dest/ssvnc/filelist.txt
cp -p ssvnc/bin/util/ssvnc.tcl $dest/ssvnc/Windows/util
cp -pR enhanced_tightvnc_viewer enhanced_tightvnc_viewer_windows_only-$vers
rm -rf enhanced_tightvnc_viewer_windows_only-$vers/{src,bin,man}/*
rm -rf enhanced_tightvnc_viewer_windows_only-$vers/bin/.linkin
rm -rf enhanced_tightvnc_viewer_windows_only-$vers/MacOSX
rm -rf enhanced_tightvnc_viewer_windows_only-$vers/Unix
cp -p enhanced_tightvnc_viewer/bin/util/ssl_tightvncviewer.tcl enhanced_tightvnc_viewer_windows_only-$vers/Windows/util
zip=ssvnc_windows_only-${vers}.zip
rm -f $zip
(cd $dest; zip -9 -r ../$zip ssvnc)
rm -f enhanced_tightvnc_viewer_windows_only-$vers.zip
zip -9 -r enhanced_tightvnc_viewer_windows_only-$vers.zip enhanced_tightvnc_viewer_windows_only-$vers
ls -l $zip
rm -rf $dest
ls -l enhanced_tightvnc_viewer_windows_only-$vers.zip
rm -rf enhanced_tightvnc_viewer_windows_only-${vers}

@ -8,7 +8,7 @@ www.tightvnc.com windows
standalone viewer binary: 209149 Jul 25 15:10 tightvnc-1.3dev7_x86_viewer.zip
To save space they may not be included in the package you downloaded.
The should be included in the "enhanced_tightvnc_viewer_all-<version>.zip" file.
The should be included in the "ssvnc_all-<version>.zip" file.
Go to the websites indicated above or contact me if you cannot find them.
The stunnel.patched.tar vnc_unixsrc_vncviewer.patched.tar

Loading…
Cancel
Save