diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/Windows/README.txt b/x11vnc/misc/enhanced_tightvnc_viewer/Windows/README.txt index f77e9c0..d35c410 100644 --- a/x11vnc/misc/enhanced_tightvnc_viewer/Windows/README.txt +++ b/x11vnc/misc/enhanced_tightvnc_viewer/Windows/README.txt @@ -1,7 +1,7 @@ This is a Windows utility to automatically start up STUNNEL to redirect SSL VNC connections to a remote host. Then TightVNC Viewer (included) -is launched to used this SSL tunnel. +is launched to use this SSL tunnel. An example server would be "x11vnc -ssl", or any VNC server with a 2nd STUNNEL program running on the server side. diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer b/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer index b241c5b..458ce78 100755 --- a/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer +++ b/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer @@ -220,6 +220,8 @@ if echo "$orig" | grep '^vnc://' > /dev/null; then use_ssh="" use_sshssl="" direct_connect=1 +elif echo "$orig" | grep '^vncs://' > /dev/null; then + orig=`echo "$orig" | sed -e 's,vncs://,,'` fi # play around with host:display port: diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl b/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl index d9aebc4..0e7f3bb 100755 --- a/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl +++ b/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl @@ -496,6 +496,62 @@ set msg { jiggle_text .oh.f.t } +proc help_fetch_cert {} { + toplev .fh + + scroll_text_dismiss .fh.f 85 37 + + center_win .fh + wm resizable .fh 1 0 + + wm title .fh "Fetch Certificates Help" + + set msg { + The above SSL Certificate has been retrieved from the VNC Server via the + "Fetch Cert" action. + + It has merely been downloaded via the SSL Protocol: IT HAS NOT BEEN VERIFIED + IN ANY WAY. + + So, in principle, it could be a fake certificate being inserted by a bad + person attempting to perform a Man-In-The-Middle attack on your SSL connection. + + If, however, by some external means you can verify the authenticity of + this SSL Certificate you can use it for your VNC SSL connection to the + VNC server you wish to connect to. It will provide an authenticated and + encrypted connection. + + You can verify the SSL Certificate by comparing the MD5 or SHA1 hash + value via a method/channel you know is safe (i.e. not also under control + of a Man-In-The-Middle attacker). You could also check the text between + the -----BEGIN CERTIFICATE----- and -----END CERTIFICATE----- tags, etc. + + Once you are sure it is correct, you can press the Save button to save the + certificate to a file on the local machine for use when you connect via + VNC tunneled through SSL. If you save it, then that file will be set as + the Certificate to verify the VNC server against. You can see this in + the dialog started via the "Certs..." button on the main panel. + + NOTE: If you want to make PERMANENT the association of the saved SSL + certificate file with the VNC server host, you MUST save the setting as + a profile for loading later. To Save a Profile, click on Options -> Save + Profile ..., and choose a name for the profile and then click on Save. + + To reload the profile at a later time, click on the "Load" button on + the main panel and then select the name and click "Open". If you want + to be sure the certificate is still associated with the loaded in host, + click on "Certs..." button and make sure the "ServerCert" points to the + desired SSL filename. + + See the Certs... Help for more information. A sophisticated method + can be set up using a Certificate Authority key to verify never before + seen certificates (i.e. like your web browser does). +} + + .fh.f.t insert end $msg + jiggle_text .fh.f.t +} + proc win_nokill_msg {} { global help_font is_windows system_button_face toplev .w @@ -2006,7 +2062,7 @@ proc fetch_cert {} { .f4.getcert configure -state normal mesg "Fetched $hpnew Cert" - set n 50 + set n 47 set ok 1 if {$cert_text == ""} { set cert_text "An Error occurred in fetching SSL Certificate from $hp" @@ -2059,7 +2115,8 @@ proc fetch_cert {} { if {$ok} { button .fetch.save -text Save -command "destroy .fetch; save_cert $hpnew" - pack .fetch.save -side bottom -fill x + button .fetch.help -text Help -command "help_fetch_cert" + pack .fetch.help .fetch.save -side bottom -fill x } center_win .fetch @@ -4040,12 +4097,15 @@ proc save_cert {hp} { global scroll_text_focus set scroll_text_focus 0 global uname - scroll_text .scrt.f 90 14 + scroll_text .scrt.f 90 17 set scroll_text_focus 1 set msg { This dialog lets you import a SSL Certificate retrieved from a VNC server. + Be sure to have verified its authenticity via an external means (checking + the MD5 hash value, etc) + Set the "Save to File" name to the file where the imported certificate will be saved. @@ -4054,7 +4114,7 @@ proc save_cert {hp} { After you have imported the Certificate it will be automatically selected as the "ServerCert" for this host: %HOST - To make the ServerCert setting to the imported cert file permanent, + To make the ServerCert setting to the imported cert file PERMANENT, select Options -> Save Profile to save it in a profile. } diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/_getpatches b/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/_getpatches index 8fa3645..38e66c9 100755 --- a/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/_getpatches +++ b/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/_getpatches @@ -1,3 +1,5 @@ #!/bin/sh cp -p /dist/src/apps/VNC/tight_vnc_1.3dev5/tight-vncviewer*patch . +cp -p /dist/src/apps/VNC/tight_vnc_1.3dev5/vnc_unixsrc_vncviewer.patched.tar ../zips/ + diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-full.patch b/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-full.patch index 714d624..7f6464d 100644 --- a/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-full.patch +++ b/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/tight-vncviewer-full.patch @@ -1445,7 +1445,7 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/cursor.c vnc_unixsrc/vncviewe - diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/desktop.c vnc_unixsrc/vncviewer/desktop.c --- vnc_unixsrc.orig/vncviewer/desktop.c 2004-05-28 13:29:29.000000000 -0400 -+++ vnc_unixsrc/vncviewer/desktop.c 2007-02-18 17:07:21.000000000 -0500 ++++ vnc_unixsrc/vncviewer/desktop.c 2007-02-19 15:27:49.000000000 -0500 @@ -28,21 +28,28 @@ #include #endif @@ -1986,7 +1986,7 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/desktop.c vnc_unixsrc/vncview if (*num_params != 0) { if (strncasecmp(params[0],"key",3) == 0) { if (*num_params != 2) { -@@ -332,23 +614,99 @@ +@@ -332,23 +614,112 @@ static Cursor CreateDotCursor() { @@ -2020,11 +2020,22 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/desktop.c vnc_unixsrc/vncview + cursor = XCreatePixmapCursor(dpy, src, msk, &fg, &bg, 1, 1); + XFreePixmap(dpy, src); + XFreePixmap(dpy, msk); - -- return cursor; ++ + return cursor; +} + ++void maybe_sync(int width, int height) { ++ static int singles = 0; ++ if (width > 1 || height > 1) { ++ XSync(dpy, False); ++ singles = 0; ++ } else { ++ if (++singles >= 32) { ++ singles = 0; ++ XSync(dpy, False); ++ } ++ } ++} +/* + * FillImage. + */ @@ -2073,8 +2084,10 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/desktop.c vnc_unixsrc/vncview + scr += Bpl; + } + put_image(x, y, x, y, width, height); ++ maybe_sync(width, height); +} -+ + +- return cursor; +void copy_rect(int x, int y, int width, int height, int src_x, int src_y) { + char *src, *dst; + int i; @@ -2102,7 +2115,7 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/desktop.c vnc_unixsrc/vncview } -@@ -359,38 +717,37 @@ +@@ -359,38 +730,35 @@ void CopyDataToScreen(char *buf, int x, int y, int width, int height) { @@ -2164,13 +2177,11 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/desktop.c vnc_unixsrc/vncview -#endif - XPutImage(dpy, desktopWin, gc, image, x, y, x, y, width, height); + put_image(x, y, x, y, width, height); -+ if (width > 1 && height > 1) { -+ XSync(dpy, False); -+ } ++ maybe_sync(width, height); } -@@ -401,62 +758,175 @@ +@@ -401,62 +769,175 @@ static void CopyBGR233ToScreen(CARD8 *buf, int x, int y, int width, int height) { @@ -5191,6 +5202,21 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/shm.c vnc_unixsrc/vncviewer/s - return image; + return image; } +diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/smake vnc_unixsrc/vncviewer/smake +--- vnc_unixsrc.orig/vncviewer/smake 1969-12-31 19:00:00.000000000 -0500 ++++ vnc_unixsrc/vncviewer/smake 2007-02-19 12:28:05.000000000 -0500 +@@ -0,0 +1,11 @@ ++#!/bin/sh ++ ++PATH=`pwd`/../..:/usr/sfw/bin:/usr/ccs/bin:$PATH ++export PATH ++if [ "X$1" != "X" ]; then ++ "$@" ++else ++ make ++ strip vncviewer ++ ls -l vncviewer ++fi diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/sockets.c vnc_unixsrc/vncviewer/sockets.c --- vnc_unixsrc.orig/vncviewer/sockets.c 2001-01-14 22:54:18.000000000 -0500 +++ vnc_unixsrc/vncviewer/sockets.c 2007-02-18 20:31:30.000000000 -0500 @@ -5289,507 +5315,6 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/tight.c vnc_unixsrc/vncviewer return True; } -diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/vncviewer._man vnc_unixsrc/vncviewer/vncviewer._man ---- vnc_unixsrc.orig/vncviewer/vncviewer._man 1969-12-31 19:00:00.000000000 -0500 -+++ vnc_unixsrc/vncviewer/vncviewer._man 2007-02-18 18:25:14.000000000 -0500 -@@ -0,0 +1,497 @@ -+'\" t -+.\" ** The above line should force tbl to be a preprocessor ** -+.\" Man page for X vncviewer -+.\" -+.\" Copyright (C) 1998 Marcus.Brinkmann@ruhr-uni-bochum.de -+.\" Copyright (C) 2000,2001 Red Hat, Inc. -+.\" Copyright (C) 2001-2003 Constantin Kaplinsky -+.\" -+.\" 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 vncviewer 1 "January 2003" "" "TightVNC" -+.SH NAME -+vncviewer \- an X viewer client for VNC -+.SH SYNOPSIS -+.B vncviewer -+.RI [\| options \|] -+.RI [\| host \|][\| :display \|] -+.br -+.B vncviewer -+.RI [\| options \|] -+.RI [\| host \|][\| ::port \|] -+.br -+.B vncviewer -+.RI [\| options \|] -+.IR \-listen -+.RI [\| display \|] -+.br -+.B vncviewer -+.IR \-help -+.br -+.SH DESCRIPTION -+.B vncviewer -+is an Xt\-based client application for the VNC (Virtual Network -+Computing) system. It can connect to any VNC\-compatible server such -+as \fBXvnc\fR or WinVNC, allowing you to control desktop environment -+of a different machine. -+ -+You can use F8 to display a pop\-up utility menu. Press F8 twice to -+pass single F8 to the remote side. -+.SH OPTIONS -+.TP -+\fB\-help\fR -+Prints a short usage notice to stderr. -+.TP -+\fB\-listen\fR -+Make the viewer listen on port 5500+\fIdisplay\fR for reverse -+connections from a server. WinVNC supports reverse connections using -+the "Add New Client" menu option, or the \-connect command line -+option. \fBXvnc\fR requires the use of the helper program -+\fBvncconnect\fR. -+.TP -+\fB\-via\fR \fIgateway\fR -+Automatically create encrypted TCP tunnel to the \fIgateway\fR machine -+before connection, connect to the \fIhost\fR through that tunnel -+(TightVNC\-specific). By default, this option invokes SSH local port -+forwarding, assuming that SSH client binary can be accessed as -+/usr/bin/ssh. Note that when using the \fB\-via\fR option, the host -+machine name should be specified as known to the gateway machine, e.g. -+"localhost" denotes the \fIgateway\fR, not the machine where vncviewer -+was launched. See the ENVIRONMENT section below for the information on -+configuring the \fB\-via\fR option. -+.TP -+\fB\-shared\fR -+When connecting, specify that a shared connection is requested. In -+TightVNC, this is the default mode, allowing you to share the desktop -+with other clients already using it. -+.TP -+\fB\-noshared\fR -+When connecting, specify that the session may not be shared. This -+would either disconnect other connected clients or refuse your -+connection, depending on the server configuration. -+.TP -+\fB\-viewonly\fR -+Disable transfer of mouse and keyboard events from the client to the -+server. -+.TP -+\fB\-fullscreen\fR -+Start in full\-screen mode. Please be aware that operating in -+full\-screen mode may confuse X window managers. Typically, such -+conflicts cause incorrect handling of input focus or make the viewer -+window disappear mysteriously. See the grabKeyboard setting in the -+RESOURCES section below for a method to solve input focus problem. -+.TP -+\fB\-noraiseonbeep\fR -+By default, the viewer shows and raises its window on remote beep -+(bell) event. This option disables such behaviour -+(TightVNC\-specific). -+.TP -+\fB\-user\fR \fIusername\fR -+User name for Unix login authentication. Default is to use current -+Unix user name. If this option was given, the viewer will prefer Unix -+login authentication over the standard VNC authentication. -+.TP -+\fB\-passwd\fR \fIpasswd\-file\fR -+File from which to get the password (as generated by the -+\fBvncpasswd\fR(1) program). This option affects only the standard VNC -+authentication. -+.TP -+\fB\-encodings\fR \fIencoding\-list\fR -+TightVNC supports several different compression methods to encode -+screen updates; this option specifies a set of them to use in order of -+preference. Encodings are specified separated with spaces, and must -+thus be enclosed in quotes if more than one is specified. Available -+encodings, in default order for a remote connection, are "copyrect -+tight hextile zlib corre rre raw". For a local connection (to the same -+machine), the default order to try is "raw copyrect tight hextile zlib -+corre rre". Raw encoding is always assumed as a last option if no -+other encoding can be used for some reason. For more information on -+encodings, see the section ENCODINGS below. -+.TP -+\fB\-bgr233\fR -+Always use the BGR233 format to encode pixel data. This reduces -+network traffic, but colors may be represented inaccurately. The -+bgr233 format is an 8\-bit "true color" format, with 2 bits blue, 3 -+bits green, and 3 bits red. -+.TP -+\fB\-owncmap\fR -+Try to use a PseudoColor visual and a private colormap. This allows -+the VNC server to control the colormap. -+.TP -+\fB\-truecolour\fR, \fB\-truecolor\fR -+Try to use a TrueColor visual. -+.TP -+\fB\-depth\fR \fIdepth\fR -+On an X server which supports multiple TrueColor visuals of different -+depths, attempt to use the specified one (in bits per pixel); if -+successful, this depth will be requested from the VNC server. -+.TP -+\fB\-compresslevel \fIlevel\fR -+Use specified compression \fIlevel\fR (0..9) for "tight" and "zlib" -+encodings (TightVNC\-specific). Level 1 uses minimum of CPU time and -+achieves weak compression ratios, while level 9 offers best -+compression but is slow in terms of CPU time consumption on the server -+side. Use high levels with very slow network connections, and low -+levels when working over high\-speed LANs. It's not recommended to use -+compression level 0, reasonable choices start from the level 1. -+.TP -+\fB\-quality \fIlevel\fR -+Use the specified JPEG quality \fIlevel\fR (0..9) for the "tight" -+encoding (TightVNC\-specific). Quality level 0 denotes bad image -+quality but very impressive compression ratios, while level 9 offers -+very good image quality at lower compression ratios. Note that the -+"tight" encoder uses JPEG to encode only those screen areas that look -+suitable for lossy compression, so quality level 0 does not always -+mean unacceptable image quality. -+.TP -+\fB\-nojpeg\fR -+Disable lossy JPEG compression in Tight encoding (TightVNC\-specific). -+Disabling JPEG compression is not a good idea in typical cases, as -+that makes the Tight encoder less efficient. You might want to use -+this option if it's absolutely necessary to achieve perfect image -+quality (see also the \fB\-quality\fR option). -+.TP -+\fB\-nocursorshape\fR -+Disable cursor shape updates, protocol extensions used to handle -+remote cursor movements locally on the client side -+(TightVNC\-specific). Using cursor shape updates decreases delays with -+remote cursor movements, and can improve bandwidth usage dramatically. -+.TP -+\fB\-x11cursor\fR -+Use a real X11 cursor with X-style cursor shape updates, instead of -+drawing the remote cursor on the framebuffer. This option also -+disables the dot cursor, and disables cursor position updates in -+non-fullscreen mode. -+.TP -+\fB\-autopass\fR -+Read a plain-text password from stdin. This option affects only the -+standard VNC authentication. -+ -+.SH Enhanced TightVNC Viewer OPTIONS -+.TP -+Enhanced TightVNC Viewer web page is located at: -+.TP -+http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html -+.TP -+Note: ZRLE encoding is now supported. -+.TP -+Note: F9 is shortcut to Toggle FullScreen mode. -+.TP -+\fB\-use64\fR -+In \fB\-bgr233\fR mode, use 64 colors instead of 256. -+.TP -+\fB\-bgr222\fR -+Same as \fB\-use64\fR. -+.TP -+\fB\-use8\fR -+In \fB\-bgr233\fR mode, use 8 colors instead of 256. -+.TP -+\fB\-bgr111\fR -+Same as \fB\-use8\fR. -+.TP -+\fB\-16bpp\fR -+If the vnc viewer X display is depth 24 at 32bpp -+request a 16bpp format from the VNC server to cut -+network traffic by up to 2X, then tranlate the -+pixels to 32bpp locally. -+.TP -+\fB\-bgr565\fR -+Same as \fB\-16bpp\fR. -+.TP -+\fB\-alpha\fR -+Use alphablending transparency for local cursors -+requires: x11vnc server, both client and server -+must be 32bpp and same endianness. -+.TP -+\fB\-ycrop\fR n -+Only show the top n rows of the framebuffer. For -+use with x11vnc \fB\-ncache\fR client caching option -+to help "hide" the pixel cache region. -+Use a negative value (e.g. \fB\-1\fR) for autodetection. -+Autodetection will always take place if the remote -+fb height is more than 2 times the width. -+.TP -+\fB\-sbwidth\fR n -+Scrollbar width, default is very narrow: 2 pixels, -+it is narrow to avoid distraction in \fB\-ycrop\fR mode. -+.TP -+\fB\-rawlocal\fR -+Prefer raw encoding for localhost, default is -+no, i.e. assumes you have a SSH tunnel instead. -+.TP -+\fB\-graball\fR -+Grab the entire X server when in fullscreen mode, -+needed by some old window managers like fvwm2. -+.TP -+\fB\-popupfix\fR -+Warp the popup back to the pointer position, -+needed by some old window managers like fvwm2. -+.TP -+\fB\-grabkbd\fR -+Grab the X keyboard when in fullscreen mode, -+needed by some window managers. Same as \fB\-grabkeyboard\fR. -+\fB\-grabkbd\fR is the default, use \fB\-nograbkbd\fR to disable. -+.TP -+\fB\-bs/-nobs\fR -+Whether or not to use X server Backingstore for the -+main viewer window. The default is to not, mainly -+because most Linux, etc, systems X servers disable -+*all* Backingstore by default. To re-enable it put -+ -+Option "Backingstore" -+ -+in the Device section of /etc/X11/xorg.conf. -+In -bs mode with no X server backingstore, whenever an -+area of the screen is re-exposed it must go out to the -+VNC server to retrieve the pixels. This is too slow. -+ -+In -nobs mode, memory is allocated by the viewer to -+provide its own backing of the main viewer window. This -+actually makes some activities faster (changes in large -+regions) but can appear to "flash" too much. -+.TP -+\fB\-noshm\fR -+Disable use of MIT shared memory extension (not recommended) -+.TP -+\fB New Popup actions:\fR -+ -+ Cursor Shape: ~ -nocursorshape -+ X11 Cursor: ~ -x11cursor -+ Cursor Alphablend: ~ -alpha -+ Disable JPEG: ~ -nojpeg -+ Prefer raw for localhost ~ -rawlocal -+ 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) ~ -bgr565 -+ 8 bit color (BGR233) ~ -bgr233 -+ 256 colors ~ -bgr233 default # of colors. -+ 64 colors ~ -bgr222 / -use64 -+ 8 colors ~ -bgr111 / -use8 -+ -+ -+ Disable Remote Input Ultravnc ext. Try to prevent input and -+ viewing of monitor at physical display. -+ Single Window Ultravnc ext. Grab and a single window. -+ (click on the window you want). -+ Set 1/n Server Scale Ultravnc ext. Scale desktop by 1/n. -+ prompt is from the terminal. -+ Text Chat Ultravnc ext. Do Text Chat, currently -+ input via the terminal (no window). -+ -+ Note: the Ultravnc extensions only apply to servers that support -+ them. x11vnc/libvncserver supports some of them. -+ -+.SH ENCODINGS -+The server supplies information in whatever format is desired by the -+client, in order to make the client as easy as possible to implement. -+If the client represents itself as able to use multiple formats, the -+server will choose one. -+ -+.I Pixel format -+refers to the representation of an individual pixel. The most common -+formats are 24 and 16 bit "true\-color" values, and 8\-bit "color map" -+representations, where an arbitrary map converts the color number to -+RGB values. -+ -+.I Encoding -+refers to how a rectangle of pixels are sent (all pixel information in -+VNC is sent as rectangles). All rectangles come with a header giving -+the location and size of the rectangle and an encoding type used by -+the data which follows. These types are listed below. -+.TP -+.B Raw -+The raw encoding simply sends width*height pixel values. All clients -+are required to support this encoding type. Raw is also the fastest -+when the server and viewer are on the same machine, as the connection -+speed is essentially infinite and raw encoding minimizes processing -+time. -+.TP -+.B CopyRect -+The Copy Rectangle encoding is efficient when something is being -+moved; the only data sent is the location of a rectangle from which -+data should be copied to the current location. Copyrect could also be -+used to efficiently transmit a repeated pattern. -+.TP -+.B RRE -+The Rise\-and\-Run\-length\-Encoding is basically a 2D version of -+run\-length encoding (RLE). In this encoding, a sequence of identical -+pixels are compressed to a single value and repeat count. In VNC, this -+is implemented with a background color, and then specifications of an -+arbitrary number of subrectangles and color for each. This is an -+efficient encoding for large blocks of constant color. -+.TP -+.B CoRRE -+This is a minor variation on RRE, using a maximum of 255x255 pixel -+rectangles. This allows for single\-byte values to be used, reducing -+packet size. This is in general more efficient, because the savings -+from sending 1\-byte values generally outweighs the losses from the -+(relatively rare) cases where very large regions are painted the same -+color. -+.TP -+.B Hextile -+Here, rectangles are split up in to 16x16 tiles, which are sent in a -+predetermined order. The data within the tiles is sent either raw or -+as a variant on RRE. Hextile encoding is usually the best choice for -+using in high\-speed network environments (e.g. Ethernet local\-area -+networks). -+.TP -+.B Zlib -+Zlib is a very simple encoding that uses zlib library to compress raw -+pixel data. This encoding achieves good compression, but consumes a -+lot of CPU time. Support for this encoding is provided for -+compatibility with VNC servers that might not understand Tight -+encoding which is more efficient than Zlib in nearly all real\-life -+situations. -+.TP -+.B Tight -+Like Zlib encoding, Tight encoding uses zlib library to compress the -+pixel data, but it pre\-processes data to maximize compression ratios, -+and to minimize CPU usage on compression. Also, JPEG compression may -+be used to encode color\-rich screen areas (see the description of -+\-quality and \-nojpeg options above). Tight encoding is usually the -+best choice for low\-bandwidth network environments (e.g. slow modem -+connections). -+.SH RESOURCES -+X resources that \fBvncviewer\fR knows about, aside from the -+normal Xt resources, are as follows: -+.TP -+.B shareDesktop -+Equivalent of \fB\-shared\fR/\fB\-noshared\fR options. Default true. -+.TP -+.B viewOnly -+Equivalent of \fB\-viewonly\fR option. Default false. -+.TP -+.B fullScreen -+Equivalent of \fB\-fullscreen\fR option. Default false. -+.TP -+.B grabKeyboard -+Grab keyboard in full-screen mode. This can help to solve problems -+with losing keyboard focus. Default false. -+.TP -+.B raiseOnBeep -+Equivalent of \fB\-noraiseonbeep\fR option, when set to false. Default -+true. -+.TP -+.B passwordFile -+Equivalent of \fB\-passwd\fR option. -+.TP -+.B userLogin -+Equivalent of \fB\-user\fR option. -+.TP -+.B passwordDialog -+Whether to use a dialog box to get the password (true) or get it from -+the tty (false). Irrelevant if \fBpasswordFile\fR is set. Default -+false. -+.TP -+.B encodings -+Equivalent of \fB\-encodings\fR option. -+.TP -+.B compressLevel -+Equivalent of \fB\-compresslevel\fR option (TightVNC\-specific). -+.TP -+.B qualityLevel -+Equivalent of \fB\-quality\fR option (TightVNC\-specific). -+.TP -+.B enableJPEG -+Equivalent of \fB\-nojpeg\fR option, when set to false. Default true. -+.TP -+.B useRemoteCursor -+Equivalent of \fB\-nocursorshape\fR option, when set to false -+(TightVNC\-specific). Default true. -+.TP -+.B useBGR233 -+Equivalent of \fB\-bgr233\fR option. Default false. -+.TP -+.B nColours -+When using BGR233, try to allocate this many "exact" colors from the -+BGR233 color cube. When using a shared colormap, setting this resource -+lower leaves more colors for other X clients. Irrelevant when using -+truecolor. Default is 256 (i.e. all of them). -+.TP -+.B useSharedColours -+If the number of "exact" BGR233 colors successfully allocated is less -+than 256 then the rest are filled in using the "nearest" colors -+available. This resource says whether to only use the "exact" BGR233 -+colors for this purpose, or whether to use other clients' "shared" -+colors as well. Default true (i.e. use other clients' colors). -+.TP -+.B forceOwnCmap -+Equivalent of \fB\-owncmap\fR option. Default false. -+.TP -+.B forceTrueColour -+Equivalent of \fB\-truecolour\fR option. Default false. -+.TP -+.B requestedDepth -+Equivalent of \fB\-depth\fR option. -+.TP -+.B useSharedMemory -+Use MIT shared memory extension if on the same machine as the X -+server. Default true. -+.TP -+.B wmDecorationWidth, wmDecorationHeight -+The total width and height taken up by window manager decorations. -+This is used to calculate the maximum size of the VNC viewer window. -+Default is width 4, height 24. -+.TP -+.B bumpScrollTime, bumpScrollPixels -+When in full screen mode and the VNC desktop is bigger than the X -+display, scrolling happens whenever the mouse hits the edge of the -+screen. The maximum speed of scrolling is bumpScrollPixels pixels -+every bumpScrollTime milliseconds. The actual speed of scrolling will -+be slower than this, of course, depending on how fast your machine is. -+Default 20 pixels every 25 milliseconds. -+.TP -+.B popupButtonCount -+The number of buttons in the popup window. See the README file for -+more information on how to customize the buttons. -+.TP -+.B debug -+For debugging. Default false. -+.TP -+.B rawDelay, copyRectDelay -+For debugging, see the README file for details. Default 0 (off). -+.SH ENVIRONMENT -+When started with the \fB\-via\fR option, vncviewer reads the -+\fBVNC_VIA_CMD\fR environment variable, expands patterns beginning -+with the "%" character, and executes result as a command assuming that -+it would create TCP tunnel that should be used for VNC connection. If -+not set, this environment variable defaults to "/usr/bin/ssh -f -L -+%L:%H:%R %G sleep 20". -+ -+The following patterns are recognized in the \fBVNC_VIA_CMD\fR (note -+that all the patterns %G, %H, %L and %R must be present in the command -+template): -+.TP -+.B %% -+A literal "%"; -+.TP -+.B %G -+gateway host name; -+.TP -+.B %H -+remote VNC host name, as known to the gateway; -+.TP -+.B %L -+local TCP port number; -+.TP -+.B %R -+remote TCP port number. -+.SH SEE ALSO -+\fBvncserver\fR(1), \fBXvnc\fR(1), \fBvncpasswd\fR(1), -+\fBvncconnect\fR(1), \fBssh\fR(1) -+.SH AUTHORS -+Original VNC was developed in AT&T Laboratories Cambridge. TightVNC -+additions was implemented by Constantin Kaplinsky. Many other people -+participated in development, testing and support. -+ -+\fBMan page authors:\fR -+.br -+Marcus Brinkmann , -+.br -+Terran Melconian , -+.br -+Tim Waugh , -+.br -+Constantin Kaplinsky diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/vncviewer.c vnc_unixsrc/vncviewer/vncviewer.c --- vnc_unixsrc.orig/vncviewer/vncviewer.c 2004-01-13 09:22:05.000000000 -0500 +++ vnc_unixsrc/vncviewer/vncviewer.c 2007-02-18 18:45:43.000000000 -0500 @@ -6938,33 +6463,6 @@ diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/vncviewer.man vnc_unixsrc/vnc .SH ENCODINGS The server supplies information in whatever format is desired by the client, in order to make the client as easy as possible to implement. -diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/y.out vnc_unixsrc/vncviewer/y.out ---- vnc_unixsrc.orig/vncviewer/y.out 1969-12-31 19:00:00.000000000 -0500 -+++ vnc_unixsrc/vncviewer/y.out 2007-02-18 16:06:22.000000000 -0500 -@@ -0,0 +1,23 @@ -+Connected to RFB server, using protocol version 3.3 -+No authentication needed -+Desktop name "squirtle:0.0" -+VNC server default format: -+ 16 bits per pixel. -+ Least significant byte first in each pixel. -+ True colour: max red 31 green 63 blue 31, shift red 11 green 5 blue 0 -+Using default colormap which is TrueColor. Pixel format: -+ 32 bits per pixel. -+ Least significant byte first in each pixel. -+ True colour: max red 255 green 255 blue 255, shift red 16 green 8 blue 0 -+useShm: 1 -+Using shared memory PutImage ycrop=0 -+desktopWin backingstore: 0 -+desktopWin save_under: 0 -+ -+*ChatOpen* -+ -+send> -+Chat: Hola. -+send> send> -+Chat: Tryin' to chill dude, that's all.... -+send> send> send> send> send> ShmCleanup called diff -Naur -X ./exclude vnc_unixsrc.orig/vncviewer/zrle.c vnc_unixsrc/vncviewer/zrle.c --- vnc_unixsrc.orig/vncviewer/zrle.c 2007-02-04 18:59:50.000000000 -0500 +++ vnc_unixsrc/vncviewer/zrle.c 2007-02-17 22:36:37.000000000 -0500