Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Contribute to GitLab
Sign in
Toggle navigation
L
libvncserver
Project
Project
Details
Activity
Cycle Analytics
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Charts
Issues
0
Issues
0
List
Board
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Charts
Wiki
Wiki
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Charts
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
rasky
libvncserver
Commits
b9688bb3
Commit
b9688bb3
authored
Sep 21, 2006
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
sync etv. profile cleanup
parent
dea53c22
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
with
295 additions
and
282 deletions
+295
-282
ssl_tightvncviewer.tcl
.../enhanced_tightvnc_viewer/bin/util/ssl_tightvncviewer.tcl
+295
-281
ssl_vncviewer
x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssl_vncviewer
+0
-1
No files found.
x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssl_tightvncviewer.tcl
View file @
b9688bb3
...
...
@@ -122,7 +122,7 @@ proc help {} {
If you want to use a SSL Certificate
(
PEM
)
file to authenticate yourself
to the VNC server
(
"MyCert"
)
or to verify the identity of the VNC Server
(
"ServerCert"
or
"CertsDir"
)
impor
t the certificate file by clicking
(
"ServerCert"
or
"CertsDir"
)
selec
t the certificate file by clicking
the
"Certs ..."
button before connecting.
Certificate verification is needed to prevent Man In the Middle attacks.
...
...
@@ -169,7 +169,6 @@ proc help {} {
}
.h.f.t insert end
$msg
#raise .h
}
proc
help_certs
{}
{
...
...
@@ -240,7 +239,7 @@ proc help_certs {} {
x11vnc -ssl SAVE ...
and
then
copy the Server certificate to the local
(
viewer-side
)
machine.
x11vnc prints out t
he
the screen the Server certificate it generates.
x11vnc prints out t
o
the screen the Server certificate it generates.
You can set
"ServerCert"
to it directly or use the
"Import Certificate"
action to save it to a file.
...
...
@@ -249,7 +248,6 @@ proc help_certs {} {
}
.ch.f.t insert end
$msg
#raise .ch
}
proc
help_opts
{}
{
...
...
@@ -308,8 +306,8 @@ set msg {
Putty PW: On Windows only: use the supplied password for plink SSH logins.
Unlike the other options the value is not saved when 'Save
Profile' is
us
ed. This feature useful when options under
"Advanced"
are set that require
2
SSH's: you just have
Profile' is
perform
ed. This feature useful when options under
"Advanced"
are set that require
TWO
SSH's: you just have
to type the password once in this entry box. The bundled
pagent.exe and puttygen.exe programs can also be used to avoid
repeatedly entering passwords
(
note this requires setting up
...
...
@@ -342,17 +340,29 @@ set msg {
Compress Level/Quality: Set TightVNC encoding parameters.
Save and Load: You can Save the current settings by clicking on Save
Profile
(
.vnc file
)
and you can also read in a saved one
with Load Profile.
with Load Profile. Use the Browse... button to select
the filename via the GUI.
Include: Profile template
(
s
)
to load before loading a profile
(
see Load Profile above
)
. For example if you Save
a profile called
"globals"
that has some settings
you use often,
then
just supply
"Include: globals"
to have them applied.
You may supply a comma or space separated list of
templates to include. They can be full path names or
basenames relative to the profiles directory. You do
not need to supply the .vnc suffix. The non-default
settings in them will be applied first, and
then
any
values
then
in the loaded Profile will override them.
Clear Options: Set all options to their defaults
(
i.e. unset
)
.
Advanced: Bring up the Advanced options dialog.
}
.oh.f.t insert end
$msg
#raise .oh
}
proc
win_nokill_msg
{}
{
...
...
@@ -383,7 +393,6 @@ proc win_nokill_msg {} {
for error messages and other information.
}
.w.t insert end
$msg
#raise .w
}
proc
win_kill_msg
{
pids
}
{
...
...
@@ -425,7 +434,6 @@ proc win_kill_msg {pids} {
make the Tray notice STUNNEL is gone...
}
.w.t insert end
$msg
#raise .w
}
proc
win9x_plink_msg
{
file
}
{
...
...
@@ -462,7 +470,7 @@ proc win9x_plink_msg {file} {
type COMMAND in the entry box and hit Return or click OK.
To select the above command, highlight it with the mouse and
then
press
Ctrl-C. Then go over t
he
the COMMAND.COM window and click on the
Ctrl-C. Then go over t
o
the COMMAND.COM window and click on the
Clipboard paste button. Once pasted in, press Return to run the script.
This will start up a PLINK.EXE ssh login to the remote computer,
...
...
@@ -516,6 +524,8 @@ proc get_ssh_proxy {str} {
}
proc
set_defaults
{}
{
global defs
global mycert svcert crtdir
global use_alpha use_grab use_ssh use_sshssl use_viewonly use_fullscreen use_bgr233
global use_nojpeg use_raise_on_beep use_compresslevel use_quality
...
...
@@ -529,59 +539,67 @@ proc set_defaults {} {
global sound_daemon_local_cmd sound_daemon_local_port sound_daemon_local_kill sound_daemon_local_start
global smb_su_mode smb_mount_list
global use_port_knocking port_knocking_list
global include_list
set use_ssh 0
set use_sshssl 0
putty_pw_entry check
set defs
(
use_ssh
)
0
set defs
(
use_sshssl
)
0
set
use_viewonly
0
set
use_fullscreen
0
set
use_raise_on_beep
0
set
use_bgr233
0
set
use_alpha
0
set
use_grab
0
set
use_nojpeg
0
set
use_compresslevel
"default"
set
use_quality
"default"
set
compresslevel_text
"Compress Level:
$use
_compresslevel
"
set
quality_text
"Quality:
$use
_quality
"
set
defs
(
use_viewonly
)
0
set
defs
(
use_fullscreen
)
0
set
defs
(
use_raise_on_beep
)
0
set
defs
(
use_bgr233
)
0
set
defs
(
use_alpha
)
0
set
defs
(
use_grab
)
0
set
defs
(
use_nojpeg
)
0
set
defs
(
use_compresslevel
)
"default"
set
defs
(
use_quality
)
"default"
set
defs
(
compresslevel_text
)
"Compress Level: default
"
set
defs
(
quality_text
)
"Quality: default
"
set
mycert
""
set
svcert
""
set
crtdir
""
set
defs
(
mycert
)
""
set
defs
(
svcert
)
""
set
defs
(
crtdir
)
""
set
use_cups
0
set
use_sound
0
set
use_smbmnt
0
set
defs
(
use_cups
)
0
set
defs
(
use_sound
)
0
set
defs
(
use_smbmnt
)
0
set
change_vncviewer
0
set
change_vncviewer_path
""
set
cups_manage_rcfile
0
set
vncviewer_realvnc4
0
set
defs
(
change_vncviewer
)
0
set
defs
(
change_vncviewer_path
)
""
set
defs
(
cups_manage_rcfile
)
0
set
defs
(
vncviewer_realvnc4
)
0
set
additional_port_redirs
0
set
additional_port_redirs_list
""
set
defs
(
additional_port_redirs
)
0
set
defs
(
additional_port_redirs_list
)
""
set
cups_local_server
""
set
cups_remote_port
""
set
cups_local_smb_server
""
set
cups_remote_smb_port
""
set
defs
(
cups_local_server
)
""
set
defs
(
cups_remote_port
)
""
set
defs
(
cups_local_smb_server
)
""
set
defs
(
cups_remote_smb_port
)
""
set
smb_su_mode
"su"
set
smb_mount_list
""
set
defs
(
smb_su_mode
)
"su"
set
defs
(
smb_mount_list
)
""
set
sound_daemon_remote_cmd
""
set
sound_daemon_remote_port
""
set
sound_daemon_kill
0
set
sound_daemon_restart
0
set
defs
(
sound_daemon_remote_cmd
)
""
set
defs
(
sound_daemon_remote_port
)
""
set
defs
(
sound_daemon_kill
)
0
set
defs
(
sound_daemon_restart
)
0
set
sound_daemon_local_cmd
""
set
sound_daemon_local_port
""
set
sound_daemon_local_start
0
set
sound_daemon_local_kill
0
set
defs
(
sound_daemon_local_cmd
)
""
set
defs
(
sound_daemon_local_port
)
""
set
defs
(
sound_daemon_local_start
)
0
set
defs
(
sound_daemon_local_kill
)
0
set use_port_knocking 0
set port_knocking_list
""
set defs
(
use_port_knocking
)
0
set defs
(
port_knocking_list
)
""
set defs
(
include_list
)
""
foreach var
[
array
names defs
]
{
set
$var
$defs
(
$var
)
}
putty_pw_entry check
}
proc
do_viewer_windows
{
n
}
{
...
...
@@ -732,7 +750,7 @@ proc guess_nat_ip {} {
}
proc
guess_ip
{}
{
global
env
is_windows
global is_windows
if
{
!
$is
_windows
}
{
set out
""
set out
[
get_hostname
]
...
...
@@ -791,7 +809,7 @@ proc windows_start_sound_daemon {file} {
}
proc
windows_stop_sound_daemon
{}
{
global
env
is_win9x
global is_win9x
global use_sound sound_daemon_local_cmd sound_daemon_local_start
set cmd
[
string
trim
$sound
_daemon_local_cmd
]
...
...
@@ -859,12 +877,11 @@ proc make_plink {} {
button .plink.ok -text
"Success"
-command
{
destroy .plink
;
set plink_status yes
}
pack .plink.l1 .plink.l2 .plink.l3 .plink.l4 .plink.l5 .plink.l6 .plink.fail .plink.ok -side top -fill x
#wm deiconify .plink
update
}
proc
launch_windows_ssh
{
hp file n
}
{
global is_win9x
global is_win9x
env
global use_sshssl use_ssh putty_pw
global port_knocking_list
...
...
@@ -897,7 +914,6 @@ proc launch_windows_ssh {hp file n} {
set vnc_port
$vnc
_disp
}
set ssh_port 22
set ssh_host
$hpnew
regsub
{
:.*$
}
$ssh
_host
""
ssh_host
...
...
@@ -1117,7 +1133,6 @@ proc launch_windows_ssh {hp file n} {
set win9x_plink_msg_done 0
vwait win9x_plink_msg_done
}
else
{
global env
set com
"cmd.exe"
if
[
info
exists env
(
COMSPEC
)]
{
set com
$env
(
COMSPEC
)
...
...
@@ -1276,13 +1291,7 @@ proc launch_windows_ssh {hp file n} {
}
proc
check_ssh_needed
{}
{
global use_cups use_sound use_smbmnt
global sound_daemon_remote_cmd sound_daemon_remote_port sound_daemon_kill sound_daemon_restart
global sound_daemon_local_cmd sound_daemon_local_port sound_daemon_local_kill sound_daemon_local_start
global cups_local_server cups_remote_port cups_manage_rcfile
global cups_local_smb_server cups_remote_smb_port
global smb_su_mode smb_mount_list
global use_ssh use_sshssl
globalize
if
{
$use
_ssh ||
$use
_sshssl
}
{
return
...
...
@@ -1445,16 +1454,9 @@ proc do_unix_pre {tag proxy hp pk_hp} {
}
proc
launch_unix
{
hp
}
{
global mycert svcert crtdir env
global use_alpha use_grab use_ssh use_sshssl use_viewonly use_fullscreen use_bgr233
global use_nojpeg use_raise_on_beep use_compresslevel use_quality
global change_vncviewer change_vncviewer_path vncviewer_realvnc4
global additional_port_redirs additional_port_redirs_list
global use_cups use_sound use_smbmnt
global smb_redir_0 smb_mounts
global sound_daemon_remote_cmd sound_daemon_remote_port sound_daemon_kill sound_daemon_restart
global sound_daemon_local_cmd sound_daemon_local_port sound_daemon_local_kill sound_daemon_local_start
global port_knocking_list
global smb_redir_0 smb_mounts env
globalize
set cmd
""
...
...
@@ -1476,6 +1478,14 @@ proc launch_unix {hp} {
set cmd
"ssl_vncviewer -ssh"
}
else
{
set cmd
"ssl_vncviewer -sshssl"
if
{
$mycert
!=
""
}
{
set cmd
"
$cmd
-mycert '
$mycert
'"
}
if
{
$svcert
!=
""
}
{
set cmd
"
$cmd
-verify '
$svcert
'"
}
else
if
{
$crtdir
!=
""
}
{
set cmd
"
$cmd
-verify '
$crtdir
'"
}
}
set hpnew
[
get_ssh_hp
$hp
]
set proxy
[
get_ssh_proxy
$hp
]
...
...
@@ -1645,7 +1655,6 @@ proc launch_unix {hp} {
}
if
{
$change
_vncviewer &&
$change
_vncviewer_path !=
""
}
{
global env
set env
(
VNCVIEWERCMD
)
$change
_vncviewer_path
}
else
{
set env
(
VNCVIEWERCMD
)
""
...
...
@@ -1687,7 +1696,8 @@ proc launch_unix {hp} {
}
exec xterm -geometry
$geometry
-xrm
"
$xrm1
"
-xrm
"
$xrm2
"
-xrm
"
$xrm3
"
\
-title
"SSL VNC Viewer
$hp
"
\
-e sh -c
"set -xv;
$cmd
; set +xv; echo; echo Done. You Can X-out or Ctrl-C this Terminal whenever you like.; echo; echo sleep 15; echo; sleep 15"
-e sh -c
"set -xv;
$cmd
; set +xv; echo; echo Done. You Can X-out or Ctrl-C this Terminal if you like.; echo; echo sleep 15; echo; sleep 15"
set env
(
SSL_VNCVIEWER_SSH_CMD
)
""
set env
(
SSL_VNCVIEWER_USE_C
)
""
...
...
@@ -1710,7 +1720,7 @@ proc launch_unix {hp} {
}
proc
kill_stunnel
{
pids
}
{
global is_win9x
env
global is_win9x
set count 0
foreach pid
$pids
{
...
...
@@ -1730,7 +1740,7 @@ proc kill_stunnel {pids} {
}
proc
get_task_list
{}
{
global
env
is_win9x
global is_win9x
set output1
""
set output2
""
...
...
@@ -1748,7 +1758,6 @@ proc get_task_list {} {
}
proc
note_stunnel_pids
{
when
}
{
global env
global is_win9x pids_before pids_after pids_new
if
{
$when
==
"before"
}
{
...
...
@@ -1811,7 +1820,7 @@ proc launch_shell_only {} {
}
proc
launch
{{
hp
""
}}
{
global vncdisplay
env
tcl_platform is_windows
global vncdisplay tcl_platform is_windows
global mycert svcert crtdir
global pids_before pids_after pids_new
global use_ssh use_sshssl
...
...
@@ -1881,7 +1890,6 @@ proc launch {{hp ""}} {
set suffix
"bat"
}
# we avoid parsing netstat output on Windows
(
but I guess we do now
else
where
)
:
set file
""
set n
""
set file2
""
...
...
@@ -2183,10 +2191,12 @@ proc show_cert {crt} {
center_win
$w
catch
{
raise
$w
}
}
proc
show_mycert
{}
{
global mycert
show_cert
$mycert
}
proc
show_svcert
{}
{
global svcert
show_cert
$svcert
...
...
@@ -2857,7 +2867,7 @@ proc import_cert {} {
global scroll_text_focus
set scroll_text_focus 0
scroll_text .icrt.f 90
16
scroll_text .icrt.f 90
20
set scroll_text_focus 1
set msg
{
...
...
@@ -2875,22 +2885,20 @@ proc import_cert {} {
-----BEGIN CERTIFICATE-----
MIID2jCCAsKgAwIBAgIJALKypfV8BItCMA0GCSqGSIb3DQEBBAUAMIGgMQswCQYD
...
(
more lines
)
...
TCQ+tbQ/DOiTXGKx1nlcKoPdkG+QVQVJthlQcpam
-----END CERTIFICATE-----
where
"..."
means similarly looking lines.
A type 2) by convention ends with file suffix
".pem"
and looks like:
-----BEGIN RSA PRIVATE KEY-----
MIIEpAIBAAKCAQEA4sApd7WaPKQRWnFe9T04D4pglQB0Ti0/dCVHxg8WEVQ8OdcW
...
(
more lines
)
...
9kBmNotUiTpvRM+e7E/zRemhvY9qraFooqMWzi9JrgYfeLfSvvFfGw==
-----END RSA PRIVATE KEY-----
-----BEGIN CERTIFICATE-----
MIID2jCCAsKgAwIBAgIJALKypfV8BItCMA0GCSqGSIb3DQEBBAUAMIGgMQswCQYD
...
(
more lines
)
...
TCQ+tbQ/DOiTXGKx1nlcKoPdkG+QVQVJthlQcpam
-----END CERTIFICATE-----
...
...
@@ -2934,7 +2942,7 @@ TCQ+tbQ/DOiTXGKx1nlcKoPdkG+QVQVJthlQcpam
$w.e
configure -state disabled
label .icrt.plab -anchor w -text
"Paste Certificate here:"
scroll_text .icrt.paste 90 2
5
scroll_text .icrt.paste 90 2
2
button .icrt.cancel -text
"Cancel"
-command
{
destroy .icrt
;
catch
{
raise .c
}}
bind .icrt <Escape>
{
destroy .icrt
;
catch
{
raise .c
}}
...
...
@@ -3050,23 +3058,78 @@ proc get_profiles_dir {} {
}
return
$dir
}
proc
globalize
{}
{
global defs
foreach var
[
array
names defs
]
{
uplevel global
$var
}
}
proc load_include
{
include dir
}
{
global include_vars defs
if
[
info
exists include_vars
]
{
unset include_vars
}
foreach inc
[
split
$include
", "
]
{
set f
[
string
trim
$inc
]
#puts "f=$f"
;
if
{
$f
==
""
}
{
continue
}
set try
""
if
{[
regexp
{
/
}
$f
]
||
[
regexp
{
\\
}
$f
]}
{
set try
$f
;
}
else
{
set try
"
$dir
/
$f
"
}
if
{
!
[
file
exists
$try
]}
{
set try
"
$dir
/
$f.vnc
"
}
#puts "try: $try"
if
[
file
exists
$try
]
{
set fh
""
catch
{
set
fh
[
open
$try
"r"
]}
if
{
$fh
==
""
}
{
continue
}
while
{[
gets
$fh
line
]
> -1
}
{
append inc_str
"
$line
\n
"
if
[
regexp
{
^
([
^=
]
*
)
=
(
.*
)
$
}
$line
m var val
]
{
if
{
!
[
info
exists defs
(
$var
)]}
{
continue
}
if
{
$var
==
"include_list"
}
{
continue
}
set pct 0
if
{
$var
==
"smb_mount_list"
}
{
set pct 1
}
if
{
$var
==
"port_knocking_list"
}
{
set pct 1
}
if
{
$pct
}
{
regsub -all
{
%%%
}
$val
"
\n
"
val
}
if
{
$val
!=
$defs
(
$var
)}
{
#puts "include_vars $var $val"
set include_vars
(
$var
)
$val
}
}
}
catch
{
close
$fh
}
}
}
}
proc
load_profile
{}
{
global env
global mycert svcert crtdir vncdisplay
global use_alpha use_grab use_ssh use_sshssl use_viewonly use_fullscreen use_bgr233
global use_nojpeg use_raise_on_beep use_compresslevel use_quality
global compresslevel_text quality_text
global use_smbmnt use_sound
global use_cups cups_local_server cups_remote_port cups_manage_rcfile
global cups_local_smb_server cups_remote_smb_port
global smb_su_mode smb_mount_list
global change_vncviewer change_vncviewer_path vncviewer_realvnc4
global additional_port_redirs additional_port_redirs_list
global sound_daemon_remote_cmd sound_daemon_remote_port sound_daemon_kill sound_daemon_restart
global sound_daemon_local_cmd sound_daemon_local_port sound_daemon_local_kill sound_daemon_local_start
global use_port_knocking port_knocking_list
global profdone
global vncdisplay
globalize
set dir
[
get_profiles_dir
]
...
...
@@ -3081,107 +3144,70 @@ proc load_profile {} {
set profdone 1
return
}
set str
""
set include
""
while
{[
gets
$fh
line
]
> -1
}
{
append str
"
$line
\n
"
if
[
regexp
{
^include_list=
(
.*
)
$
}
$line
m val
]
{
set include
$val
}
}
close
$fh
if
{
$include
!=
""
}
{
load_include
$include
$dir
}
set_defaults
while
{[
gets
$fh
line
]
> -1
}
{
if
[
regexp
{
^disp=
(
.*
)
$
}
$line
m val
]
{
set vncdisplay
$val
}
else
if
[
regexp
{
^ssh=
(
.*
)
$
}
$line
m val
]
{
set use_ssh
$val
}
else
if
[
regexp
{
^sshssl=
(
.*
)
$
}
$line
m val
]
{
set use_sshssl
$val
}
else
if
[
regexp
{
^viewonly=
(
.*
)
$
}
$line
m val
]
{
set use_viewonly
$val
}
else
if
[
regexp
{
^fullscreen=
(
.*
)
$
}
$line
m val
]
{
set use_fullscreen
$val
}
else
if
[
regexp
{
^belldeiconify=
(
.*
)
$
}
$line
m val
]
{
set use_raise_on_beep
$val
}
else
if
[
regexp
{
^8bit=
(
.*
)
$
}
$line
m val
]
{
set use_bgr233
$val
}
else
if
[
regexp
{
^alpha=
(
.*
)
$
}
$line
m val
]
{
set use_alpha
$val
}
else
if
[
regexp
{
^grab=
(
.*
)
$
}
$line
m val
]
{
set use_grab
$val
}
else
if
[
regexp
{
^nojpeg=
(
.*
)
$
}
$line
m val
]
{
set use_nojpeg
$val
}
else
if
[
regexp
{
^compresslevel=
(
.*
)
$
}
$line
m val
]
{
set use_compresslevel
$val
set compresslevel_text
"Compress Level:
$val
"
}
else
if
[
regexp
{
^quality=
(
.*
)
$
}
$line
m val
]
{
set use_quality
$val
set quality_text
"Quality:
$val
"
}
else
if
[
regexp
{
^mycert=
(
.*
)
$
}
$line
m val
]
{
set mycert
$val
}
else
if
[
regexp
{
^svcert=
(
.*
)
$
}
$line
m val
]
{
set svcert
$val
}
else
if
[
regexp
{
^crtdir=
(
.*
)
$
}
$line
m val
]
{
set crtdir
$val
}
else
if
[
regexp
{
^use_smbmnt=
(
.*
)
$
}
$line
m val
]
{
set use_smbmnt
$val
}
else
if
[
regexp
{
^use_sound=
(
.*
)
$
}
$line
m val
]
{
set use_sound
$val
}
else
if
[
regexp
{
^use_cups=
(
.*
)
$
}
$line
m val
]
{
set use_cups
$val
}
else
if
[
regexp
{
^cups_local_server=
(
.*
)
$
}
$line
m val
]
{
set cups_local_server
$val
}
else
if
[
regexp
{
^cups_remote_port=
(
.*
)
$
}
$line
m val
]
{
set cups_remote_port
$val
}
else
if
[
regexp
{
^cups_local_smb_server=
(
.*
)
$
}
$line
m val
]
{
set cups_local_smb_server
$val
}
else
if
[
regexp
{
^cups_remote_smb_port=
(
.*
)
$
}
$line
m val
]
{
set cups_remote_smb_port
$val
}
else
if
[
regexp
{
^cups_manage_rcfile=
(
.*
)
$
}
$line
m val
]
{
set cups_manage_rcfile
$val
}
else
if
[
regexp
{
^smb_mount_list=
(
.*
)
$
}
$line
m val
]
{
regsub -all
{
%%%
}
$val
"
\n
"
val
set smb_mount_list
$val
}
else
if
[
regexp
{
^smb_su_mode=
(
.*
)
$
}
$line
m val
]
{
set smb_su_mode
$val
}
else
if
[
regexp
{
^port_knocking_list=
(
.*
)
$
}
$line
m val
]
{
regsub -all
{
%%%
}
$val
"
\n
"
val
set port_knocking_list
$val
}
else
if
[
regexp
{
^use_port_knocking=
(
.*
)
$
}
$line
m val
]
{
set use_port_knocking
$val
}
else
if
[
regexp
{
^sound_daemon_remote_cmd=
(
.*
)
$
}
$line
m val
]
{
set sound_daemon_remote_cmd
$val
}
else
if
[
regexp
{
^sound_daemon_remote_port=
(
.*
)
$
}
$line
m val
]
{
set sound_daemon_remote_port
$val
}
else
if
[
regexp
{
^sound_daemon_kill=
(
.*
)
$
}
$line
m val
]
{
set sound_daemon_kill
$val
}
else
if
[
regexp
{
^sound_daemon_restart=
(
.*
)
$
}
$line
m val
]
{
set sound_daemon_restart
$val
}
else
if
[
regexp
{
^sound_daemon_local_cmd=
(
.*
)
$
}
$line
m val
]
{
set sound_daemon_local_cmd
$val
}
else
if
[
regexp
{
^sound_daemon_local_port=
(
.*
)
$
}
$line
m val
]
{
set sound_daemon_local_port
$val
}
else
if
[
regexp
{
^sound_daemon_local_start=
(
.*
)
$
}
$line
m val
]
{
set sound_daemon_local_start
$val
}
else
if
[
regexp
{
^sound_daemon_local_kill=
(
.*
)
$
}
$line
m val
]
{
set sound_daemon_local_kill
$val
}
else
if
[
regexp
{
^change_vncviewer=
(
.*
)
$
}
$line
m val
]
{
set change_vncviewer
$val
}
else
if
[
regexp
{
^change_vncviewer_path=
(
.*
)
$
}
$line
m val
]
{
set change_vncviewer_path
$val
}
else
if
[
regexp
{
^vncviewer_realvnc4=
(
.*
)
$
}
$line
m val
]
{
set vncviewer_realvnc4
$val
}
else
if
[
regexp
{
^additional_port_redirs=
(
.*
)
$
}
$line
m val
]
{
set additional_port_redirs
$val
}
else
if
[
regexp
{
^additional_port_redirs_list=
(
.*
)
$
}
$line
m val
]
{
set additional_port_redirs_list
$val
global include_vars
if
[
info
exists include_vars
]
{
foreach var
[
array
names include_vars
]
{
set
$var
$include
_vars
(
$var
)
}
}
close
$fh
global defs
foreach line
[
split
$str
"
\n
"
]
{
set line
[
string
trim
$line
]
if
[
regexp
{
^#
}
$line
]
{
continue
}
if
[
regexp
{
^
([
^=
]
*
)
=
(
.*
)
$
}
$line
m var val
]
{
if
{
$var
==
"disp"
}
{
set vncdisplay
$val
continue
}
if
[
info
exists defs
(
$var
)]
{
set pct 0
if
{
$var
==
"smb_mount_list"
}
{
set pct 1
}
if
{
$var
==
"port_knocking_list"
}
{
set pct 1
}
if
{
$pct
}
{
regsub -all
{
%%%
}
$val
"
\n
"
val
}
set
$var
$val
}
}
}
set compresslevel_text
"Compress Level:
$use
_compresslevel"
set quality_text
"Quality:
$use
_quality"
set profdone 1
putty_pw_entry check
}
proc
save_profile
{}
{
global env is_windows
global mycert svcert crtdir vncdisplay
global use_alpha use_grab use_ssh use_sshssl use_viewonly use_fullscreen use_bgr233
global use_nojpeg use_raise_on_beep use_compresslevel use_quality
global is_windows
global vncdisplay
global profdone
global include_vars defs
globalize
set dir
[
get_profiles_dir
]
...
...
@@ -3251,64 +3277,38 @@ proc save_profile {} {
puts
$fh
"proxyport=
$proxyport
"
puts
$fh
"disp=
$vncdisplay
"
puts
$fh
"
\n\[
options
\]
"
puts
$fh
"ssh=
$use
_ssh"
puts
$fh
"sshssl=
$use
_sshssl"
puts
$fh
"viewonly=
$use
_viewonly"
puts
$fh
"fullscreen=
$use
_fullscreen"
puts
$fh
"belldeiconify=
$use
_raise_on_beep"
puts
$fh
"8bit=
$use
_bgr233"
puts
$fh
"alpha=
$use
_alpha"
puts
$fh
"grab=
$use
_grab"
puts
$fh
"nojpeg=
$use
_nojpeg"
puts
$fh
"compresslevel=
$use
_compresslevel"
puts
$fh
"quality=
$use
_quality"
puts
$fh
"mycert=
$mycert
"
puts
$fh
"svcert=
$svcert
"
puts
$fh
"crtdir=
$crtdir
"
global use_smbmnt use_sound
puts
$fh
"use_smbmnt=
$use
_smbmnt"
puts
$fh
"use_sound=
$use
_sound"
global use_cups cups_local_server cups_remote_port cups_manage_rcfile
global cups_local_smb_server cups_remote_smb_port
puts
$fh
"use_cups=
$use
_cups"
puts
$fh
"cups_local_server=
$cups
_local_server"
puts
$fh
"cups_remote_port=
$cups
_remote_port"
puts
$fh
"cups_local_smb_server=
$cups
_local_smb_server"
puts
$fh
"cups_remote_smb_port=
$cups
_remote_smb_port"
puts
$fh
"cups_manage_rcfile=
$cups
_manage_rcfile"
global change_vncviewer change_vncviewer_path vncviewer_realvnc4
global additional_port_redirs additional_port_redirs_list
puts
$fh
"change_vncviewer=
$change
_vncviewer"
puts
$fh
"change_vncviewer_path=
$change
_vncviewer_path"
puts
$fh
"vncviewer_realvnc4=
$vncviewer
_realvnc4"
puts
$fh
"additional_port_redirs=
$additional
_port_redirs"
puts
$fh
"additional_port_redirs_list=
$additional
_port_redirs_list"
global sound_daemon_remote_cmd sound_daemon_remote_port sound_daemon_kill sound_daemon_restart
global sound_daemon_local_cmd sound_daemon_local_port sound_daemon_local_kill sound_daemon_local_start
puts
$fh
"sound_daemon_remote_cmd=
$sound
_daemon_remote_cmd"
puts
$fh
"sound_daemon_remote_port=
$sound
_daemon_remote_port"
puts
$fh
"sound_daemon_kill=
$sound
_daemon_kill"
puts
$fh
"sound_daemon_restart=
$sound
_daemon_restart"
puts
$fh
"sound_daemon_local_cmd=
$sound
_daemon_local_cmd"
puts
$fh
"sound_daemon_local_port=
$sound
_daemon_local_port"
puts
$fh
"sound_daemon_local_kill=
$sound
_daemon_local_kill"
puts
$fh
"sound_daemon_local_start=
$sound
_daemon_local_start"
global smb_su_mode smb_mount_list
set list
$smb
_mount_list
regsub -all
"
\n
"
$list
"%%%"
list
puts
$fh
"smb_su_mode=
$smb
_su_mode"
puts
$fh
"smb_mount_list=
$list
"
if
{
$include
_list !=
""
}
{
load_include
$include
_list
[
get_profiles_dir
]
}
global use_port_knocking port_knocking_list
set list
$port
_knocking_list
regsub -all
"
\n
"
$list
"%%%"
list
puts
$fh
"use_port_knocking=
$use
_port_knocking"
puts
$fh
"port_knocking_list=
$list
"
foreach var
[
lsort
[
array
names defs
]]
{
eval set val
\$
$var
set pre
""
if
{
$val
==
$defs
(
$var
)}
{
set pre
"#"
}
set pct 0
if
{
$var
==
"smb_mount_list"
}
{
set pct 1
}
if
{
$var
==
"port_knocking_list"
}
{
set pct 1
}
if
{
$include
_list !=
""
&&
[
info
exists include_vars
(
$var
)]}
{
if
{
$val
==
$include
_vars
(
$var
)}
{
if
{
$pct
}
{
regsub -all
"
\n
"
$val
"%%%"
val
}
puts
$fh
"#from include:
$var
=
$val
"
continue
}
}
if
{
$pct
}
{
regsub -all
"
\n
"
$val
"%%%"
val
}
puts
$fh
"
$pre$var
=
$val
"
}
close
$fh
set profdone 1
...
...
@@ -3539,6 +3539,9 @@ set cmd(1) {
fi
i=`expr
$i
+ 1`
done
echo MY_PID=$$
tty
echo
}
wait_til_ssh_gone
()
{
...
...
@@ -3821,6 +3824,7 @@ set cmd(6) {
echo
echo "
--vnc-helper-exiting--
"
echo
#cat
$0
rm -f
$0
exit 0
};
...
...
@@ -4003,6 +4007,11 @@ proc cups_dialog {} {
env IPP_PORT=6631 firefox
If you can only get Method #2 to work, an extreme application would
be to run the whole desktop, e.g. env IPP_PORT=6631 gnome-session, but
then
you would need some sort of TCP redirector
(
ssh -L comes to mind
)
,
to direct it to 631 when not connected remotely.
Windows/SMB Printers: Under
"Local SMB Print Server"
you can set
a port redirection for a Windows
(
non-CUPS
)
SMB printer. E.g. port
6632 -> localhost:139. If localhost:139 does not work, try IP:139,
...
...
@@ -4011,12 +4020,13 @@ proc cups_dialog {} {
smbspool smb://localhost:6632/lp job user title 1
""
myfile.ps
You could put this in a script,
"myprinter"
. It appears
on the
the URI,
the number of copies
(
"1"
above
)
and the file itself are important.
You could put this in a script,
"myprinter"
. It appears
for
the URI,
only
the number of copies
(
"1"
above
)
and the file itself are important.
(
XXX this might only work for Samba printers...
)
If you have root permission you can configure CUPS to know about this
printer via lpadmin
(
8
)
, etc. You basically give it the smb:// URI.
If you have root or print admin permission you can configure CUPS to
know about this printer via lpadmin
(
8
)
, etc. You basically give it
the smb://... URI.
For more info see: http://www.karlrunge.com/x11vnc/#faq-cups
}
...
...
@@ -4606,7 +4616,6 @@ proc make_share_widgets {w} {
}
if
{
$i
== 0
}
{
global is_win9x
#.smbwiz.f.t insert end
"
\n
No SMB Share Hosts were found!
\n
"
$share
_label configure -text
{
Share Name: No SMB Share Hosts were found!
}
if
{
$is
_win9x
}
{
.smbwiz.f.t insert end
"
\n
(this feature does not work on Win9x you have have to enter them manually: //HOST/share /var/tmp/mymnt)
\n
"
...
...
@@ -4954,10 +4963,7 @@ proc smb_dialog {} {
eval text .smb.mnts -width 80 -height 5
$help
_font
.smb.mnts insert end
$smb
_mount_list
#apply_bg .smb.mnts
button .smb.guess -text
"Help me decide ..."
-command
{
destroy .smb
;
smb_help_me_decide
}
#.smb.guess configure -state disabled
button .smb.cancel -text
"Cancel"
-command
{
set
use_smbmnt 0
;
destroy .smb
}
bind .smb <Escape>
{
set
use_smbmnt 0
;
destroy .smb
}
...
...
@@ -4980,13 +4986,14 @@ proc help_advanced_opts {} {
wm title .ah
"Advanced Opts Help"
set msg
{
These Advanced
settings are experimental options that may require extra
software installed on the VNC server-side
(
the remote server machine
)
and/or on the VNC
client-side
(
where this gui is running
)
.
These Advanced
options that may require extra software installed on
the VNC server-side
(
the remote server machine
)
and/or on the VNC
client-side
(
where this gui is running
)
.
The Service redirection options, CUPS, ESD/ARTSD, and SMB will require
that you use SSH for tunneling so that the -R port redirection will
be enabled for each service. I.e.
"Use SSH instead"
or
"Use SSH and SSL"
that you use SSH for tunneling so that they can use the -R port
redirection will be enabled for each service. I.e.
"Use SSH instead"
or
"Use SSH and SSL"
mode.
These options may also require additional configuration to get them
to work properly. Please submit bug reports if it appears it should
...
...
@@ -5013,16 +5020,17 @@ proc help_advanced_opts {} {
Port Knocking: for
"closed port"
services, first
"knock"
on the
firewall ports in a certain way to open the door for SSH or SSL.
The port can also be closed when the encrypted VNC connection
finishes.
About the CheckButtons:
Ahem, Well....,
a klunky UI: you have to toggle the CheckButton
to pull up the Dialog box a 2nd, etc. time... your settings will
still be there.
Ahem, Well....,
yes quite a klunky UI: you have to toggle the
CheckButton to pull up the Dialog box a 2nd, etc. time... don't
worry your settings will still be there!
}
.ah.f.t insert end
$msg
#raise .ah
}
proc
set_viewer_path
{}
{
...
...
@@ -5153,7 +5161,7 @@ proc port_redir_dialog {} {
}
proc
find_netcat
{}
{
global
env
is_windows
global is_windows
set nc
""
...
...
@@ -5270,7 +5278,7 @@ proc do_port_knock {hp mode} {
}
}
set default_delay 0
set default_delay
15
0
set host
[
string
trim
$hp
]
regsub
{
^.*@
}
$host
""
host
...
...
@@ -5361,12 +5369,12 @@ proc do_port_knock {hp mode} {
}
set udp 0
if
[
regexp
-nocase
{
/
udp
}
$line
]
{
if
[
regexp
-nocase
{
[
/:
]
udp
}
$line
]
{
set udp 1
regsub -all -nocase
{
/
udp
}
$line
" "
line
regsub -all -nocase
{
[
/:
]
udp
}
$line
" "
line
set line
[
string
trim
$line
]
}
regsub -all -nocase
{
/
tcp
}
$line
" "
line
regsub -all -nocase
{
[
/:
]
tcp
}
$line
" "
line
set line
[
string
trim
$line
]
set delay 0
...
...
@@ -5581,9 +5589,10 @@ proc port_knocking_dialog {} {
If you need to send a UDP packet, the netcat
(
aka
"nc"
)
program must be
installed on Unix
(
tcl/tk does not support udp connections
)
. Indicate this
with
"/udp"
following the port number
(
you can also use
"/tcp"
, but since it
is the default it is not necessary
)
. See the example below. For convenience
a Windows netcat binary is supplied.
with
"/udp"
following the port number
(
you can also use
"/tcp"
, but since
it is the default it is not necessary
)
.
(
You can also use
":udp"
to match
the knockd syntax
)
. See the example below. For convenience a Windows netcat
binary is supplied.
The last field,
[
delay
]
, is an optional number of milliseconds to delay
before continuing on to the next knock.
...
...
@@ -5668,7 +5677,7 @@ proc port_knocking_dialog {} {
CMD=... items or at the very end of the knocks to wait
)
.
If a knock entry matches
"delay N"
the default delay is set to
N milliseconds
(
it is 0 initially
)
.
N milliseconds
(
it is
15
0 initially
)
.
One Time Pads:
...
...
@@ -5697,7 +5706,6 @@ proc port_knocking_dialog {} {
eval text .pk.rule -width 80 -height 5
$help
_font
.pk.rule insert end
$port
_knocking_list
#apply_bg .pk.rule
button .pk.cancel -text
"Cancel"
-command
{
set
use_port_knocking 0
;
destroy .pk
}
bind .pk <Escape>
{
set
use_port_knocking 0
;
destroy .pk
}
...
...
@@ -5711,7 +5719,6 @@ proc port_knocking_dialog {} {
proc
set_advanced_options
{}
{
global env
global use_cups use_sound use_smbmnt
global change_vncviewer
global use_port_knocking port_knocking_list
...
...
@@ -5988,12 +5995,20 @@ proc set_options {} {
pack .o.sa -side top -fill x
}
global include_list
frame .o.inc
label .o.inc.l -text
"Include:"
entry .o.inc.e -width 10 -textvariable include_list
pack .o.inc.l -side left
pack .o.inc.e -side right -expand 1 -fill x
button .o.s_prof -text
"Save Profile ..."
-command
{
save_profile
;
raise .o
}
button .o.l_prof -text
" Load Profile ..."
-command
{
load_profile
;
raise .o
}
button .o.advanced -text
"Advanced ..."
-command set_advanced_options
button .o.clear -text
"Clear Options"
-command set_defaults
pack .o.s_prof -side top -fill x
pack .o.l_prof -side top -fill x
pack .o.inc -side top -fill x
pack .o.clear -side top -fill x
pack .o.advanced -side top -fill x
...
...
@@ -6011,6 +6026,7 @@ proc set_options {} {
focus .o
}
global
env
set
is_windows 0
set
help_font
"-font fixed"
if
{
[
regexp
-nocase
{
Windows
}
$tcl
_platform
(
os
)]}
{
...
...
@@ -6061,7 +6077,6 @@ if {![info exists env(SSL_VNC_GUI_CHILD)] || $env(SSL_VNC_GUI_CHILD) == ""} {
center_win .
}
focus .f.e
#raise .
global
system_button_face
set
system_button_face
""
...
...
@@ -6069,7 +6084,6 @@ foreach item [.b.help configure -bg] {
set system_button_face
$item
}
global
env
if
{[
info
exists env
(
SSL_VNC_GUI_CMD
)]}
{
set env
(
SSL_VNC_GUI_CHILD
)
1
bind . <Control-n>
"exec
$env
(SSL_VNC_GUI_CMD) &"
...
...
x11vnc/misc/enhanced_tightvnc_viewer/bin/util/ssl_vncviewer
View file @
b9688bb3
...
...
@@ -95,7 +95,6 @@ VNCVIEWERCMD=${VNCVIEWERCMD:-vncviewer}
# Same for STUNNEL, e.g. set it to /path/to/stunnel or stunnel4, etc.
#
PATH
=
$PATH
:/usr/sbin:/usr/local/sbin:/dist/sbin
;
export
PATH
if
[
"X
$STUNNEL
"
=
"X"
]
;
then
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment