Commit 61383c50 authored by runge's avatar runge

classes/ssl: java viewer now handles auth-basic proxy logins.

misc/enhanced_tightvnc_viewer: update ssvnc.
parent d11b2abd
......@@ -46,8 +46,8 @@
# -showcert Only fetch the certificate using the 'openssl s_client'
# command (openssl(1) must in installed).
#
# See http://www.karlrunge.com/x11vnc/#faq-ssl-ca for details on SSL
# certificates with VNC.
# See http://www.karlrunge.com/x11vnc/faq.html#faq-ssl-ca for details on
# SSL certificates with VNC.
#
# A few other args (not related to SSL and certs):
#
......@@ -115,6 +115,15 @@
#
VNCIPCMD=${VNCVIEWERCMD:-vncip}
VNCVIEWERCMD=${VNCVIEWERCMD:-vncviewer}
if [ "X$SSVNC_TURBOVNC" != "X" ]; then
if echo "$VNCVIEWERCMD" | grep '\.turbovnc' > /dev/null; then
:
else
if type "$VNCVIEWERCMD.turbovnc" > /dev/null 2>/dev/null; then
VNCVIEWERCMD="$VNCVIEWERCMD.turbovnc"
fi
fi
fi
#
# Same for STUNNEL, e.g. set it to /path/to/stunnel or stunnel4, etc.
#
......@@ -268,6 +277,12 @@ do
;;
"-onelisten") SSVNC_LISTEN_ONCE=1; export SSVNC_LISTEN_ONCE
;;
"-sendclipboard") VNCVIEWER_SEND_CLIPBOARD=1; export VNCVIEWER_SEND_CLIPBOARD
;;
"-sendalways") VNCVIEWER_SEND_ALWAYS=1; export VNCVIEWER_SEND_ALWAYS
;;
"-recvtext") shift; VNCVIEWER_RECV_TEXT="$1"; export VNCVIEWER_RECV_TEXT
;;
"-escape") shift; VNCVIEWER_ESCAPE="$1"; export VNCVIEWER_ESCAPE
;;
"-ssvnc_encodings") shift; VNCVIEWER_ENCODINGS="$1"; export VNCVIEWER_ENCODINGS
......@@ -751,6 +766,19 @@ if (exists $ENV{SSVNC_PREDIGESTED_HANDSHAKE}) {
$handshake_file = $ENV{SSVNC_PREDIGESTED_HANDSHAKE};
}
my $have_gettimeofday = 0;
eval "use Time::HiRes";
if ($@ eq "") {
$have_gettimeofday = 1;
}
sub gettime {
my $t = "0.0";
if ($have_gettimeofday) {
$t = Time::HiRes::gettimeofday();
}
return $t;
}
sub append_handshake {
my $str = shift;
if ($handshake_file) {
......@@ -1324,12 +1352,19 @@ sub vencrypt_dialog {
} elsif ($minor == 7) {
$viewer_rfb = "RFB 003.007\n";
}
syswrite($sock, $viewer_rfb, 12);
append_handshake("viewer=$viewer_rfb");
my $nsec;
my $t1 = gettime();
my $t0 = gettime();
syswrite($sock, $viewer_rfb, 12);
sysread($sock, $nsec, 1);
$t1 = gettime();
$t1 = sprintf("%.6f", $t1 - $t0);
append_handshake("viewer=$viewer_rfb");
append_handshake("latency=$t1\n");
vdie if $nsec eq "";
$nsec = unpack("C", $nsec);
......
2009-06-18 Karl Runge <runge@karlrunge.com>
* classes/ssl: java viewer now handles auth-basic proxy logins.
* misc/enhanced_tightvnc_viewer: update ssvnc.
2009-06-14 Karl Runge <runge@karlrunge.com>
* x11vnc: Add X11VNC_REFLECT_PASSWORD env. var. for -reflect mode.
Message to user about compiz problems suggesting -noxdamage.
......
This diff is collapsed.
Enhanced TightVNC Viewer (SSVNC: SSL/SSH VNC viewer)
Copyright (c) 2006-2008 Karl J. Runge <runge@karlrunge.com>
Copyright (c) 2006-2009 Karl J. Runge <runge@karlrunge.com>
All rights reserved.
These bundles provide 1) An enhanced TightVNC Viewer on Unix, 2) Binaries
......@@ -108,7 +108,8 @@ The enhanced TightVNC viewer features are:
"Terminal Services" mode (uses x11vnc on the remote side).
(the following features only apply to the bundled Unix tightvnc viewer)
(the following features only apply to the bundled Unix tightvnc viewer
including MacOS X)
- rfbNewFBSize VNC support (screen resizing)
......@@ -119,10 +120,22 @@ The enhanced TightVNC viewer features are:
- Support for the ZYWRLE encoding, a wavelet based extension to
ZRLE to improve compression of motion video and photo regions.
- TurboVNC support (VirtualGL's modified TightVNC encoding;
requires TurboJPEG library)
- Pipelined Updates of the framebuffer as in TurboVNC (asks for
the next update before the current one has finished downloading;
this gives some speedup on high latency connections.)
- Cursor alphablending with x11vnc at 32bpp (-alpha option)
- Option "-unixpw ..." for use with "x11vnc -unixpw" login dialogs.
- VeNCrypt SSL/TLS VNC encryption support (used by VeNCrypt,
QEMU, ggi, libvirt/virt-manager/xen, vinagre/gvncviewer/gtk-vnc)
- ANONTLS SSL/TLS VNC encryption support (used by vino)
- Support for UltraVNC extensions: Single Window, Disable
Server-side Input, 1/n Server side scaling, Text Chat (shell
terminal UI). Both UltraVNC and x11vnc servers support these
......@@ -141,6 +154,11 @@ The enhanced TightVNC viewer features are:
- Support for UltraVNC DSM Encryption Plugin mode. (ARC4 and
AESV2, and MSRC4)
- Support for UltraVNC MS-Logon authentication (NOTE: the UltraVNC
MS-Logon key exchange implementation is very weak; an eavesdropper
on the network can recover your Windows password easily; you
need to use an additional encrypted tunnel with MS-Logon.)
- Support for symmetric encryption (including blowfish and 3des
ciphers) to Non-UltraVNC Servers. Any server using the same
encryption method will work, e.g.: x11vnc -enc blowfish:./my.key
......@@ -174,12 +192,18 @@ The enhanced TightVNC viewer features are:
- Scrollbar width setting: -sbwidth n, the default is very thin,
2 pixels, for less distracting -ycrop usage.
- Selection text sending and receiving can be fine-tuned with the
-sendclipboard, -sendalways, and -recvtext options.
- TightVNC compression and quality levels are automatically set
based on observed network latency (n.b. not bandwidth.)
- Improvements to the Popup menu, all of these can now be changed
dynamically via the menu: ViewOnly, Toggle Bell, CursorShape
updates, X11 Cursor, Cursor Alphablending, Toggle Tight/ZRLE,
Toggle JPEG, FullColor/16bpp/8bpp (256/64/8 colors), Greyscale
for low color modes, Scaling the Viewer resolution, Escape Keys,
and others, including UltraVNC extensions.
Pipeline Updates, and others, including UltraVNC extensions.
- Maintains its own BackingStore if the X server does not
......@@ -220,7 +244,7 @@ Unix and Mac OS X:
Unpack the archive:
% gzip -dc ssvnc-1.0.21.tar.gz | tar xvf -
% gzip -dc ssvnc-1.0.22.tar.gz | tar xvf -
Run the GUI:
......@@ -228,7 +252,7 @@ Unix and Mac OS X:
% ./ssvnc/MacOSX/ssvnc (for Mac OS X)
The smaller file "ssvnc_no_windows-1.0.21.tar.gz"
The smaller file "ssvnc_no_windows-1.0.22.tar.gz"
could have been used as well.
On MacOSX you could also click on the SSVNC app icon in the Finder.
......@@ -274,8 +298,8 @@ Unix/MacOSX Install:
For the conventional source tarball it will compile and install, e.g.:
gzip -dc ssvnc-1.0.21.src.tar.gz | tar xvf -
cd ssvnc-1.0.21
gzip -dc ssvnc-1.0.22.src.tar.gz | tar xvf -
cd ssvnc-1.0.22
make config
make all
make PREFIX=/my/install/dir install
......@@ -287,7 +311,7 @@ Windows:
Unzip, using WinZip or a similar utility, the zip file:
ssvnc-1.0.21.zip
ssvnc-1.0.22.zip
Run the GUI, e.g.:
......@@ -299,7 +323,7 @@ Windows:
select Open, and then OK to launch it.
The smaller file "ssvnc_windows_only-1.0.21.zip"
The smaller file "ssvnc_windows_only-1.0.22.zip"
could have been used as well.
You can make a Windows shortcut to this program if you want to.
......@@ -439,6 +463,30 @@ Most Mac OS X and Unix OS come with the main components installed.
See the README.src for a more detailed description of dependencies.
TurboVNC Support:
----------------
TurboVNC is supported in an experimental way. To it build via the
build.unix script described in the next section, do something like:
env TURBOVNC='-L/DIR -Xlinker --rpath=/DIR -lturbojpeg' ./build.unix
where you replace /DIR with the directory where the libturbojpeg.so
(http://sourceforge.net/project/showfiles.php?group_id=117509&package_id=166100)
is installed.
You may not need to set rpath if libturbojpeg.so is installed in a
standard location or you use LD_LIBRARY_PATH to point to it.
See the turbovnc/README in the vnc_unixsrc/vncviewer directory for
more info. You can find it in the ssvnc source tarball and also
in:
src/zips/vnc_unixsrc_vncviewer.patched.tar
More TurboVNC features will be enabled in the future.
If you need to Build:
--------------------
......@@ -685,7 +733,7 @@ For more help on other options and usage patterns run these:
See also:
http://www.karlrunge.com/x11vnc
http://www.karlrunge.com/x11vnc/#faq
http://www.karlrunge.com/x11vnc/faq.html
x11vnc -h | more
http://www.stunnel.org
......
......@@ -37,7 +37,7 @@ and also:
You can use x11vnc to create certificates if you like:
http://www.karlrunge.com/x11vnc/#faq-ssl-ca
http://www.karlrunge.com/x11vnc/faq.html#faq-ssl-ca
Misc:
......
......@@ -249,6 +249,16 @@ if [ $use_ours = 1 ]; then
SSVNC_USE_OURS=1; export SSVNC_USE_OURS
if [ "X$SSVNC_TURBOVNC" != "X" ]; then
if echo "$VNCVIEWERCMD" | grep '\.turbovnc' > /dev/null; then
:
else
if type "$VNCVIEWERCMD.turbovnc" > /dev/null 2>/dev/null; then
VNCVIEWERCMD="$VNCVIEWERCMD.turbovnc"
fi
fi
fi
if [ "X$base" = "Xtightvncviewer" ]; then
$VNCVIEWERCMD -encodings 'copyrect tight zrle zlib hextile' "$@"
else
......
......@@ -46,8 +46,8 @@
# -showcert Only fetch the certificate using the 'openssl s_client'
# command (openssl(1) must in installed).
#
# See http://www.karlrunge.com/x11vnc/#faq-ssl-ca for details on SSL
# certificates with VNC.
# See http://www.karlrunge.com/x11vnc/faq.html#faq-ssl-ca for details on
# SSL certificates with VNC.
#
# A few other args (not related to SSL and certs):
#
......@@ -115,6 +115,15 @@
#
VNCIPCMD=${VNCVIEWERCMD:-vncip}
VNCVIEWERCMD=${VNCVIEWERCMD:-vncviewer}
if [ "X$SSVNC_TURBOVNC" != "X" ]; then
if echo "$VNCVIEWERCMD" | grep '\.turbovnc' > /dev/null; then
:
else
if type "$VNCVIEWERCMD.turbovnc" > /dev/null 2>/dev/null; then
VNCVIEWERCMD="$VNCVIEWERCMD.turbovnc"
fi
fi
fi
#
# Same for STUNNEL, e.g. set it to /path/to/stunnel or stunnel4, etc.
#
......@@ -268,6 +277,12 @@ do
;;
"-onelisten") SSVNC_LISTEN_ONCE=1; export SSVNC_LISTEN_ONCE
;;
"-sendclipboard") VNCVIEWER_SEND_CLIPBOARD=1; export VNCVIEWER_SEND_CLIPBOARD
;;
"-sendalways") VNCVIEWER_SEND_ALWAYS=1; export VNCVIEWER_SEND_ALWAYS
;;
"-recvtext") shift; VNCVIEWER_RECV_TEXT="$1"; export VNCVIEWER_RECV_TEXT
;;
"-escape") shift; VNCVIEWER_ESCAPE="$1"; export VNCVIEWER_ESCAPE
;;
"-ssvnc_encodings") shift; VNCVIEWER_ENCODINGS="$1"; export VNCVIEWER_ENCODINGS
......@@ -751,6 +766,19 @@ if (exists $ENV{SSVNC_PREDIGESTED_HANDSHAKE}) {
$handshake_file = $ENV{SSVNC_PREDIGESTED_HANDSHAKE};
}
my $have_gettimeofday = 0;
eval "use Time::HiRes";
if ($@ eq "") {
$have_gettimeofday = 1;
}
sub gettime {
my $t = "0.0";
if ($have_gettimeofday) {
$t = Time::HiRes::gettimeofday();
}
return $t;
}
sub append_handshake {
my $str = shift;
if ($handshake_file) {
......@@ -1324,12 +1352,19 @@ sub vencrypt_dialog {
} elsif ($minor == 7) {
$viewer_rfb = "RFB 003.007\n";
}
syswrite($sock, $viewer_rfb, 12);
append_handshake("viewer=$viewer_rfb");
my $nsec;
my $t1 = gettime();
my $t0 = gettime();
syswrite($sock, $viewer_rfb, 12);
sysread($sock, $nsec, 1);
$t1 = gettime();
$t1 = sprintf("%.6f", $t1 - $t0);
append_handshake("viewer=$viewer_rfb");
append_handshake("latency=$t1\n");
vdie if $nsec eq "";
$nsec = unpack("C", $nsec);
......
......@@ -137,8 +137,11 @@ do
if [ "X$SSVNC_BUILD_STATIC" = "X" ]; then
break
fi
for dir in /usr/lib /lib /usr/local/lib /usr/pkg/lib /usr/sfw/lib /usr/openwin/lib
for dir in $SSVNC_STATIC_DIRS /usr/lib /lib /usr/local/lib /usr/pkg/lib /usr/sfw/lib /usr/openwin/lib
do
if [ "X$dir" = "X" ]; then
continue
fi
if [ "$name" = "Linux.x86_64" -o "$name" = "Linux.ppc64" ] ; then
dir64=`echo "$dir" | sed -e 's,lib,lib64,'`
if [ "X$SSVNC_BUILD_NO_LINUX64" != "X" ]; then
......@@ -149,7 +152,9 @@ do
fi
try="$dir/$liba"
if [ -f $try ]; then
cp -p "$try" $libs
echo cp -p "$try" $libs
cp -p "$try" $libs
break
fi
done
done
......@@ -279,7 +284,11 @@ if [ "X$SSVNC_BUILD_SKIP_VIEWER" = "X" ]; then
make depend
echo $PATH
make all
if [ "X$TURBOVNC" = "X" ]; then
make all
else
make CCOPTIONS="-DTURBOVNC $CPPFLAGS_OS" EXTRA_LIBRARIES="$TURBOVNC" all
fi
ls -l vncviewer/vncviewer
cd "$start"
src=$tmp/vnc_unixsrc/vncviewer/vncviewer
......@@ -298,6 +307,9 @@ if [ "X$SSVNC_BUILD_SKIP_VIEWER" = "X" ]; then
if [ `uname` = "Darwin" ]; then
suff=".x11"
fi
if [ "X$TURBOVNC" != "X" ]; then
suff="$suff.turbovnc"
fi
echo cp -p $src $dest/vncviewer$suff
sleep 1
cp -p $src $dest/vncviewer$suff || exit 1
......
......@@ -5,13 +5,13 @@
.\" Copyright (C) 1998 Marcus.Brinkmann@ruhr-uni-bochum.de
.\" Copyright (C) 2000,2001 Red Hat, Inc.
.\" Copyright (C) 2001-2003 Constantin Kaplinsky <const@ce.cctpu.edu.ru>
.\" Copyright (C) 2006-2008 Karl J. Runge <runge@karlrunge.com>
.\" Copyright (C) 2006-2009 Karl J. Runge <runge@karlrunge.com>
.\"
.\" You may distribute under the terms of the GNU General Public
.\" License as specified in the file LICENCE.TXT that comes with the
.\" TightVNC distribution.
.\"
.TH ssvncviewer 1 "December 2008" "" "SSVNC"
.TH ssvncviewer 1 "June 2009" "" "SSVNC"
.SH NAME
ssvncviewer \- an X viewer client for VNC
.SH SYNOPSIS
......@@ -300,6 +300,24 @@ Disable bell.
Prefer raw encoding for localhost, default is
no, i.e. assumes you have a SSH tunnel instead.
.TP
\fB\-sendclipboard\fR
Send the X CLIPBOARD selection (i.e. Ctrl+C,
Ctrl+V) instead of the X PRIMARY selection (mouse
select and middle button paste.)
.TP
\fB\-sendalways\fR
Whenever the mouse enters the VNC viewer main
window, send the selection to the VNC server even if
it has not changed. This is like the Xt resource
translation SelectionToVNC(always)
.TP
\fB\-recvtext\fR
str When cut text is received from the VNC server,
ssvncviewer will set both the X PRIMARY and the
X CLIPBOARD local selections. To control which
is set, specify 'str' as 'primary', 'clipboard',
or 'both' (the default.)
.TP
\fB\-graball\fR
Grab the entire X server when in fullscreen mode,
needed by some old window managers like fvwm2.
......@@ -396,6 +414,18 @@ THAT supply -ultradsm to tell THIS viewer to modify the RFB
data sent so as to work with the UltraVNC Server. For some
reason, each RFB msg type must be sent twice under DSM.
.TP
\fB\-mslogon\fR \fIuser\fR
Use Windows MS Logon to an UltraVNC server. Supply the
username or "1" to be prompted. The default is to
autodetect the UltraVNC MS Logon server and prompt for
the username and password.
IMPORTANT NOTE: The UltraVNC MS-Logon Diffie-Hellman
exchange is very weak and can be brute forced to recover
your username and password in a few hours or seconds of CPU
time. To be safe, be sure to use an additional encrypted
tunnel (e.g. SSL or SSH) for the entire VNC session.
.TP
\fB\-chatonly\fR
Try to be a client that only does UltraVNC text chat. This
mode is used by x11vnc to present a chat window on the physical
......@@ -412,6 +442,12 @@ then exit. You can save them to a file and customize them (e.g. the
keybindings and Popup menu) Then point to the file via
XENVIRONMENT or XAPPLRESDIR.
.TP
\fB\-pipeline\fR
Like TurboVNC, request the next framebuffer update as soon
as possible instead of waiting until the end of the current
framebuffer update coming in. Helps 'pipeline' the updates.
This is currently the default, use \fB-nopipeline\fR to disable.
.TP
\fB\-escape \fR\fIstr\fR
This sets the 'Escape Keys' modifier sequence and enables
escape keys mode. When the modifier keys escape sequence
......@@ -487,8 +523,10 @@ Meta_R Super_L Super_R Hyper_L Hyper_R or Mode_switch.
Quality Level ~ -quality (both Tight and ZYWRLE)
Compress Level ~ -compresslevel
Disable JPEG: ~ -nojpeg (Tight)
Full Color ~ as many colors as local screen allows.
Grey scale (16 & 8-bpp) ~ -grey, for low colors 16/8bpp modes.
Pipeline Updates ~ -pipeline
Full Color as many colors as local screen allows.
Grey scale (16 & 8-bpp) ~ -grey, for low colors 16/8bpp modes only.
16 bit color (BGR565) ~ -16bpp / -bgr565
8 bit color (BGR233) ~ -bgr233
256 colors ~ -bgr233 default # of colors.
......@@ -503,16 +541,19 @@ Meta_R Super_L Super_R Hyper_L Hyper_R or Mode_switch.
UltraVNC Extensions:
Set 1/n Server Scale Ultravnc ext. Scale desktop by 1/n.
Text Chat Ultravnc ext. Do Text Chat.
File Transfer Ultravnc ext. File xfer via Java helper.
Single Window Ultravnc ext. Grab a single window.
(click on the window you want).
Disable Remote Input Ultravnc ext. Try to prevent input and
viewing of monitor at physical display.
Set 1/n Server Scale Ultravnc ext. Scale desktop by 1/n.
Text Chat Ultravnc ext. Do Text Chat.
File Transfer Ultravnc ext. File xfer via Java helper.
Single Window Ultravnc ext. Grab and view a single window.
(select then click on the window you want).
Disable Remote Input Ultravnc ext. Try to prevent input and
viewing of monitor at physical display.
Note: the Ultravnc extensions only apply to servers that support
them. x11vnc/libvncserver supports some of them.
Note: the Ultravnc extensions only apply to servers that
support them. x11vnc/libvncserver supports some of them.
Send Clipboard not Primary ~ -sendclipboard
Send Selection Every time ~ -sendalways
.SH ENCODINGS
The server supplies information in whatever format is desired by the
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment