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
338301c1
Commit
338301c1
authored
Aug 04, 2007
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
x11vnc: -xrefresh, .DCOPserver bug, -unixpw_unsafe ignores SSH tunnel.
parent
0f162f1f
Changes
13
Hide whitespace changes
Inline
Side-by-side
Showing
13 changed files
with
205 additions
and
88 deletions
+205
-88
ChangeLog
x11vnc/ChangeLog
+5
-0
README
x11vnc/README
+77
-60
help.c
x11vnc/help.c
+16
-9
options.c
x11vnc/options.c
+1
-0
options.h
x11vnc/options.h
+1
-0
remote.c
x11vnc/remote.c
+14
-0
solid.c
x11vnc/solid.c
+23
-2
tkx11vnc
x11vnc/tkx11vnc
+2
-0
tkx11vnc.h
x11vnc/tkx11vnc.h
+2
-0
x11vnc.1
x11vnc/x11vnc.1
+24
-11
x11vnc.c
x11vnc/x11vnc.c
+13
-5
x11vnc_defs.c
x11vnc/x11vnc_defs.c
+1
-1
xevents.c
x11vnc/xevents.c
+26
-0
No files found.
x11vnc/ChangeLog
View file @
338301c1
2007-08-03 Karl Runge <runge@karlrunge.com>
* x11vnc: add -xrefresh option, fix KDE .DCOPserver parse bug,
make sure UNIXPW_DISABLE_LOCALHOST/-unixpw_unsafe ignore
any SSH tunnel that would imply -localhost.
2007-07-04 Karl Runge <runge@karlrunge.com>
* x11vnc: -debug_ncache, fix big fonts in tkx11vnc.
...
...
x11vnc/README
View file @
338301c1
x11vnc
README
file
Date
:
Tue
Jul
3
14
:
37
:
44
EDT
2007
x11vnc
README
file
Date
:
Fri
Aug
3
17
:
26
:
56
EDT
2007
The
following
information
is
taken
from
these
URLs
:
...
...
@@ -43,10 +43,12 @@ x11vnc: a VNC server for real X displays
should
work
on
nearly
all
Unixes
.
I
also
added
some
enhancements
to
improve
the
interactive
response
,
add
many
features
,
etc
.
This
page
and
the
[
19
]
FAQ
contain
a
lot
of
information
[
20
][*],
solutions
to
many
problems
,
and
interesting
applications
,
but
This
page
including
the
[
19
]
FAQ
contains
much
information
[
20
][*];
solutions
to
many
problems
;
and
interesting
applications
,
but
nevertheless
please
feel
free
to
[
21
]
contact
me
if
you
have
problems
or
questions
.
or
questions
.
Please
do
check
the
FAQ
;
I
realize
this
page
is
massive
,
but
you
can
often
use
your
browser
's find-in-page action to find the
discussion of your problem or question.
Please help [22]beta test the new performance speedup feature using
[23]viewer-side pixel caching. Let me know how it goes; thanks.
...
...
@@ -4383,30 +4385,37 @@ xprop -root -f VNC_CONNECT 8s -set VNC_CONNECT "$1"
You
can
,
but
you
would
not
be
doing
this
for
performance
reasons
(
for
virtual
X
sessions
via
VNC
,
Xvnc
should
give
the
fastest
response
).
You may want to do this because Xvnc
does not support an X server
extension you desire, or you want to take advantage of one of x11vnc'
s
unending
number
of
options
and
features
.
You
may
want
to
do
this
because
Xvnc
is
buggy
and
crashes
,
does
not
support
an
X
server
extension
you
desire
,
or
you
want
to
take
advantage
of
one
of
x11vnc
's
unending number of options and features.
One way to acheive this is to have a Xvfb(1) virtual framebuffer X
server running in the background and have x11vnc attached to it.
Another
method
,
faster
and
more
accurate
is
to
use
the
"dummy"
Device
Driver
in
XFree86
/
Xorg
(
see
below
).
One
could
view
this
desktop
both
remotely
and
also
[
567
]
locally
using
vncviewer
.
Make
sure
vncviewer
's
"-encodings raw" is in effect for local viewing (compression seems to
slow things down locally). For local viewing you set up a "bare"
window manager that just starts up vncviewer and nothing else
([568]See below).
Another method, faster and more accurate, is to use the "dummy" Device
Driver in XFree86/Xorg (see below).
In either case, one can view this desktop both remotely and also
[567]locally using vncviewer. Make sure vncviewer'
s
"-encodings raw"
is
in
effect
for
local
viewing
(
compression
seems
to
slow
things
down
locally
).
For
local
viewing
you
set
up
a
"bare"
window
manager
that
just
starts
up
vncviewer
and
nothing
else
([
568
]
See
how
below
).
Here
is
one
way
to
start
up
Xvfb
:
xinit
--
/
usr
/
X11R6
/
bin
/
Xvfb
:
1
-
cc
4
-
screen
0
1024
x768x16
This
starts
up
a
16
bpp
virtual
display
.
To
export
it
via
VNC
use
"x11vnc -display :1 ...". The "-cc 4" option is to force Xvfb to use a
TrueColor visual instead of DirectColor.
x11vnc
-
display
:
1
...
Then
have
the
remote
vncviewer
attach
to
x11vnc
's VNC display (e.g. :0
which is port 5900).
The "-cc 4" Xvfb option is to force it to use a TrueColor visual
instead of DirectColor (this works around a recent bug in the Xorg
Xvfb server).
One good thing about Xvfb is that the virtual framebuffer exists in
main memory (rather than in the video hardware), and so x11vnc can
"screen scrape" it efficiently (more than, say, 100X faster than
"screen scrape" it
very
efficiently (more than, say, 100X faster than
normal video hardware).
Update Nov/2006: See the [569]FINDCREATEDISPLAY discussion of the
...
...
@@ -4419,7 +4428,7 @@ xprop -root -f VNC_CONNECT 8s -set VNC_CONNECT "$1"
[572]-create, [573]-svc, and [574]-xdmsvc aliases can also come in
handy here.
There are some annoyances WRT Xvfb
though
. The default keyboard
There are some annoyances WRT Xvfb
however
. The default keyboard
mapping seems to be very poor. One should run x11vnc with
[575]-add_keysyms option to have keysyms added automatically. Also, to
add the Shift_R and Control_R modifiers something like this is needed:
...
...
@@ -4434,17 +4443,17 @@ xmodmap -e "keycode any = Meta_L"
xmodmap -e "add Mod1 = Alt_L Alt_R Meta_L"
(note: these are applied automatically in the [576]FINDCREATEDISPLAY
mode
). Perhaps the Xvfb options -xkbdb or -xkbmap could be used to get
a better default keyboard mapping
.
A user points out a faster and more accurate method is to use the
"dummy" Device Driver of XFree86/Xorg instead of Xvfb. He uses this to
create a persistent and resizable desktop accessible from anywhere. In
the Device Section of the config file set Driver "dummy". You may also
need to set VideoRam NNN to be large enough to hold the framebuffer.
The framebuffer is kept in main memory like Xvfb except that the
server code is closely correlated with the real XFree86/Xorg Xserver
unlike Xvfb.
mode
of x11vnc). Perhaps the Xvfb options -xkbdb or -xkbmap could be
used to get a better default keyboard mapping..
.
Dummy Driver: A user points out a faster and more accurate method is
to use the "dummy" Device Driver of XFree86/Xorg instead of Xvfb. He
uses this to create a persistent and resizable desktop accessible from
anywhere. In the Device Section of the config file set Driver "dummy".
You may also need to set VideoRam NNN to be large enough to hold the
framebuffer. The framebuffer is kept in main memory like Xvfb except
that the server code is closely correlated with the real XFree86/Xorg
Xserver
unlike Xvfb.
The main drawback to this method (besides requiring extra
configuration and possibly root permission) is that it also does the
...
...
@@ -4471,9 +4480,10 @@ startx -- /path/to/Xdummy :1
other
virtual
X
sessions
,
say
Xnest
or
even
Xvnc
itself
(
useful
for
testing
x11vnc
).
Local
access
:
To
access
your
virtual
X
display
locally
(
i
.
e
.
while
sitting
at
the
same
machine
it
is
running
on
)
one
can
perhaps
have
something
like
this
in
their
$
HOME
/.
xinitrc
Local
access
:
You
use
a
VNC
viewer
to
access
the
display
remotely
;
to
access
your
virtual
X
display
locally
(
i
.
e
.
while
sitting
at
the
same
machine
it
is
running
on
)
one
can
perhaps
have
something
like
this
in
their
$
HOME
/.
xinitrc
#
!/bin/sh
x11vnc
-
display
:
5
-
rfbport
5905
-
bg
vncviewer
-
geometry
+
0
+
0
-
encodings
raw
-
passwd
$
HOME
/.
vnc
/
passwd
localhost
:
5
...
...
@@ -11046,7 +11056,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.3 lastmod: 2007-0
7
-03
x11vnc: allow VNC connections to real X11 displays. 0.9.3 lastmod: 2007-0
8
-03
x11vnc options:
-display disp -auth file -N
...
...
@@ -11110,23 +11120,23 @@ x11vnc options:
-speeds rd,bw,lat -wmdt string -debug_pointer
-debug_keyboard -defer time -wait time
-wait_ui factor -nowait_bog -slow_fb time
-
readtimeout n -nap -nonap
-
sb time -nofbpm -fbpm
-
nodpms -dpms -forcedpms
-
clientdpms -noserverdpms -noultraext
-no
xdamage -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
-macno
wait -macwheel n -macnoswap
-macno
resize -maciconanim n -macmenu
-
gui [gui-opts] -remote command -query variable
-
QD variable -sync -noremote
-
yesremote -unsafe -safer
-
privremote -nocmds -allowedcmds list
-deny_all
-
xrefresh time -readtimeout n -nap
-
nonap -sb time -nofbpm
-
fbpm -nodpms -dpms
-
forcedpms -clientdpms -noserverdpms
-no
ultraext -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
-macno
saver -macnowait -macwheel n
-macno
swap -macnoresize -maciconanim n
-
macmenu -gui [gui-opts] -remote command
-
query variable -QD variable -sync
-
noremote -yesremote -unsafe
-
safer -privremote -nocmds
-
allowedcmds list -
deny_all
libvncserver options:
-rfbport port TCP port for RFB protocol
...
...
@@ -11160,7 +11170,7 @@ libvncserver-tight-extension options:
%
x11vnc
-
help
x11vnc
:
allow
VNC
connections
to
real
X11
displays
.
0.9.3
lastmod
:
2007
-
0
7
-
03
x11vnc
:
allow
VNC
connections
to
real
X11
displays
.
0.9.3
lastmod
:
2007
-
0
8
-
03
(
type
"x11vnc -opts"
to
just
list
the
options
.)
...
...
@@ -13905,6 +13915,12 @@ t
For
special
purpose
usage
where
a
low
frame
rate
is
acceptable
and
desirable
,
but
you
want
the
user
input
processed
at
the
normal
rate
so
you
cannot
use
-
wait
.
-
xrefresh
time
Floating
point
time
in
seconds
to
indicate
how
often
to
do
the
equivalent
of
xrefresh
(
1
)
to
force
all
windows
(
in
the
viewable
area
if
-
id
,
-
sid
,
or
-
clip
is
used
)
to
repaint
themselves
.
Use
this
only
if
applications
misbehave
by
not
repainting
themselves
properly
.
See
also
-
noxdamage
.
-
readtimeout
n
Set
libvncserver
rfbMaxClientWait
to
n
seconds
.
On
slow
links
that
take
a
long
time
to
paint
the
first
screen
libvncserver
may
hit
the
timeout
and
drop
the
...
...
@@ -14833,6 +14849,7 @@ n
wait_bog disable -nowait_bog mode.
nowait_bog enable -nowait_bog mode.
slow_fb:f set -slow_fb to f seconds.
xrefresh:f set -xrefresh to f seconds.
readtimeout:n set read timeout to n seconds.
nap enable -nap mode.
nonap disable -nap mode.
...
...
@@ -14982,15 +14999,15 @@ n
nowf
wireframelocal
wfl
nowireframelocal
nowfl
wirecopyrect
wcr
nowirecopyrect
nowcr
scr_area
scr_skip
scr_inc
scr_keys
scr_term
scr_keyrepeat
scr_parms
scrollcopyrect
scr
noscrollcopyrect
noscr
fixscreen
noxrecord
xrecord
reset_record
p
ointer_mode
pm
input_skip
allinput
noallinput
input
grabkbd
nograbkbd
grabptr
nograbptr
grabalways
nograbalways
client_input
ssltimeout
speeds
wmdt
debug_pointer
dp
nodebug_pointer
nodp
debug_keyboard
dk
nodebug_keyboard
nodk
deferupdate
defer
wait_ui
wait_bog
nowait_bog
slow_fb
wait
readtimeout
nap
nonap
s
b
s
creen_blank
fbpm
nofbpm
dpms
nodpms
clientdpms
scr_parms
scrollcopyrect
scr
noscrollcopyrect
noscr
fixscreen
noxrecord
xrecord
reset_record
pointer_mode
p
m
input_skip
allinput
noallinput
input
grabkbd
nograbkbd
grabptr
nograbptr
grabalways
no
grabalways
client_input
ssltimeout
speeds
wmdt
debug_pointer
dp
nodebug_pointer
nodp
debug_keyboard
dk
no
debug_keyboard
nodk
deferupdate
defer
wait_ui
wait_bog
nowait_bog
slow_fb
xrefresh
wait
readtimeout
nap
nonap
sb
screen_blank
fbpm
nofbpm
dpms
nodpms
clientdpms
noclientdpms
forcedpms
noforcedpms
noserverdpms
serverdpms
noultraext
ultraext
fs
gaps
grow
fuzz
snapfb
nosnapfb
rawfb
uinput_accel
uinput_thresh
uinput_reset
...
...
x11vnc/help.c
View file @
338301c1
...
...
@@ -2786,6 +2786,12 @@ void print_help(int mode) {
" For special purpose usage where a low frame rate is
\n
"
" acceptable and desirable, but you want the user input
\n
"
" processed at the normal rate so you cannot use -wait.
\n
"
"-xrefresh time Floating point time in seconds to indicate how often to
\n
"
" do the equivalent of xrefresh(1) to force all windows
\n
"
" (in the viewable area if -id, -sid, or -clip is used)
\n
"
" to repaint themselves. Use this only if applications
\n
"
" misbehave by not repainting themselves properly.
\n
"
" See also -noxdamage.
\n
"
"-readtimeout n Set libvncserver rfbMaxClientWait to n seconds. On
\n
"
" slow links that take a long time to paint the first
\n
"
" screen libvncserver may hit the timeout and drop the
\n
"
...
...
@@ -3719,6 +3725,7 @@ void print_help(int mode) {
" wait_bog disable -nowait_bog mode.
\n
"
" nowait_bog enable -nowait_bog mode.
\n
"
" slow_fb:f set -slow_fb to f seconds.
\n
"
" xrefresh:f set -xrefresh to f seconds.
\n
"
" readtimeout:n set read timeout to n seconds.
\n
"
" nap enable -nap mode.
\n
"
" nonap disable -nap mode.
\n
"
...
...
@@ -3868,15 +3875,15 @@ void print_help(int mode) {
" nowf wireframelocal wfl nowireframelocal nowfl
\n
"
" wirecopyrect wcr nowirecopyrect nowcr scr_area
\n
"
" scr_skip scr_inc scr_keys scr_term scr_keyrepeat
\n
"
" scr_parms scrollcopyrect scr noscrollcopyrect
\n
"
"
noscr fixscreen noxrecord xrecord reset_record
\n
"
" p
ointer_mode pm input_skip allinput noallinput input
\n
"
"
grabkbd nograbkbd grabptr nograbptr
grabalways
\n
"
"
nograbalways client_input ssltimeout speeds wmdt
\n
"
"
debug_pointer dp nodebug_pointer nodp
debug_keyboard
\n
"
"
dk nodebug_keyboard nodk deferupdate defer wait_ui
\n
"
"
wait_bog nowait_bog slow_fb wait readtimeout nap nonap
\n
"
" s
b s
creen_blank fbpm nofbpm dpms nodpms clientdpms
\n
"
" scr_parms scrollcopyrect scr noscrollcopyrect
noscr
\n
"
"
fixscreen noxrecord xrecord reset_record pointer_mode
\n
"
" p
m input_skip allinput noallinput input grabkbd
\n
"
"
nograbkbd grabptr nograbptr grabalways no
grabalways
\n
"
"
client_input ssltimeout speeds wmdt debug_pointer dp
\n
"
"
nodebug_pointer nodp debug_keyboard dk no
debug_keyboard
\n
"
"
nodk deferupdate defer wait_ui wait_bog nowait_bog
\n
"
"
slow_fb xrefresh wait readtimeout nap nonap sb
\n
"
" screen_blank fbpm nofbpm dpms nodpms clientdpms
\n
"
" noclientdpms forcedpms noforcedpms noserverdpms
\n
"
" serverdpms noultraext ultraext fs gaps grow fuzz snapfb
\n
"
" nosnapfb rawfb uinput_accel uinput_thresh uinput_reset
\n
"
...
...
x11vnc/options.c
View file @
338301c1
...
...
@@ -345,6 +345,7 @@ int flip_byte_order = 0; /* sometimes needed when using_shm = 0 */
int
waitms
=
20
;
double
wait_ui
=
2
.
0
;
double
slow_fb
=
0
.
0
;
double
xrefresh
=
0
.
0
;
int
wait_bog
=
1
;
int
defer_update
=
20
;
/* deferUpdateTime ms to wait before sends. */
int
got_defer
=
0
;
...
...
x11vnc/options.h
View file @
338301c1
...
...
@@ -250,6 +250,7 @@ extern int flip_byte_order;
extern
int
waitms
;
extern
double
wait_ui
;
extern
double
slow_fb
;
extern
double
xrefresh
;
extern
int
wait_bog
;
extern
int
defer_update
;
extern
int
got_defer
;
...
...
x11vnc/remote.c
View file @
338301c1
...
...
@@ -3598,6 +3598,20 @@ char *process_remote_cmd(char *cmd, int stringonly) {
slow_fb
,
w
);
slow_fb
=
w
;
}
else
if
(
strstr
(
p
,
"xrefresh"
)
==
p
)
{
double
w
;
COLON_CHECK
(
"xrefresh:"
)
if
(
query
)
{
snprintf
(
buf
,
bufn
,
"ans=%s%s%.2f"
,
p
,
co
,
xrefresh
);
goto
qry
;
}
p
+=
strlen
(
"xrefresh:"
);
w
=
atof
(
p
);
if
(
w
<=
0
)
w
=
0
.
0
;
rfbLog
(
"remote_cmd: setting xrefresh delay %.2f -> %.2f
\n
"
,
xrefresh
,
w
);
xrefresh
=
w
;
}
else
if
(
strstr
(
p
,
"wait"
)
==
p
)
{
int
w
;
COLON_CHECK
(
"wait:"
)
...
...
x11vnc/solid.c
View file @
338301c1
...
...
@@ -620,6 +620,7 @@ static char *dcop_session(void) {
int
len
;
char
*
cmd
,
*
host
,
*
user
=
NULL
;
char
*
out
,
*
p
,
*
ds
,
*
dsn
=
NULL
,
*
sess
=
NULL
,
*
sess2
=
NULL
;
int
db
=
0
;
RAWFB_RET
(
empty
);
...
...
@@ -650,6 +651,9 @@ static char *dcop_session(void) {
ds
=
":0"
;
}
ds
=
strdup
(
ds
);
p
=
strrchr
(
ds
,
'.'
);
if
(
p
)
*
p
=
'\0'
;
dsn
=
strchr
(
ds
,
':'
);
if
(
dsn
)
{
*
dsn
=
'_'
;
...
...
@@ -658,17 +662,31 @@ static char *dcop_session(void) {
ds
=
strdup
(
"_0"
);
dsn
=
ds
;
}
if
(
db
)
fprintf
(
stderr
,
"ds: %s
\n
"
,
ds
);
if
(
db
)
fprintf
(
stderr
,
"dsn: %s
\n
"
,
dsn
);
host
=
this_host
();
if
(
host
)
{
char
*
h2
=
(
char
*
)
malloc
(
strlen
(
host
)
+
2
+
1
);
sprintf
(
h2
,
"_%s_"
,
host
);
free
(
host
);
host
=
h2
;
}
else
{
host
=
strdup
(
""
);
}
if
(
db
)
fprintf
(
stderr
,
"host: %s
\n
"
,
host
);
p
=
strtok
(
out
,
"
\n
"
);
while
(
p
)
{
if
(
db
)
fprintf
(
stderr
,
"p: %s
\n
"
,
p
);
char
*
q
=
strstr
(
p
,
".DCOP"
);
if
(
q
==
NULL
)
{
;
}
else
if
(
host
)
{
if
(
strstr
(
q
,
host
))
{
if
(
strstr
(
p
,
dsn
))
{
char
*
r
=
strstr
(
p
,
dsn
);
int
n
=
strlen
(
dsn
);
if
(
r
&&
!
isalnum
((
int
)
*
(
r
+
n
)))
{
sess
=
strdup
(
q
);
break
;
}
else
{
...
...
@@ -679,7 +697,9 @@ static char *dcop_session(void) {
}
}
}
else
{
if
(
strstr
(
p
,
dsn
))
{
char
*
r
=
strstr
(
p
,
dsn
);
int
n
=
strlen
(
dsn
);
if
(
r
&&
!
isalnum
((
int
)
*
(
r
+
n
)))
{
sess
=
strdup
(
q
);
break
;
}
...
...
@@ -688,6 +708,7 @@ static char *dcop_session(void) {
}
free
(
ds
);
free
(
out
);
free
(
host
);
if
(
!
sess
&&
sess2
)
{
sess
=
sess2
;
}
...
...
x11vnc/tkx11vnc
View file @
338301c1
...
...
@@ -400,6 +400,8 @@ Tuning
fuzz:
wait_ui:
nowait_bog
slow_fb:
xrefresh:
readtimeout:
snapfb
threads
...
...
x11vnc/tkx11vnc.h
View file @
338301c1
...
...
@@ -411,6 +411,8 @@ char gui_code[] = "";
" fuzz:
\n
"
" wait_ui:
\n
"
" nowait_bog
\n
"
" slow_fb:
\n
"
" xrefresh:
\n
"
" readtimeout:
\n
"
" snapfb
\n
"
" threads
\n
"
...
...
x11vnc/x11vnc.1
View file @
338301c1
.\" This file was automatically generated from x11vnc -help output.
.TH X11VNC "1" "
July
2007" "x11vnc " "User Commands"
.TH X11VNC "1" "
August
2007" "x11vnc " "User Commands"
.SH NAME
x11vnc - allow VNC connections to real X11 displays
version: 0.9.3, lastmod: 2007-0
7
-03
version: 0.9.3, lastmod: 2007-0
8
-03
.SH SYNOPSIS
.B x11vnc
[OPTION]...
...
...
@@ -3257,6 +3257,17 @@ For special purpose usage where a low frame rate is
acceptable and desirable, but you want the user input
processed at the normal rate so you cannot use \fB-wait.\fR
.PP
\fB-xrefresh\fR \fItime\fR
.IP
Floating point time in seconds to indicate how often to
do the equivalent of
.IR xrefresh (1)
to force all windows
(in the viewable area if \fB-id,\fR \fB-sid,\fR or \fB-clip\fR is used)
to repaint themselves. Use this only if applications
misbehave by not repainting themselves properly.
See also \fB-noxdamage.\fR
.PP
\fB-readtimeout\fR \fIn\fR
.IP
Set libvncserver rfbMaxClientWait to n seconds. On
...
...
@@ -4489,6 +4500,8 @@ nowait_bog enable \fB-nowait_bog\fR mode.
.IP
slow_fb:f set \fB-slow_fb\fR to f seconds.
.IP
xrefresh:f set \fB-xrefresh\fR to f seconds.
.IP
readtimeout:n set read timeout to n seconds.
.IP
nap enable \fB-nap\fR mode.
...
...
@@ -4728,15 +4741,15 @@ nodebug_ncache wireframe_mode wireframe wf nowireframe
nowf wireframelocal wfl nowireframelocal nowfl
wirecopyrect wcr nowirecopyrect nowcr scr_area
scr_skip scr_inc scr_keys scr_term scr_keyrepeat
scr_parms scrollcopyrect scr noscrollcopyrect
noscr fixscreen noxrecord xrecord reset_record
p
ointer_mode pm input_skip allinput noallinput input
grabkbd nograbkbd grabptr nograbptr
grabalways
nograbalways client_input ssltimeout speeds wmdt
debug_pointer dp nodebug_pointer nodp
debug_keyboard
dk nodebug_keyboard nodk deferupdate defer wait_ui
wait_bog nowait_bog slow_fb wait readtimeout nap nonap
s
b s
creen_blank fbpm nofbpm dpms nodpms clientdpms
scr_parms scrollcopyrect scr noscrollcopyrect
noscr
fixscreen noxrecord xrecord reset_record pointer_mode
p
m input_skip allinput noallinput input grabkbd
nograbkbd grabptr nograbptr grabalways no
grabalways
client_input ssltimeout speeds wmdt debug_pointer dp
nodebug_pointer nodp debug_keyboard dk no
debug_keyboard
nodk deferupdate defer wait_ui wait_bog nowait_bog
slow_fb xrefresh wait readtimeout nap nonap sb
screen_blank fbpm nofbpm dpms nodpms clientdpms
noclientdpms forcedpms noforcedpms noserverdpms
serverdpms noultraext ultraext fs gaps grow fuzz snapfb
nosnapfb rawfb uinput_accel uinput_thresh uinput_reset
...
...
x11vnc/x11vnc.c
View file @
338301c1
...
...
@@ -1278,6 +1278,7 @@ static void print_settings(int try_http, int bg, char *gui_str) {
fprintf
(
stderr
,
" wait_ui: %.2f
\n
"
,
wait_ui
);
fprintf
(
stderr
,
" nowait_bog: %d
\n
"
,
!
wait_bog
);
fprintf
(
stderr
,
" slow_fb: %.2f
\n
"
,
slow_fb
);
fprintf
(
stderr
,
" xrefresh: %.2f
\n
"
,
xrefresh
);
fprintf
(
stderr
,
" readtimeout: %d
\n
"
,
rfbMaxClientWait
/
1000
);
fprintf
(
stderr
,
" take_naps: %d
\n
"
,
take_naps
);
fprintf
(
stderr
,
" sb: %d
\n
"
,
screen_blank
);
...
...
@@ -2431,6 +2432,9 @@ int main(int argc, char* argv[]) {
}
else
if
(
!
strcmp
(
arg
,
"-slow_fb"
))
{
CHECK_ARGC
slow_fb
=
atof
(
argv
[
++
i
]);
}
else
if
(
!
strcmp
(
arg
,
"-xrefresh"
))
{
CHECK_ARGC
xrefresh
=
atof
(
argv
[
++
i
]);
}
else
if
(
!
strcmp
(
arg
,
"-readtimeout"
))
{
CHECK_ARGC
rfbMaxClientWait
=
atoi
(
argv
[
++
i
])
*
1000
;
...
...
@@ -3010,7 +3014,11 @@ int main(int argc, char* argv[]) {
use_stunnel
=
0
;
}
if
(
!
use_stunnel
&&
!
use_openssl
)
{
if
(
have_ssh_env
())
{
if
(
getenv
(
"UNIXPW_DISABLE_LOCALHOST"
))
{
rfbLog
(
"Skipping -ssl/-stunnel requirement"
" due to
\n
"
);
rfbLog
(
"UNIXPW_DISABLE_LOCALHOST setting.
\n
"
);
}
else
if
(
have_ssh_env
())
{
char
*
s
=
getenv
(
"SSH_CONNECTION"
);
if
(
!
s
)
s
=
getenv
(
"SSH_CLIENT"
);
if
(
!
s
)
s
=
"SSH_CONNECTION"
;
...
...
@@ -3027,10 +3035,6 @@ int main(int argc, char* argv[]) {
if
(
!
nopw
)
{
usleep
(
2000
*
1000
);
}
}
else
if
(
getenv
(
"UNIXPW_DISABLE_SSL"
))
{
rfbLog
(
"Skipping -ssl/-stunnel requirement"
" due to
\n
"
);
rfbLog
(
"UNIXPW_DISABLE_SSL setting.
\n
"
);
}
else
{
if
(
openssl_present
())
{
rfbLog
(
"set -ssl in -unixpw mode.
\n
"
);
...
...
@@ -3175,6 +3179,10 @@ int main(int argc, char* argv[]) {
ncache
=
0
;
ncache_msg
=
0
;
}
if
(
subwin
)
{
ncache
=
0
;
ncache_msg
=
0
;
}
}
if
(
raw_fb_str
)
{
...
...
x11vnc/x11vnc_defs.c
View file @
338301c1
...
...
@@ -15,7 +15,7 @@ int xtrap_base_event_type = 0;
int
xdamage_base_event_type
=
0
;
/* date +'lastmod: %Y-%m-%d' */
char
lastmod
[]
=
"0.9.3 lastmod: 2007-0
7
-03"
;
char
lastmod
[]
=
"0.9.3 lastmod: 2007-0
8
-03"
;
/* X display info */
...
...
x11vnc/xevents.c
View file @
338301c1
...
...
@@ -792,6 +792,7 @@ void check_xevents(int reset) {
static
time_t
last_time_sync
=
0
;
time_t
now
=
time
(
NULL
);
static
double
last_request
=
0
.
0
;
static
double
last_xrefresh
=
0
.
0
;
XErrorHandler
old_handler
;
if
(
unixpw_in_progress
)
return
;
...
...
@@ -836,6 +837,31 @@ void check_xevents(int reset) {
}
}
if
(
have_clients
&&
xrefresh
>
0
.
0
&&
dnow
()
>
last_xrefresh
+
xrefresh
)
{
XSetWindowAttributes
swa
;
Visual
visual
;
Window
xrf
;
unsigned
long
mask
;
swa
.
override_redirect
=
True
;
swa
.
backing_store
=
NotUseful
;
swa
.
save_under
=
False
;
swa
.
background_pixmap
=
None
;
visual
.
visualid
=
CopyFromParent
;
mask
=
(
CWOverrideRedirect
|
CWBackingStore
|
CWSaveUnder
|
CWBackPixmap
);
xrf
=
XCreateWindow
(
dpy
,
window
,
coff_x
,
coff_y
,
dpy_x
,
dpy_y
,
0
,
CopyFromParent
,
InputOutput
,
&
visual
,
mask
,
&
swa
);
if
(
xrf
!=
None
)
{
if
(
0
)
fprintf
(
stderr
,
"XCreateWindow(%d, %d, %d, %d) 0x%lx
\n
"
,
coff_x
,
coff_y
,
dpy_x
,
dpy_y
,
xrf
);
XMapWindow
(
dpy
,
xrf
);
XFlush_wr
(
dpy
);
XDestroyWindow
(
dpy
,
xrf
);
XFlush_wr
(
dpy
);
}
last_xrefresh
=
dnow
();
}
if
(
now
>
last_call
+
1
)
{
/* we only check these once a second or so. */
int
n
=
0
;
...
...
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