summaryrefslogtreecommitdiffstats
path: root/x11vnc/misc
diff options
context:
space:
mode:
Diffstat (limited to 'x11vnc/misc')
-rw-r--r--x11vnc/misc/enhanced_tightvnc_viewer/README18
-rwxr-xr-xx11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer39
-rwxr-xr-xx11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl163
-rwxr-xr-xx11vnc/misc/enhanced_tightvnc_viewer/src/patches/_bundle4
4 files changed, 193 insertions, 31 deletions
diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/README b/x11vnc/misc/enhanced_tightvnc_viewer/README
index 6bb6a15..c330612 100644
--- a/x11vnc/misc/enhanced_tightvnc_viewer/README
+++ b/x11vnc/misc/enhanced_tightvnc_viewer/README
@@ -1,4 +1,4 @@
- Enhanced TightVNC Viewer (ssvnc: SSL/SSH VNC viewer)
+ Enhanced TightVNC Viewer (SSVNC: SSL/SSH VNC viewer)
Copyright (c) 2006-2007 Karl J. Runge <runge@karlrunge.com>
All rights reserved.
@@ -239,6 +239,22 @@ mapped to Linux.i686). (See the ./bin/ssvnc_cmd -h output for how to
override platform autodection via the UNAME env. var).
+Memory Stick Usage:
+-------------------
+
+If you create a directory named "Home" in that toplevel ssvnc directory
+then that will be used as the base for storing VNC profiles and
+certificates. Also, for convenience, if you first run the command with
+"." as an argument (e.g. "ssvnc .") it will automatically create that
+"Home" directory for you. This is handy if you want to place SSVNC
+on a USB flash drive that you carry around for mobile use and you want
+the profiles you create to stay with the drive (otherwise you'd have to
+browse to the drive directory each time you load or save).
+
+WARNING: if you use ssvnc from an "Internet Cafe", i.e. an untrusted
+computer, an intruder may be capturing keystrokes etc.
+
+
External Dependencies:
----------------------
diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer b/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer
index 857cfce..25854cd 100755
--- a/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer
+++ b/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ss_vncviewer
@@ -218,6 +218,11 @@ do
shift
done
+targ="-t"
+if [ "X$SS_VNCVIEWER_NO_T" != "X" ]; then
+ targ=""
+fi
+
if [ "X$gotalpha" = "X1" ]; then
VNCVIEWER_ALPHABLEND=1
export VNCVIEWER_ALPHABLEND
@@ -255,6 +260,12 @@ if [ "X$use_ssh" = "X1" -a "X$use_sshssl" = "X" ]; then
fi
fi
+if echo "$orig" | grep '^V[Nn][Cc]://' > /dev/null; then
+ SSVNC_NO_ENC_WARN=1
+ export SSVNC_NO_ENC_WARN
+ orig=`echo "$orig" | sed -e 's/^...:/vnc:/'`
+fi
+
if echo "$orig" | grep '^vnc://' > /dev/null; then
orig=`echo "$orig" | sed -e 's,vnc://,,'`
verify=""
@@ -266,9 +277,14 @@ elif echo "$orig" | grep '^vncs://' > /dev/null; then
orig=`echo "$orig" | sed -e 's,vncs://,,'`
elif echo "$orig" | grep '^vncssl://' > /dev/null; then
orig=`echo "$orig" | sed -e 's,vncssl://,,'`
+elif echo "$orig" | grep '^vnc+ssl://' > /dev/null; then
+ orig=`echo "$orig" | sed -e 's,vnc.ssl://,,'`
elif echo "$orig" | grep '^vncssh://' > /dev/null; then
orig=`echo "$orig" | sed -e 's,vncssh://,,'`
use_ssh=1
+elif echo "$orig" | grep '^vnc+ssh://' > /dev/null; then
+ orig=`echo "$orig" | sed -e 's,vnc.ssh://,,'`
+ use_ssh=1
fi
if [ "X$reverse" != "X" -a "X$direct_connect" = "X" ]; then
VNCVIEWER_LISTEN_LOCALHOST=1
@@ -438,8 +454,8 @@ if [ "X$use_ssh" = "X1" ]; then
proxport=`findfree 3500`
echo
echo "Running 1st ssh proxy:"
- echo "$ssh -f -x -p $ssh_port1 -t -e none -L $proxport:$ssh_host2:$ssh_port2 $ssh_host1 \"sleep 30\""
- $ssh -f -x -p $ssh_port1 -t -e none -L $proxport:$ssh_host2:$ssh_port2 $ssh_host1 "sleep 30"
+ echo "$ssh -f -x -p $ssh_port1 $targ -e none -L $proxport:$ssh_host2:$ssh_port2 $ssh_host1 \"sleep 30\""
+ $ssh -f -x -p $ssh_port1 $targ -e none -L $proxport:$ssh_host2:$ssh_port2 $ssh_host1 "sleep 30"
ssh_args="$ssh_args -o NoHostAuthenticationForLocalhost=yes"
sleep 1
stty sane
@@ -475,18 +491,18 @@ if [ "X$use_ssh" = "X1" ]; then
pmark=`sh -c 'echo $$'`
# the -t option actually speeds up typing response via VNC!!
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 $targ $C $ssh_args $ssh_host \"$info\""
echo ""
- $ssh -x -p $ssh_port -t $C $ssh_args $ssh_host "$ssh_cmd"
+ $ssh -x -p $ssh_port $targ $C $ssh_args $ssh_host "$ssh_cmd"
exit $?
elif [ "X$SS_VNCVIEWER_NO_F" != "X" ]; then
- echo "$ssh -x -p $ssh_port -t $C $ssh_redir $ssh_args $ssh_host \"$info\""
+ echo "$ssh -x -p $ssh_port $targ $C $ssh_redir $ssh_args $ssh_host \"$info\""
echo ""
- $ssh -x -p $ssh_port -t $C $ssh_redir $ssh_args $ssh_host "$ssh_cmd"
+ $ssh -x -p $ssh_port $targ $C $ssh_redir $ssh_args $ssh_host "$ssh_cmd"
else
- echo "$ssh -x -f -p $ssh_port -t $C $ssh_redir $ssh_args $ssh_host \"$info\""
+ echo "$ssh -x -f -p $ssh_port $targ $C $ssh_redir $ssh_args $ssh_host \"$info\""
echo ""
- $ssh -x -f -p $ssh_port -t $C $ssh_redir $ssh_args $ssh_host "$ssh_cmd"
+ $ssh -x -f -p $ssh_port $targ $C $ssh_redir $ssh_args $ssh_host "$ssh_cmd"
fi
if [ "$?" != "0" ]; then
echo ""
@@ -774,12 +790,15 @@ if [ "X$direct_connect" != "X" ]; then
echo ""
echo "** NOTE: THERE WILL BE NO SSL OR SSH ENCRYPTION **"
echo ""
- if type printf > /dev/null 2>&1; then
+ if [ "X$SSVNC_NO_ENC_WARN" != "X" ]; then
+ sleep 1
+ elif type printf > /dev/null 2>&1; then
printf "Are you sure you want to continue? [y]/n "
+ read x
else
echo -n "Are you sure you want to continue? [y]/n "
+ read x
fi
- read x
if [ "X$x" = "Xn" ]; then
exit 1
fi
diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl b/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl
index adf6e14..4ba945a 100755
--- a/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl
+++ b/x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssvnc.tcl
@@ -276,7 +276,8 @@ proc help {} {
Sorry we do not make this easy to figure out how to do (e.g. a
button on the main panel), but the goal of SSVNC is secure
- connections!
+ connections! Set the env var SSVNC_NO_ENC_WARN=1 (or use Vnc://)
+ to skip the warning prompts.
6) Reverse VNC connections are possible as well. Go to Options and
select "Reverse VNC connection". In the 'VNC Host:Display' entry
@@ -294,6 +295,30 @@ proc help {} {
On Windows set it to "NOTEPAD" or similar; you can't control
the port though. It is usually 5930.
+
+ 8) On Unix if you are going to an older SSH server (e.g. Solaris 10),
+ you will probably need to set the env. var. SS_VNCVIEWER_NO_T=1
+ to disable the ssh "-t" option being used (that can prevent the
+ command from being run).
+
+ 9) In the VNC Host:Display entry you can also use these "URL-like"
+ prefixes: vncs://host:0, vncssl://host:0, and vnc+ssl://host:0
+ (for SSL) and vncssh://host:0 and vnc+ssh://host:0 for SSH. There
+ is no need to toggle the SSL/SSH else. These also work from the
+ command line, e.g.: ssvnc vnc+ssh://mymachine:10
+
+ 10) Mobile USB memory stick / flash drive usage: You can unpack ssvnc
+ to a flash drive for impromptu usage (e.g. from a friends computer)
+ If you create a directory "Home" in the toplevel ssvnc directory,
+ then that will be the default location for your VNC profiles and
+ certs. So they follow the drive this way. If you run like this:
+ "ssvnc ." or "ssvnc.exe ." the "Home" directory will be created for
+ you. WARNING: if you use ssvnc from an "Internet Cafe", i.e. an
+ untrusted computer, an intruder may be capturing keystrokes, etc.
+
+ You can also set the SSVNC_HOME env. var. to point to any
+ directory you want. It can be set after starting ssvnc by putting
+ HOME=/path/to/dir in the Host:Display box and clicking "Connect".
}
.h.f.t insert end $msg
@@ -2065,7 +2090,7 @@ proc do_unix_pre {tag proxy hp pk_hp} {
set tee ""
if {$use_smbmnt} {
- set tee $env(HOME)
+ set tee $env(SSVNC_HOME)
append tee "/.tee-etv$tag"
set fh ""
catch {set fh [open $tee "w"]}
@@ -2182,6 +2207,7 @@ proc port_knock_only {hp {mode KNOCK}} {
proc direct_connect_msg {} {
set msg ""
+ global env
globalize
if {$use_sshssl} {
append msg " - SSH + SSL tunnelling\n"
@@ -2190,6 +2216,9 @@ proc direct_connect_msg {} {
} else {
append msg " - SSL tunnelling\n"
}
+ if [info exists env(SSVNC_NO_ENC_WARN)] {
+ set msg ""
+ }
if {$use_smbmnt} {
append msg " - SMB Mount Port Redirection\n"
}
@@ -2512,6 +2541,7 @@ proc launch_unix {hp} {
set pk_hp ""
set skip_ssh 0
+
if [regexp {vnc://} $hp] {
set skip_ssh 1
direct_connect_msg
@@ -2753,7 +2783,7 @@ proc launch_unix {hp} {
set passwdfile ""
if {$vncauth_passwd != ""} {
global use_listen
- set passwdfile "$env(HOME)/.vncauth_tmp.[pid]"
+ set passwdfile "$env(SSVNC_HOME)/.vncauth_tmp.[pid]"
catch {exec vncstorepw $vncauth_passwd $passwdfile}
catch {exec chmod 600 $passwdfile}
if {$use_listen} {
@@ -3041,6 +3071,14 @@ proc launch {{hp ""}} {
set hp [get_vncdisplay]
}
+ if {[regexp {^HOME=} $hp] || [regexp {^SSVNC_HOME=} $hp]} {
+ set t $hp
+ regsub {^.*HOME=} $t "" t
+ set env(SSVNC_HOME) $t
+ mesg "set SSVNC_HOME to $t"
+ return 0
+ }
+
regsub {[ ]*cmd=.*$} $hp "" tt
if {[regexp {^[ ]*$} $tt]} {
@@ -3078,12 +3116,17 @@ proc launch {{hp ""}} {
mesg "\"$tcl_platform(os)\" | \"$tcl_platform(osVersion)\""
after 1000
}
+
+ if [regexp {V[Nn][Cc]://} $hp] {
+ set env(SSVNC_NO_ENC_WARN) 1
+ regsub {V[Nn][Cc]://} $hp "vnc://" hp
+ }
+
if {! $is_windows} {
launch_unix $hp
return
}
##############################################################
-
if [regexp {vnc://} $hp] {
direct_connect_msg
regsub {vnc://} $hp "" hp
@@ -3095,9 +3138,15 @@ proc launch {{hp ""}} {
} elseif [regexp {vncssl://} $hp] {
set use_ssl 1
regsub {vncssl://} $hp "" hp
+ } elseif [regexp {vnc\+ssl://} $hp] {
+ set use_ssl 1
+ regsub {vnc\+ssl://} $hp "" hp
} elseif [regexp {vncssh://} $hp] {
set use_ssh 1
regsub {vncssh://} $hp "" hp
+ } elseif [regexp {vnc\+ssh://} $hp] {
+ set use_ssh 1
+ regsub {vnc\+ssh://} $hp "" hp
}
check_ssh_needed
@@ -3548,14 +3597,14 @@ proc get_idir_certs {str} {
}
if {$idir == ""} {
if {$is_windows} {
- if [info exists env(HOME)] {
- set t "$env(HOME)/ss_vnc"
+ if [info exists env(SSVNC_HOME)] {
+ set t "$env(SSVNC_HOME)/ss_vnc"
regsub -all {\\} $t "/" t
regsub -all {//*} $t "/" t
if {! [file isdirectory $t]} {
catch {file mkdir $t}
}
- set t "$env(HOME)/ss_vnc/certs"
+ set t "$env(SSVNC_HOME)/ss_vnc/certs"
regsub -all {\\} $t "/" t
regsub -all {//*} $t "/" t
if {! [file isdirectory $t]} {
@@ -3574,8 +3623,8 @@ proc get_idir_certs {str} {
}
}
if {$idir == ""} {
- if [info exists env(HOME)] {
- set t "$env(HOME)/.vnc/certs"
+ if [info exists env(SSVNC_HOME)] {
+ set t "$env(SSVNC_HOME)/.vnc/certs"
if [file isdirectory $t] {
set idir $t
}
@@ -4653,8 +4702,8 @@ proc get_profiles_dir {} {
set dir ""
if {$is_windows} {
- if [info exists env(HOME)] {
- set t "$env(HOME)/ss_vnc"
+ if [info exists env(SSVNC_HOME)] {
+ set t "$env(SSVNC_HOME)/ss_vnc"
regsub -all {\\} $t "/" t
regsub -all {//*} $t "/" t
if {! [file isdirectory $t]} {
@@ -4675,8 +4724,8 @@ proc get_profiles_dir {} {
set dir $t
}
}
- } elseif [info exists env(HOME)] {
- set t "$env(HOME)/.vnc"
+ } elseif [info exists env(SSVNC_HOME)] {
+ set t "$env(SSVNC_HOME)/.vnc"
if [file isdirectory $t] {
set dir $t
set s "$t/profiles"
@@ -7215,7 +7264,7 @@ proc do_port_knock {hp mode} {
global env
set pfile "payload$pi.txt"
if {! $is_windows} {
- set pfile "$env(HOME)/.$pfile"
+ set pfile "$env(SSVNC_HOME)/.$pfile"
}
set pfiles($pi) $pfile
incr pi
@@ -7663,7 +7712,7 @@ proc ssh_agent_restart {} {
mesg "could not find ssh-add in PATH"
return
}
- set tmp $env(HOME)/.vnc-sa[pid]
+ set tmp $env(SSVNC_HOME)/.vnc-sa[pid]
set fh ""
catch {set fh [open $tmp "w"]}
if {$fh == ""} {
@@ -7938,8 +7987,8 @@ proc check_writable {} {
if ![file exists $test] {
global env
- if [info exists env(HOME)] {
- set dir "$env(HOME)/ss_vnc/cache"
+ if [info exists env(SSVNC_HOME)] {
+ set dir "$env(SSVNC_HOME)/ss_vnc/cache"
catch {file mkdir $dir}
if ![file exists $dir] {
return
@@ -7973,6 +8022,75 @@ if {[regexp -nocase {Windows.9} $tcl_platform(os)]} {
set is_win9x 0
}
+# set SSVNC_HOME to HOME in case we modify it for mobile use:
+if [info exists env(HOME)] {
+ if {! [info exists env(SSVNC_HOME)]} {
+ set env(SSVNC_HOME) $env(HOME)
+ }
+}
+
+# For mobile use, e.g. from a USB flash drive, we look for a "home" or "Home"
+# directory relative to this script where the profiles and certs will be kept
+# by default.
+if [file exists $buck_zero] {
+ #puts "$buck_zero"
+ set up [file dirname $buck_zero]
+
+ if {$up == "."} {
+ # this is actually bad news on windows because we cd'd to util.
+ set up ".."
+ } else {
+ set up [file dirname $up]
+ }
+ set dirs [list $up]
+
+ if {! $is_windows && $up != ".."} {
+ # get rid of bin
+ set up [file dirname $up]
+ lappend dirs $up
+ }
+
+ if {$argc > 0} {
+ set i [lindex $argv 0]
+ if {$i == "."} {
+ if {![file isdirectory "$up/home"] && ![file isdirectory "$up/Home"]} {
+ catch {file mkdir "$up/Home"}
+ }
+ }
+ }
+
+ set gotone 0
+
+ foreach d $dirs {
+ set try "$d/home"
+ #puts "$try"
+ if [file isdirectory $try] {
+ set env(SSVNC_HOME) $try
+ set gotone 1
+ break
+ }
+ set try "$d/Home"
+ #puts "$try"
+ if [file isdirectory $try] {
+ set env(SSVNC_HOME) $try
+ set gotone 1
+ break
+ }
+ }
+ if {$gotone} {
+ set b ""
+ if {$is_windows} {
+ set b "$env(SSVNC_HOME)/ss_vnc"
+ } else {
+ set b "$env(SSVNC_HOME)/.vnc"
+ }
+ catch {file mkdir $b}
+ catch {file mkdir "$b/certs"}
+ catch {file mkdir "$b/profiles"}
+ }
+ #puts "HOME: $env(SSVNC_HOME)"
+}
+
if {$is_windows} {
check_writable
}
@@ -7987,8 +8105,8 @@ if {$uname == "Darwin"} {
if {! [info exists env(DISPLAY)]} {
set darwin_cotvnc 1
}
- if [info exists env(HOME)] {
- set t "$env(HOME)/.vnc"
+ if [info exists env(SSVNC_HOME)] {
+ set t "$env(SSVNC_HOME)/.vnc"
if {! [file exists $t]} {
catch {file mkdir $t}
}
@@ -8123,6 +8241,12 @@ update
if {$argc > 0} {
set item [lindex $argv 0]
+ if {$item == "."} {
+ set item ""
+ if {$argc > 1} {
+ set item [lindex $argv 1]
+ }
+ }
if {$item != ""} {
if [file exists $item] {
load_profile . $item
@@ -8148,3 +8272,4 @@ if {$argc > 0} {
}
}
+#mesg "$buck_zero"
diff --git a/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/_bundle b/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/_bundle
index d73f55f..1715007 100755
--- a/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/_bundle
+++ b/x11vnc/misc/enhanced_tightvnc_viewer/src/patches/_bundle
@@ -1,10 +1,12 @@
#!/bin/sh
rm -rf ./src/tmp/* || exit 1
-vers=1.0.15
+vers=1.0.16
cd .. || exit 1
+cp -p ssvnc/bin/ssvnc_cmd ssvnc/bin/tightvncviewer
+
###########################################
dest=./t.unix_only
rm -rf $dest