Commit 35c42cf3 authored by runge's avatar runge

Workaround for inane X_ShmAttach incompatibility in Xorg, -solid support in...

Workaround for inane X_ShmAttach incompatibility in Xorg, -solid support in xfce, showrfbauth option.
parent 387e189b
2009-10-17 Karl Runge <runge@karlrunge.com>
* x11vnc: support for -solid option in xfce desktop.
List -Q guess_dbus query. Implement -showrfbauth option.
Workaround for inane X_ShmAttach incompatibility in Xorg.
2009-10-08 Karl Runge <runge@karlrunge.com>
* x11vnc: bcx_xattach/x2x desktop switching facility.
More remote control features: grab_state, ping:mystring,
......
......@@ -2,7 +2,7 @@
Copyright (C) 2002-2009 Karl J. Runge <runge@karlrunge.com>
All rights reserved.
x11vnc README file Date: Wed Oct 7 23:29:05 EDT 2009
x11vnc README file Date: Sat Oct 17 22:21:49 EDT 2009
The following information is taken from these URLs:
......@@ -48,8 +48,8 @@ x11vnc: a VNC server for real X displays
impossible to build on Solaris and had poor performance. The primary
x0rfbserver build problems centered around esoteric C++ toolkits.
x11vnc is written in plain C and needs only standard libraries and so
should work on nearly all Unixes. I also added some enhancements to
improve the interactive response, add many features, and etc.
should work on nearly all Unixes. I also created some enhancements to
improve the interactive response, added many features, etc.
This page including the [22]FAQ contains much information [23][*];
solutions to many problems; and interesting applications, but
......@@ -11689,8 +11689,11 @@ Enhanced TightVNC Viewer (SSVNC: SSL/SSH VNC viewer)
GUI as an enhanced replacement for the xvncviewer, xtightvncviewer,
etc., viewers.
SSVNC also supports the [6]VeNCrypt SSL/TLS extension to VNC (Unix and
Mac OS X only.)
SSVNC also supports the [6]VeNCrypt SSL/TLS and Vino/ANONTLS
extensions to VNC on Unix, Mac OS X, and Windows. Via the provided
SSVNC VeNCrypt bridge, VeNCrypt and ANONTLS encryption also works with
any third party VNC Viewer (e.g. RealVNC, TightVNC, UltraVNC, etc...)
you select via 'Change VNC Viewer'.
The short name for this project is "ssvnc" for SSL/SSH VNC Viewer.
This is the name of the command to start it.
......@@ -11736,14 +11739,21 @@ Enhanced TightVNC Viewer (SSVNC: SSL/SSH VNC viewer)
* Automatic SSH connections from the GUI (system ssh is used on Unix
and MacOS X; bundled plink is used on Windows)
* Ability to Save and Load VNC profiles for different hosts.
* You can also use your own VNC Viewer, e.g. UltraVNC or RealVNC,
with the SSVNC encryption GUI front-end if you like.
* Create or Import SSL Certificates and Private Keys.
* Reverse (viewer listening) VNC connections via SSL and SSH.
* Support for Web [13]Proxies, SOCKS Proxies, and the [14]UltraVNC
* VeNCrypt SSL/TLS VNC encryption support (used by [13]VeNCrypt,
QEMU, ggi, libvirt/virt-manager/xen, vinagre/gvncviewer/gtk-vnc)
* ANONTLS SSL/TLS VNC encryption support (used by Vino)
* VeNCrypt and ANONTLS are also enabled for any 3rd party VNC Viewer
(e.g. RealVNC, TightVNC, UltraVNC ...) on Unix, MacOSX, and
Windows via the provided SSVNC VeNCrypt Viewer Bridge tool (use
'Change VNC Viewer' to select the one you want.)
* Support for Web [14]Proxies, SOCKS Proxies, and the [15]UltraVNC
repeater proxy (e.g. repeater://host:port+ID:1234). Multiple
proxies may be chained together (3 max).
* Support for SSH Gateway connections and non-standard SSH ports.
* You can also use your own VNC Viewer, e.g. UltraVNC or RealVNC,
with the SSVNC encryption GUI front-end if you like.
* Automatic Service tunnelling via SSH for CUPS and SMB Printing,
ESD/ARTSD Audio, and SMB (Windows/Samba) filesystem mounting.
* Sets up any additional SSH port redirections that you want.
......@@ -11757,33 +11767,30 @@ Enhanced TightVNC Viewer (SSVNC: SSL/SSH VNC viewer)
* Support for native MacOS X usage with bundled Chicken of the VNC
viewer (the Unix X11 viewer is also provided for MacOS X, and is
better IMHO. It is now the default on MacOS X.)
* [15]Dynamic VNC Server Port determination and redirection (using
* [16]Dynamic VNC Server Port determination and redirection (using
ssh's builtin SOCKS proxy, ssh -D) for servers like x11vnc that
print out PORT= at startup.
* Unix Username and Password entry for use with "x11vnc -unixpw"
type login dialogs.
* Simplified mode launched by command "[16]sshvnc" that is SSH Only.
* Simplified mode launched by command "[17]tsvnc" that provides a
* Simplified mode launched by command "[17]sshvnc" that is SSH Only.
* Simplified mode launched by command "[18]tsvnc" that provides a
VNC "Terminal Services" mode (uses x11vnc on the remote side).
[18]Unix TightVNC Viewer improvements (these only apply to the Unix
[19]Unix TightVNC Viewer improvements (these only apply to the Unix
VNC viewer, including Mac OS X):
* rfbNewFBSize VNC support (dynamic screen resizing)
* Client-side Scaling of the Desktop in the viewer.
* ZRLE VNC encoding support (RealVNC's encoding)
* Support for the ZYWRLE encoding, a wavelet based extension to ZRLE
to improve compression of motion video and photo regions.
* [19]TurboVNC support ([20]VirtualGL's modified TightVNC encoding;
* [20]TurboVNC support ([21]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 [21]alphablending with x11vnc at 32bpp (-alpha option)
* Cursor [22]alphablending with x11vnc at 32bpp (-alpha option)
* Option "-unixpw ..." for use with "x11vnc -unixpw" type login
dialogs.
* VeNCrypt SSL/TLS VNC encryption support (used by [22]VeNCrypt,
QEMU, ggi, libvirt/virt-manager/xen, vinagre/gvncviewer/gtk-vnc)
* ANONTLS SSL/TLS VNC encryption support (used by vino)
* Support for UltraVNC extensions: 1/n Server side scaling, Text
Chat, Single Window, Disable Server-side Input. Both UltraVNC and
x11vnc servers support these extensions.
......@@ -12717,16 +12724,16 @@ References
10. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#source
11. http://www.debian.org/security/2008/dsa-1571
12. http://www.karlrunge.com/x11vnc/ssvnc_untrusted_local_users.html
13. http://www.karlrunge.com/x11vnc/ssvnc-proxies.html
14. http://www.uvnc.com/addons/repeater.html
15. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#dynamic-port
16. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#sshvnc
17. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#tsvnc
18. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#unix-patches
19. http://www.karlrunge.com/x11vnc/faq.html#faq-turbovnc
20. http://www.virtualgl.org/
21. http://www.karlrunge.com/x11vnc/faq.html#faq-xfixes-alpha-hacks
22. http://sourceforge.net/projects/vencrypt/
13. http://sourceforge.net/projects/vencrypt/
14. http://www.karlrunge.com/x11vnc/ssvnc-proxies.html
15. http://www.uvnc.com/addons/repeater.html
16. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#dynamic-port
17. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#sshvnc
18. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#tsvnc
19. http://www.karlrunge.com/x11vnc/enhanced_tightvnc_viewer.html#unix-patches
20. http://www.karlrunge.com/x11vnc/faq.html#faq-turbovnc
21. http://www.virtualgl.org/
22. http://www.karlrunge.com/x11vnc/faq.html#faq-xfixes-alpha-hacks
23. http://www.uvnc.com/addons/repeater.html
24. http://www.uvnc.com/addons/singleclick.html
25. http://www.uvnc.com/features/encryption.html
......@@ -12795,7 +12802,7 @@ x11vnc: a VNC server for real X displays
Here are all of x11vnc command line options:
% x11vnc -opts (see below for -help long descriptions)
x11vnc: allow VNC connections to real X11 displays. 0.9.9 lastmod: 2009-10-07
x11vnc: allow VNC connections to real X11 displays. 0.9.9 lastmod: 2009-10-15
x11vnc options:
-display disp -auth file -N
......@@ -12815,79 +12822,79 @@ x11vnc options:
-allow host1[,host2..] -localhost -nolookup
-input string -grabkbd -grabptr
-grabalways -viewpasswd string -passwdfile filename
-unixpw [list] -unixpw_nis [list] -unixpw_cmd cmd
-find -finddpy -listdpy
-create -xdummy -xvnc
-xvnc_redirect -svc -svc_xdummy
-svc_xvnc -xdmsvc -sshxdmsvc
-unixpw_system_greeter -redirect port -display WAIT:...
-vencrypt mode -anontls mode -sslonly
-dhparams file -nossl -ssl [pem]
-ssltimeout n -sslnofail -ssldir [dir]
-sslverify [path] -sslCRL path -sslGenCA [dir]
-sslGenCert type name -sslEncKey [pem] -sslCertInfo [pem]
-sslDelCert [pem] -stunnel [pem] -stunnel3 [pem]
-enc cipher:keyfile -https [port] -httpsredir [port]
-http_oneport -ssh user@host:disp -usepw
-storepasswd pass file -nopw -accept string
-afteraccept string -gone string -users list
-noshm -flipbyteorder -onetile
-solid [color] -blackout string -xinerama
-noxinerama -xtrap -xrandr [mode]
-rotate string -padgeom WxH -o logfile
-flag file -rmflag file -rc filename
-norc -env VAR=VALUE -prog /path/to/x11vnc
-h, -help -?, -opts -V, -version
-license -dbg -q, -quiet
-v, -verbose -bg -modtweak
-nomodtweak -xkb -noxkb
-capslock -skip_lockkeys -noskip_lockkeys
-skip_keycodes string -sloppy_keys -skip_dups
-noskip_dups -add_keysyms -noadd_keysyms
-clear_mods -clear_keys -clear_all
-remap string -norepeat -repeat
-nofb -nobell -nosel
-noprimary -nosetprimary -noclipboard
-nosetclipboard -seldir string -cursor [mode]
-nocursor -cursor_drag -arrow n
-noxfixes -alphacut n -alphafrac fraction
-alpharemove -noalphablend -nocursorshape
-cursorpos -nocursorpos -xwarppointer
-noxwarppointer -buttonmap string -nodragging
-ncache n -ncache_cr -ncache_no_moveraise
-ncache_no_dtchange -ncache_no_rootpixmap -ncache_keep_anims
-ncache_old_wm -ncache_pad n -debug_ncache
-wireframe [str] -nowireframe -nowireframelocal
-wirecopyrect mode -nowirecopyrect -debug_wireframe
-scrollcopyrect mode -noscrollcopyrect -scr_area n
-scr_skip list -scr_inc list -scr_keys list
-scr_term list -scr_keyrepeat lo-hi -scr_parms string
-fixscreen string -debug_scroll -noxrecord
-grab_buster -nograb_buster -debug_grabs
-debug_sel -pointer_mode n -input_skip n
-allinput -speeds rd,bw,lat -wmdt string
-debug_pointer -debug_keyboard -defer time
-wait time -extra_fbur n -wait_ui factor
-setdefer n -nowait_bog -slow_fb time
-xrefresh time -nap -nonap
-sb time -readtimeout n -ping n
-nofbpm -fbpm -nodpms
-dpms -forcedpms -clientdpms
-noserverdpms -noultraext -chatwindow
-noxdamage -xd_area A -xd_mem f
-sigpipe string -threads -nothreads
-fs f -gaps n -grow n
-fuzz n -debug_tiles -snapfb
-rawfb string -freqtab file -pipeinput cmd
-macnodim -macnosleep -macnosaver
-macnowait -macwheel n -macnoswap
-macnoresize -maciconanim n -macmenu
-macuskbd -gui [gui-opts] -remote command
-query variable -QD variable -sync
-query_retries str -remote_prefix str -noremote
-yesremote -unsafe -safer
-privremote -nocmds -allowedcmds list
-deny_all
-showrfbauth filename -unixpw [list] -unixpw_nis [list]
-unixpw_cmd cmd -find -finddpy
-listdpy -create -xdummy
-xvnc -xvnc_redirect -svc
-svc_xdummy -svc_xvnc -xdmsvc
-sshxdmsvc -unixpw_system_greeter -redirect port
-display WAIT:... -vencrypt mode -anontls mode
-sslonly -dhparams file -nossl
-ssl [pem] -ssltimeout n -sslnofail
-ssldir [dir] -sslverify [path] -sslCRL path
-sslGenCA [dir] -sslGenCert type name -sslEncKey [pem]
-sslCertInfo [pem] -sslDelCert [pem] -stunnel [pem]
-stunnel3 [pem] -enc cipher:keyfile -https [port]
-httpsredir [port] -http_oneport -ssh user@host:disp
-usepw -storepasswd pass file -nopw
-accept string -afteraccept string -gone string
-users list -noshm -flipbyteorder
-onetile -solid [color] -blackout string
-xinerama -noxinerama -xtrap
-xrandr [mode] -rotate string -padgeom WxH
-o logfile -flag file -rmflag file
-rc filename -norc -env VAR=VALUE
-prog /path/to/x11vnc -h, -help -?, -opts
-V, -version -license -dbg
-q, -quiet -v, -verbose -bg
-modtweak -nomodtweak -xkb
-noxkb -capslock -skip_lockkeys
-noskip_lockkeys -skip_keycodes string -sloppy_keys
-skip_dups -noskip_dups -add_keysyms
-noadd_keysyms -clear_mods -clear_keys
-clear_all -remap string -norepeat
-repeat -nofb -nobell
-nosel -noprimary -nosetprimary
-noclipboard -nosetclipboard -seldir string
-cursor [mode] -nocursor -cursor_drag
-arrow n -noxfixes -alphacut n
-alphafrac fraction -alpharemove -noalphablend
-nocursorshape -cursorpos -nocursorpos
-xwarppointer -noxwarppointer -buttonmap string
-nodragging -ncache n -ncache_cr
-ncache_no_moveraise -ncache_no_dtchange -ncache_no_rootpixmap
-ncache_keep_anims -ncache_old_wm -ncache_pad n
-debug_ncache -wireframe [str] -nowireframe
-nowireframelocal -wirecopyrect mode -nowirecopyrect
-debug_wireframe -scrollcopyrect mode -noscrollcopyrect
-scr_area n -scr_skip list -scr_inc list
-scr_keys list -scr_term list -scr_keyrepeat lo-hi
-scr_parms string -fixscreen string -debug_scroll
-noxrecord -grab_buster -nograb_buster
-debug_grabs -debug_sel -pointer_mode n
-input_skip n -allinput -speeds rd,bw,lat
-wmdt string -debug_pointer -debug_keyboard
-defer time -wait time -extra_fbur n
-wait_ui factor -setdefer n -nowait_bog
-slow_fb time -xrefresh time -nap
-nonap -sb time -readtimeout n
-ping n -nofbpm -fbpm
-nodpms -dpms -forcedpms
-clientdpms -noserverdpms -noultraext
-chatwindow -noxdamage -xd_area A
-xd_mem f -sigpipe string -threads
-nothreads -fs f -gaps n
-grow n -fuzz n -debug_tiles
-snapfb -rawfb string -freqtab file
-pipeinput cmd -macnodim -macnosleep
-macnosaver -macnowait -macwheel n
-macnoswap -macnoresize -maciconanim n
-macmenu -macuskbd -gui [gui-opts]
-remote command -query variable -QD variable
-sync -query_retries str -remote_prefix str
-noremote -yesremote -unsafe
-safer -privremote -nocmds
-allowedcmds list -deny_all
libvncserver options:
-rfbport port TCP port for RFB protocol
......@@ -12921,7 +12928,7 @@ libvncserver-tight-extension options:
% x11vnc -help
x11vnc: allow VNC connections to real X11 displays. 0.9.9 lastmod: 2009-10-07
x11vnc: allow VNC connections to real X11 displays. 0.9.9 lastmod: 2009-10-15
(type "x11vnc -opts" to just list the options.)
......@@ -13642,6 +13649,9 @@ Options:
and last line be "__BEGIN_VIEWONLY__" to have 2
full-access passwords)
-showrfbauth filename Print to the screen the obscured VNC password kept in
the rfbauth file "filename" and then exit.
-unixpw [list] Use Unix username and password authentication. x11vnc
will use the su(1) program to verify the user's
password. [list] is an optional comma separated list
......@@ -15438,15 +15448,18 @@ t
e.g. "darkblue" or numerical "#RRGGBB").
Currently this option only works on GNOME, KDE, CDE,
and classic X (i.e. with the background image on the
root window). The "gconftool-2" and "dcop" external
commands are run for GNOME and KDE respectively.
Other desktops won't work, e.g. Xfce (send us the
corresponding commands if you find them). If x11vnc is
running as root (inetd(8) or gdm(1)), the -users option
may be needed for GNOME and KDE. If x11vnc guesses
your desktop incorrectly, you can force it by prefixing
color with "gnome:", "kde:", "cde:" or "root:".
XFCE, and classic X (i.e. with the background image
on the root window). The "gconftool-2", "dcop"
and "xfconf-query" external commands are run for
GNOME, KDE, and XFCE respectively. This also works
on native MacOSX. (There is no color selection for
MacOSX or XFCE.) Other desktops won't work, (send
us the corresponding commands if you find them).
If x11vnc is running as root (inetd(8) or gdm(1)),
the -users option may be needed for GNOME, KDE, XFCE.
If x11vnc guesses your desktop incorrectly, you can
force it by prefixing color with "gnome:", "kde:",
"cde:", "xfce:", or "root:".
This mode works in a limited way on the Mac OS X Console
with one color ('kelp') using the screensaver writing
......@@ -17951,9 +17964,9 @@ n
macnomenu nomacmenu macuskbd nomacuskbd noremote
aro= noop display vncdisplay autoport loop loopbg
desktopname guess_desktop http_url auth xauth
users rootshift clipshift scale_str scaled_x
scaled_y scale_numer scale_denom scale_fac_x
desktopname guess_desktop guess_dbus http_url
auth xauth users rootshift clipshift scale_str
scaled_x scaled_y scale_numer scale_denom scale_fac_x
scale_fac_y scaling_blend scaling_nomult4 scaling_pad
scaling_interpolate inetd privremote unsafe safer
nocmds passwdfile unixpw unixpw_nis unixpw_list ssl
......
......@@ -276,6 +276,13 @@ int trap_getimage_xerror(Display *d, XErrorEvent *error) {
return 0;
}
/* Are silly Xorg people removing X_ShmAttach from XShm.h? */
/* INDEED! What stupid, myopic morons... */
/* Maintenance Monkeys busy typing at their keyboards... */
#ifndef X_ShmAttach
#define X_ShmAttach 1
#endif
static int Xerror(Display *d, XErrorEvent *error) {
X_UNLOCK;
......
......@@ -781,6 +781,9 @@ void print_help(int mode) {
" and last line be \"__BEGIN_VIEWONLY__\" to have 2\n"
" full-access passwords)\n"
"\n"
"-showrfbauth filename Print to the screen the obscured VNC password kept in\n"
" the rfbauth file \"filename\" and then exit.\n"
"\n"
"-unixpw [list] Use Unix username and password authentication. x11vnc\n"
" will use the su(1) program to verify the user's\n"
" password. [list] is an optional comma separated list\n"
......@@ -2576,15 +2579,18 @@ void print_help(int mode) {
" e.g. \"darkblue\" or numerical \"#RRGGBB\").\n"
"\n"
" Currently this option only works on GNOME, KDE, CDE,\n"
" and classic X (i.e. with the background image on the\n"
" root window). The \"gconftool-2\" and \"dcop\" external\n"
" commands are run for GNOME and KDE respectively.\n"
" Other desktops won't work, e.g. Xfce (send us the\n"
" corresponding commands if you find them). If x11vnc is\n"
" running as root (inetd(8) or gdm(1)), the -users option\n"
" may be needed for GNOME and KDE. If x11vnc guesses\n"
" your desktop incorrectly, you can force it by prefixing\n"
" color with \"gnome:\", \"kde:\", \"cde:\" or \"root:\".\n"
" XFCE, and classic X (i.e. with the background image\n"
" on the root window). The \"gconftool-2\", \"dcop\"\n"
" and \"xfconf-query\" external commands are run for\n"
" GNOME, KDE, and XFCE respectively. This also works\n"
" on native MacOSX. (There is no color selection for\n"
" MacOSX or XFCE.) Other desktops won't work, (send\n"
" us the corresponding commands if you find them).\n"
" If x11vnc is running as root (inetd(8) or gdm(1)),\n"
" the -users option may be needed for GNOME, KDE, XFCE.\n"
" If x11vnc guesses your desktop incorrectly, you can\n"
" force it by prefixing color with \"gnome:\", \"kde:\",\n"
" \"cde:\", \"xfce:\", or \"root:\".\n"
"\n"
" This mode works in a limited way on the Mac OS X Console\n"
" with one color ('kelp') using the screensaver writing\n"
......@@ -5094,9 +5100,9 @@ void print_help(int mode) {
" macnomenu nomacmenu macuskbd nomacuskbd noremote\n"
"\n"
" aro= noop display vncdisplay autoport loop loopbg\n"
" desktopname guess_desktop http_url auth xauth\n"
" users rootshift clipshift scale_str scaled_x\n"
" scaled_y scale_numer scale_denom scale_fac_x\n"
" desktopname guess_desktop guess_dbus http_url\n"
" auth xauth users rootshift clipshift scale_str\n"
" scaled_x scaled_y scale_numer scale_denom scale_fac_x\n"
" scale_fac_y scaling_blend scaling_nomult4 scaling_pad\n"
" scaling_interpolate inetd privremote unsafe safer\n"
" nocmds passwdfile unixpw unixpw_nis unixpw_list ssl\n"
......
......@@ -735,6 +735,100 @@ static void solid_gnome(char *color) {
#endif /* NO_X11 */
}
static void solid_xfce(char *color) {
#if NO_X11
RAWFB_RET_VOID
if (!color) {}
return;
#else
char get_image_show[] = "%s xfconf-query -v -c xfce4-desktop -p /backdrop/screen0/monitor0/image-show";
char set_image_show[] = "%s xfconf-query -v -c xfce4-desktop -p /backdrop/screen0/monitor0/image-show -s '%s'";
char get_color_style[] = "%s xfconf-query -v -c xfce4-desktop -p /backdrop/screen0/monitor0/color-style";
char set_color_style[] = "%s xfconf-query -v -c xfce4-desktop -p /backdrop/screen0/monitor0/color-style -s '%s'";
static char *orig_image_show = NULL;
static char *orig_color_style = NULL;
char *cmd, *dbus = "";
RAWFB_RET_VOID
dbus = dbus_session();
rfbLog("guessed dbus: %s\n", dbus);
if (! color) {
if (! orig_image_show) {
orig_image_show = strdup("true");
}
if (! orig_color_style) {
orig_color_style = strdup("0");
}
if (strstr(orig_image_show, "'") != NULL) {
rfbLog("invalid image show: %s\n", orig_image_show);
return;
}
if (strstr(orig_color_style, "'") != NULL) {
rfbLog("invalid color style: %s\n", orig_color_style);
return;
}
cmd = (char *) malloc(strlen(set_image_show) - 2 + strlen(orig_image_show) + strlen(dbus) + 1);
sprintf(cmd, set_image_show, dbus, orig_image_show);
dt_cmd(cmd);
free(cmd);
cmd = (char *) malloc(strlen(set_color_style) - 2 + strlen(orig_color_style) + strlen(dbus) + 1);
sprintf(cmd, set_color_style, dbus, orig_color_style);
dt_cmd(cmd);
free(cmd);
return;
}
if (! orig_image_show) {
char *q;
if (cmd_ok("dt")) {
cmd = (char *) malloc(strlen(get_image_show) + strlen(dbus) + 1);
sprintf(cmd, get_image_show, dbus);
orig_image_show = strdup(cmd_output(cmd));
free(cmd);
}
if (*orig_image_show == '\0') {
orig_image_show = strdup("true");
}
if ((q = strchr(orig_image_show, '\n')) != NULL) {
*q = '\0';
}
}
if (! orig_color_style) {
char *q;
if (cmd_ok("dt")) {
cmd = (char *) malloc(strlen(get_color_style) + strlen(dbus) + 1);
sprintf(cmd, get_color_style, dbus);
orig_color_style = strdup(cmd_output(cmd));
free(cmd);
}
if (*orig_color_style == '\0') {
orig_color_style = strdup("0");
}
if ((q = strchr(orig_color_style, '\n')) != NULL) {
*q = '\0';
}
}
if (strstr(color, "'") != NULL) {
rfbLog("invalid color: %s\n", color);
return;
}
cmd = (char *) malloc(strlen(set_color_style) + strlen("0") + strlen(dbus) + 1);
sprintf(cmd, set_color_style, dbus, "0");
dt_cmd(cmd);
free(cmd);
cmd = (char *) malloc(strlen(set_image_show) + strlen("false") + strlen(dbus) + 1);
sprintf(cmd, set_image_show, dbus, "false");
dt_cmd(cmd);
free(cmd);
#endif /* NO_X11 */
}
static char *dcop_session(void) {
char *empty = strdup("");
#if NO_X11
......@@ -1219,6 +1313,8 @@ void solid_bg(int restore) {
solid_kde(NULL);
} else if (desktop == 3) {
solid_cde(NULL);
} else if (desktop == 4) {
solid_xfce(NULL);
}
solid_on = 0;
return;
......@@ -1240,6 +1336,8 @@ void solid_bg(int restore) {
dtname = "kde";
} else if (strstr(solid_str, "cde:") == solid_str) {
dtname = "cde";
} else if (strstr(solid_str, "xfce:") == solid_str) {
dtname = "xfce";
} else {
dtname = "root";
}
......@@ -1268,6 +1366,9 @@ void solid_bg(int restore) {
} else if (!strcmp(dtname, "cde")) {
desktop = 3;
solid_cde(color);
} else if (!strcmp(dtname, "xfce")) {
desktop = 4;
solid_xfce(color);
} else {
desktop = 0;
solid_root(color);
......
......@@ -3639,8 +3639,8 @@ void accept_openssl(int mode, int presock) {
wrote_cookie:
ssl_xfer(vncsock, s_in, s_out, 0);
rfbLog("SSL: ssl_helper[%d]: exit case 7 (ssl_xfer done)\n", getpid());
if (0) usleep(50 * 1000);
exit(0);
}
/* parent here */
......
......@@ -2,7 +2,7 @@
.TH X11VNC "1" "October 2009" "x11vnc " "User Commands"
.SH NAME
x11vnc - allow VNC connections to real X11 displays
version: 0.9.9, lastmod: 2009-10-07
version: 0.9.9, lastmod: 2009-10-15
.SH SYNOPSIS
.B x11vnc
[OPTION]...
......@@ -868,6 +868,11 @@ used to have viewonly passwords. (tip: make the 3rd
and last line be "__BEGIN_VIEWONLY__" to have 2
full-access passwords)
.PP
\fB-showrfbauth\fR \fIfilename\fR
.IP
Print to the screen the obscured VNC password kept in
the rfbauth file \fIfilename\fR and then exit.
.PP
\fB-unixpw\fR \fI[list]\fR
.IP
Use Unix username and password authentication. x11vnc
......@@ -2856,19 +2861,22 @@ For a different one specify the X color (rgb.txt name,
e.g. "darkblue" or numerical "#RRGGBB").
.IP
Currently this option only works on GNOME, KDE, CDE,
and classic X (i.e. with the background image on the
root window). The "gconftool-2" and "dcop" external
commands are run for GNOME and KDE respectively.
Other desktops won't work, e.g. Xfce (send us the
corresponding commands if you find them). If x11vnc is
running as root (
XFCE, and classic X (i.e. with the background image
on the root window). The "gconftool-2", "dcop"
and "xfconf-query" external commands are run for
GNOME, KDE, and XFCE respectively. This also works
on native MacOSX. (There is no color selection for
MacOSX or XFCE.) Other desktops won't work, (send
us the corresponding commands if you find them).
If x11vnc is running as root (
.IR inetd (8)
or
.IR gdm (1)
), the \fB-users\fR option
may be needed for GNOME and KDE. If x11vnc guesses
your desktop incorrectly, you can force it by prefixing
color with "gnome:", "kde:", "cde:" or "root:".
),
the \fB-users\fR option may be needed for GNOME, KDE, XFCE.
If x11vnc guesses your desktop incorrectly, you can
force it by prefixing color with "gnome:", "kde:",
"cde:", "xfce:", or "root:".
.IP
This mode works in a limited way on the Mac OS X Console
with one color ('kelp') using the screensaver writing
......@@ -6045,9 +6053,9 @@ macnoresize macresize nomacnoresize maciconanim macmenu
macnomenu nomacmenu macuskbd nomacuskbd noremote
.IP
aro= noop display vncdisplay autoport loop loopbg
desktopname guess_desktop http_url auth xauth
users rootshift clipshift scale_str scaled_x
scaled_y scale_numer scale_denom scale_fac_x
desktopname guess_desktop guess_dbus http_url
auth xauth users rootshift clipshift scale_str
scaled_x scaled_y scale_numer scale_denom scale_fac_x
scale_fac_y scaling_blend scaling_nomult4 scaling_pad
scaling_interpolate inetd privremote unsafe safer
nocmds passwdfile unixpw unixpw_nis unixpw_list ssl
......
......@@ -2791,6 +2791,19 @@ int main(int argc, char* argv[]) {
}
continue;
}
if (!strcmp(arg, "-showrfbauth")) {
if (argc >= i+2) {
char *f = argv[i+1];
char *s = rfbDecryptPasswdFromFile(f);
if (!s) {
fprintf(stderr, "rfbDecryptPasswdFromFile failed: %s\n", f);
exit(1);
}
fprintf(stdout, "rfbDecryptPasswdFromFile file: %s\n", f);
fprintf(stdout, "rfbDecryptPasswdFromFile pass: %s\n", s);
}
exit(0);
}
if (!strcmp(arg, "-accept")) {
CHECK_ARGC
accept_cmd = strdup(argv[++i]);
......
......@@ -47,7 +47,7 @@ int xtrap_base_event_type = 0;
int xdamage_base_event_type = 0;
/* date +'lastmod: %Y-%m-%d' */
char lastmod[] = "0.9.9 lastmod: 2009-10-07";
char lastmod[] = "0.9.9 lastmod: 2009-10-15";
/* X display info */
......
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