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
4088906b
Commit
4088906b
authored
Apr 01, 2009
by
runge
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
rebuild for x11vnc dev 0.9.8
parent
ea30be6c
Changes
7
Hide whitespace changes
Inline
Side-by-side
Showing
7 changed files
with
94 additions
and
50 deletions
+94
-50
README
x11vnc/README
+57
-43
connections.c
x11vnc/connections.c
+26
-5
connections.h
x11vnc/connections.h
+1
-0
screen.c
x11vnc/screen.c
+6
-0
x11vnc.1
x11vnc/x11vnc.1
+1
-1
x11vnc.h
x11vnc/x11vnc.h
+1
-0
x11vnc_defs.c
x11vnc/x11vnc_defs.c
+2
-1
No files found.
x11vnc/README
View file @
4088906b
...
...
@@ -2,7 +2,7 @@
Copyright
(
C
)
2002
-
2009
Karl
J
.
Runge
<
runge
@
karlrunge
.
com
>
All
rights
reserved
.
x11vnc
README
file
Date
:
Sun
Mar
15
18
:
06
:
19
EDT
2009
x11vnc
README
file
Date
:
Tue
Mar
31
23
:
24
:
00
EDT
2009
The
following
information
is
taken
from
these
URLs
:
...
...
@@ -586,12 +586,12 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
SourceForge
.
net
.
I
use
libvncserver
for
all
of
the
VNC
aspects
;
I
couldn
't have done without it. The full source code may be found and
downloaded (either file-release tarball or CVS tree) from the above
link. As of
Dec 2008, the [91]x11vnc-0.9.6
.tar.gz source package is
released (recommended download). The [92]x11vnc 0.9.
6
release notes.
link. As of
Mar 2009, the [91]x11vnc-0.9.7
.tar.gz source package is
released (recommended download). The [92]x11vnc 0.9.
7
release notes.
The x11vnc package is the subset of the libvncserver package needed to
build the x11vnc program. Also, you can get a copy of my latest,
bleeding edge [93]x11vnc-0.9.
7
.tar.gz tarball to build the most up to
bleeding edge [93]x11vnc-0.9.
8
.tar.gz tarball to build the most up to
date one.
Precompiled Binaries/Packages: See the [94]FAQ below for information
...
...
@@ -629,13 +629,13 @@ vncviewer -via $host localhost:0 # must be TightVNC vncviewer.
them
by
default
.)
If
your
OS
has
libjpeg
.
so
and
libz
.
so
in
standard
locations
you
can
build
as
follows
(
example
given
for
the
0.9.
6
release
of
x11vnc
:
build
as
follows
(
example
given
for
the
0.9.
7
release
of
x11vnc
:
replace
with
the
version
you
downloaded
):
(
un
-
tar
the
x11vnc
+
libvncserver
tarball
)
#
gzip
-
dc
x11vnc
-
0.9.
6
.
tar
.
gz
|
tar
-
xvf
-
#
gzip
-
dc
x11vnc
-
0.9.
7
.
tar
.
gz
|
tar
-
xvf
-
(
cd
to
the
source
directory
)
#
cd
x11vnc
-
0.9.
6
#
cd
x11vnc
-
0.9.
7
(
run
configure
and
then
run
make
)
#
./
configure
...
...
@@ -877,13 +877,13 @@ make
I'
d
appreciate
any
additional
testing
very
much
.
Thanks
to
those
who
suggested
features
and
helped
beta
test
x11vnc
0.9.
6
released
in
Dec
2008
!
0.9.
7
released
in
Mar
2009
!
Please
help
test
and
debug
the
0.9.
7
version
for
release
sometime
in
S
pring
2009.
Please
help
test
and
debug
the
0.9.
8
version
for
release
sometime
in
S
ummer
2009.
The
version
0.9.
7
beta
tarball
is
kept
here
:
[
114
]
x11vnc
-
0.9.
7
.
tar
.
gz
The
version
0.9.
8
beta
tarball
is
kept
here
:
[
114
]
x11vnc
-
0.9.
8
.
tar
.
gz
There
are
also
some
Linux
,
Solaris
,
Mac
OS
X
,
and
other
OS
test
binaries
[
115
]
here
.
Please
kick
the
tires
and
report
bugs
,
performance
...
...
@@ -900,7 +900,11 @@ make
Encryption
Plugin
' settings panel.)
Here are some features that will appear in the 0.9.7 release:
Here are some features that will appear in the 0.9.8 release:
* Coming Soon!
Here are some features that appeared in the 0.9.7 release:
* Support for polling Linux Virtual Terminals (also called virtual
consoles) directly instead of using /dev/fb. The option to use is,
for example, "-rawfb vt2" for Virtual Terminal 2, etc. In this
...
...
@@ -1350,34 +1354,44 @@ LAY
activity changes most of the screen (e.g. moving or iconifying a
large window) there is a delay of 0.5-1 sec while x11vnc reads the
changed regions in.
A slow framebuffer read rate will often be the performance
bottleneck on a fast LAN (whereas on slower links the reduced
network bandwidth becomes the bottleneck.)
Note: A quick way to get a 2X speedup of this for x11vnc is to
switch
from depth 24 (32bpp) to depth 16 (16bpp). You get a 4X
speedup going to 8bpp, but the lack of color cells is usually
unacceptable.
switch
your X server from depth 24 (32bpp) to depth 16 (16bpp).
You get a 4X speedup going to 8bpp, but the lack of color cells is
u
sually u
nacceptable.
To get a sense of the read and write speeds of your video card,
you can run benchmarks like:
x11perf -getimage500,
x11perf
-putimage500
, x11perf -shmput500
and for XFree86 displays with
direct graphics access the
dga
command (press "b" to run the
you can run benchmarks like:
"x11perf -getimage500", "
x11perf
-putimage500
", "x11perf -shmput500"
and for XFree86 displays with
direct graphics access the
"dga"
command (press "b" to run the
benchmark and then after a few seconds press "q" to quit). Even
this "dd if=/dev/fb0 of=/dev/null" often gives a good estimate. We
have seen a few cases where the hardware fb read speed is greater
than 65 MB/sec: on high end graphics workstations from SGI and
Sun, and also from a Linux user using nvidia proprietary drivers
for his nvidia video card. Update 2008: thankfully, these sped up
drivers are becoming more common on Linux and *BSD systems and
that makes x11vnc run somewhat more quickly.
this "dd if=/dev/fb0 of=/dev/null" often gives a good estimate.
x11vnc also prints out its estimate:
28/02/2009 11:11:07 Autoprobing TCP port
28/02/2009 11:11:07 Autoprobing selected port 5900
28/02/2009 11:11:08 fb read rate: 10 MB/sec
28/02/2009 11:11:08 screen setup finished.
We have seen a few cases where the hardware fb read speed is
greater than 65 MB/sec: on high end graphics workstations from SGI
and Sun, and also from a Linux user using nvidia proprietary
drivers for his nvidia video card. Update 2008: thankfully, these
sped up drivers are becoming more common on Linux and *BSD systems
and that makes x11vnc run somewhat more quickly. Sometimes they
have a read rate of over 400 MB/sec.
On XFree86/Xorg it is actually possible to increase the
framebuffer read speed considerably (10-100 times) by using the
Shadow Framebuffer (a copy of the framebuffer is kept in main
memory and this can be read much more quickly). To do this one
puts the line Option "ShadowFB" "true" in the Device section of
the /etc/X11/XF86Config or /etc/X11/xorg.conf file. Note that this
disables 2D acceleration at the physical display and so likely
defeats the purpose. Nevertheless this could be handy in some
circumstances, e.g. if the slower speed while sitting at the
physical display was acceptable (this seems to be true for most
video cards these days). Unfortunately it does not seem shadowfb
can be turned on and off dynamically...
disables 2D acceleration at the physical display and so that might
be unacceptable if one plays games, etc. on the machine'
s
local
display
.
Nevertheless
this
could
be
handy
in
some
circumstances
,
e
.
g
.
if
the
slower
speed
while
sitting
at
the
physical
display
was
acceptable
(
this
seems
to
be
true
for
most
video
cards
these
days
).
Unfortunately
it
does
not
seem
shadowfb
can
be
turned
on
and
off
dynamically
...
Another
amusing
thing
one
can
do
is
use
Xvfb
as
the
X
server
,
e
.
g
.
"xinit $HOME/.xinitrc -- /usr/X11R6/bin/Xvfb :1 -screen 0
1024x768x16"
x11vnc
can
poll
Xvfb
efficiently
via
main
memory
.
...
...
@@ -1512,9 +1526,9 @@ References
88. http://www.karlrunge.com/x11vnc/faq.html#faq-ssl-tunnel-int
89. http://www.karlrunge.com/x11vnc/ssvnc.html
90. http://sourceforge.net/projects/libvncserver/
91.
http
://
sourceforge
.
net
/
project
/
showfiles
.
php
?
group_id
=
32584
&
package_id
=
119006
&
release_id
=
6
46288
92.
http
://
sourceforge
.
net
/
project
/
shownotes
.
php
?
release_id
=
6
46288
&
group_id
=
32584
93.
http
://
x11vnc
.
sourceforge
.
net
/
dev
/
x11vnc
-
0.9.
7
.
tar
.
gz
91. http://sourceforge.net/project/showfiles.php?group_id=32584&package_id=119006&release_id=6
72184
92. http://sourceforge.net/project/shownotes.php?release_id=6
72184
&group_id=32584
93. http://x11vnc.sourceforge.net/dev/x11vnc-0.9.
8
.tar.gz
94. http://www.karlrunge.com/x11vnc/faq.html#faq-binaries
95. http://www.tightvnc.com/download.html
96. http://www.realvnc.com/products/free/4.1/download.html
...
...
@@ -1535,7 +1549,7 @@ References
111. http://www.karlrunge.com/x11vnc/faq.html#faq-solaris251build
112. http://www.karlrunge.com/x11vnc/faq.html#faq-macosx
113. http://www.karlrunge.com/x11vnc/faq.html#faq-ssl-tunnel-int
114.
http
://
x11vnc
.
sourceforge
.
net
/
dev
/
x11vnc
-
0.9.
7
.
tar
.
gz
114. http://x11vnc.sourceforge.net/dev/x11vnc-0.9.
8
.tar.gz
115. http://www.karlrunge.com/x11vnc/bins
116. mailto:xvml@karlrunge.com
117. http://www.karlrunge.com/x11vnc/faq.html#faq-ssl-tunnel-int
...
...
@@ -6344,15 +6358,15 @@ EndSection
6200) x11vnc and [549]SSVNC, both TurboVNC enabled, were able to
sustain 13.5 frames/sec (fps) and 15 Megapixels/sec using the
VirtualGL supplied OpenGL benchmark program glxspheres. VirtualGL on
higher-end hardware can sustain [550]2
3
-30 fps with the glxspheres
higher-end hardware can sustain [550]2
0
-30 fps with the glxspheres
benchmark.
Potential Slowdown: As we describe [551]elsewhere, unless you use
x11vnc with an X server using, say, NVidia proprietary drivers (or a
virtual X server like Xvfb or Xdummy, or in ShadowFB mode), then the
read rate from the graphics card can
rather slow (e.g. 10 MB/sec) and
becomes the bottleneck when using x11vnc over fast networks. Note that
all of Xorg's drivers currently (2009) have slow read rates (only
read rate from the graphics card can
be rather slow (e.g. 10 MB/sec)
and becomes the bottleneck when using x11vnc over fast networks. Note
that
all of Xorg'
s
drivers
currently
(
2009
)
have
slow
read
rates
(
only
proprietary
drivers
appear
to
have
optimized
reads
.)
So
under
these
(
more
or
less
typical
)
conditions
,
the
speed
...
...
@@ -9678,7 +9692,7 @@ ev
contain very large "
case
statements
" (over 100 cases) that on some
platforms can take a very long time to compile (in extreme cases over
an hour). However on 32bit Linux with intel/amd processor and gcc
these files usually take less th
e
n 10 seconds to compile. For 64bit
these files usually take less th
a
n 10 seconds to compile. For 64bit
systems using gcc the problem appears to be much worse.
The two files with the large number of cases, remote.c and x11vnc.c,
...
...
@@ -12500,7 +12514,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.
7 lastmod: 2009-03-15
x11vnc: allow VNC connections to real X11 displays. 0.9.
8 lastmod: 2009-03-30
x11vnc options:
-display disp -auth file -N
...
...
@@ -12625,7 +12639,7 @@ libvncserver-tight-extension options:
%
x11vnc
-
help
x11vnc: allow VNC connections to real X11 displays. 0.9.
7 lastmod: 2009-03-15
x11vnc
:
allow
VNC
connections
to
real
X11
displays
.
0.9.
8
lastmod
:
2009
-
03
-
30
(
type
"x11vnc -opts"
to
just
list
the
options
.)
...
...
x11vnc/connections.c
View file @
4088906b
...
...
@@ -91,6 +91,7 @@ int accept_client(rfbClientPtr client);
int
run_user_command
(
char
*
cmd
,
rfbClientPtr
client
,
char
*
mode
,
char
*
input
,
int
len
,
FILE
*
output
);
int
check_access
(
char
*
addr
);
void
client_set_net
(
rfbClientPtr
client
);
static
rfbClientPtr
*
client_match
(
char
*
str
);
static
void
free_client_data
(
rfbClientPtr
client
);
...
...
@@ -138,6 +139,7 @@ char *list_clients(void) {
iter
=
rfbGetClientIterator
(
screen
);
while
(
(
cl
=
rfbClientIteratorNext
(
iter
))
)
{
client_set_net
(
cl
);
count
++
;
}
rfbReleaseClientIterator
(
iter
);
...
...
@@ -156,6 +158,7 @@ char *list_clients(void) {
iter
=
rfbGetClientIterator
(
screen
);
while
(
(
cl
=
rfbClientIteratorNext
(
iter
))
)
{
ClientData
*
cd
=
(
ClientData
*
)
cl
->
clientData
;
if
(
!
cd
)
{
continue
;
}
...
...
@@ -411,6 +414,7 @@ int run_user_command(char *cmd, rfbClientPtr client, char *mode, char *input,
char
str
[
100
];
int
rc
,
ok
;
ClientData
*
cd
=
NULL
;
client_set_net
(
client
);
if
(
client
!=
NULL
)
{
cd
=
(
ClientData
*
)
client
->
clientData
;
addr
=
client
->
host
;
...
...
@@ -2897,6 +2901,24 @@ void client_gone_chat_helper(rfbClientPtr client) {
chat_window_client
=
NULL
;
}
void
client_set_net
(
rfbClientPtr
client
)
{
ClientData
*
cd
;
if
(
client
==
NULL
)
{
return
;
}
cd
=
(
ClientData
*
)
client
->
clientData
;
if
(
cd
==
NULL
)
{
return
;
}
if
(
cd
->
client_port
<
0
)
{
double
dt
=
dnow
();
cd
->
client_port
=
get_remote_port
(
client
->
sock
);
cd
->
server_port
=
get_local_port
(
client
->
sock
);
cd
->
server_ip
=
get_local_host
(
client
->
sock
);
cd
->
hostname
=
ip2host
(
client
->
host
);
rfbLog
(
"client_set_net: %s %.4f
\n
"
,
client
->
host
,
dnow
()
-
dt
);
}
}
/*
* libvncserver callback for when a new client connects
*/
...
...
@@ -2950,10 +2972,8 @@ enum rfbNewClientAction new_client(rfbClientPtr client) {
client
->
clientData
=
(
void
*
)
calloc
(
sizeof
(
ClientData
),
1
);
cd
=
(
ClientData
*
)
client
->
clientData
;
cd
->
client_port
=
get_remote_port
(
client
->
sock
);
cd
->
server_port
=
get_local_port
(
client
->
sock
);
cd
->
server_ip
=
get_local_host
(
client
->
sock
);
cd
->
hostname
=
ip2host
(
client
->
host
);
/* see client_set_net() we delay the DNS lookups during handshake */
cd
->
client_port
=
-
1
;
cd
->
username
=
strdup
(
""
);
cd
->
unixname
=
strdup
(
""
);
...
...
@@ -3026,7 +3046,7 @@ enum rfbNewClientAction new_client(rfbClientPtr client) {
install_padded_fb
(
pad_geometry
);
}
cd
->
timer
=
dnow
();
cd
->
timer
=
last_new_client
=
dnow
();
cd
->
send_cmp_rate
=
0
.
0
;
cd
->
send_raw_rate
=
0
.
0
;
cd
->
latency
=
0
.
0
;
...
...
@@ -3347,6 +3367,7 @@ void check_new_clients(void) {
ClientData
*
cd
=
(
ClientData
*
)
cl
->
clientData
;
char
*
s
;
client_set_net
(
cl
);
if
(
!
cd
)
{
continue
;
}
...
...
x11vnc/connections.h
View file @
4088906b
...
...
@@ -70,5 +70,6 @@ extern int accept_client(rfbClientPtr client);
extern
int
run_user_command
(
char
*
cmd
,
rfbClientPtr
client
,
char
*
mode
,
char
*
input
,
int
len
,
FILE
*
output
);
extern
int
check_access
(
char
*
addr
);
extern
void
client_set_net
(
rfbClientPtr
client
);
#endif
/* _X11VNC_CONNECTIONS_H */
x11vnc/screen.c
View file @
4088906b
...
...
@@ -3858,6 +3858,9 @@ void watch_loop(void) {
}
else
{
rfbPE
(
-
1
);
}
if
(
x11vnc_current
<
last_new_client
+
0
.
5
)
{
urgent_update
=
1
;
}
unixpw_in_rfbPE
=
0
;
...
...
@@ -3992,6 +3995,9 @@ void watch_loop(void) {
#endif
continue
;
}
if
(
x11vnc_current
<
last_new_client
+
0
.
5
&&
!
all_clients_initialized
())
{
continue
;
}
if
(
button_mask
&&
(
!
show_dragging
||
pointer_mode
==
0
))
{
/*
...
...
x11vnc/x11vnc.1
View file @
4088906b
...
...
@@ -2,7 +2,7 @@
.TH X11VNC "1" "March 2009" "x11vnc " "User Commands"
.SH NAME
x11vnc - allow VNC connections to real X11 displays
version: 0.9.
7, lastmod: 2009-03-15
version: 0.9.
8, lastmod: 2009-03-30
.SH SYNOPSIS
.B x11vnc
[OPTION]...
...
...
x11vnc/x11vnc.h
View file @
4088906b
...
...
@@ -550,6 +550,7 @@ extern int hack_val;
extern
rfbClientPtr
last_pointer_client
;
extern
rfbClientPtr
latest_client
;
extern
double
last_client_gone
;
extern
double
last_new_client
;
extern
int
waited_for_client
;
extern
int
findcreatedisplay
;
...
...
x11vnc/x11vnc_defs.c
View file @
4088906b
...
...
@@ -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.
7 lastmod: 2009-03-15
"
;
char
lastmod
[]
=
"0.9.
8 lastmod: 2009-03-30
"
;
/* X display info */
...
...
@@ -187,6 +187,7 @@ int hack_val = 0;
rfbClientPtr
last_pointer_client
=
NULL
;
rfbClientPtr
latest_client
=
NULL
;
double
last_client_gone
=
0
.
0
;
double
last_new_client
=
0
.
0
;
int
waited_for_client
=
0
;
int
findcreatedisplay
=
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