Commit Graph

468 Commits

Author SHA1 Message Date
915901848d Send data one byte at a time in tests
This makes sure we don't have code assuming that everything is
neatly packaged in a single WebSocket message.
2021-03-29 11:34:38 +03:00
ee2423ed2b Clean up RFB._rfb_auth_schema assignment 2021-03-29 11:34:29 +03:00
ce6d66f030 Fix security failure reason handling of slow data
Things would break if the security result and security reason did
not arrive in the same WebSocket message.
2021-03-29 11:34:21 +03:00
41e6fedba6 Fix version handshake to handle slow data 2021-03-29 11:34:08 +03:00
642a67f76f Use arrow function to avoid bind 2021-03-29 11:34:00 +03:00
d7198cbe5d Consume data properly in Hextile decoder
We accidentally removed the code updating the data index in 8a189a6,
resulting in the decoder newer consuming any data. So the data would
be parsed as the next rect, causing weird errors.
2021-03-29 11:33:25 +03:00
25b8e64adb Add support for notifying clients about pointer movements
This change adds support for the VMware Mouse Position
pseudo-encoding[1], which is used to notify VNC clients when X11 clients
call `XWarpPointer()`[2]. This function is called by SDL (and other
similar libraries)  when they detect that the server does not support
native relative motion, like some RFB clients.

With this, RFB clients can choose to adjust the local cursor position
under certain circumstances to match what the server has set. For
instance, if pointer lock has been enabled on the client's machine and
the cursor is not being drawn locally, the local position of the cursor
is irrelevant, so the RFB client can use what the server sends as the
canonical absolute position of the cursor. This ultimately enables the
possibility of games (especially FPS games) to behave how users expect
(if the clients implement the corresponding change).

Part of: #619

1: https://github.com/rfbproto/rfbproto/blob/master/rfbproto.rst#vmware-cursor-position-pseudo-encoding
2: https://tronche.com/gui/x/xlib/input/XWarpPointer.html
3: https://hg.libsdl.org/SDL/file/28e3b60e2131/src/events/SDL_mouse.c#l804
2021-03-29 11:27:54 +03:00
d8caab699d Add missing headers for TCP_CORK
We didn't include the proper headers to get the correct define, so
corking was never enabled.
2021-03-29 11:04:00 +03:00
da83ecf86a Drop other selection on ownership change
Otherwise we might end up owners of something we cannot deliver data on,
which can hang applications.
2021-03-29 11:03:38 +03:00
189f503b98 Fix handling of bad update requests
We computed a safe area if a client gave us a bogus one, but we didn't
actually use it. Fix this properly and make sure we don't pass on bad
coordinates further.
2021-03-29 11:00:41 +03:00
f54dc7829a Update keycode maps to latest version
Mainly fixes for Japanese and Korean keyboard layouts.
2021-03-29 10:57:41 +03:00
fde088ce65 Improved bandwidth monitoring
Now measures over an entire update, which should hopefully give us more
stable values. They are still small values for fast networks though so
increase precision in the values we keep.
2021-03-29 10:52:51 +03:00
a55f142c98 Don't shuffle input buffer unless actually needed 2021-03-29 10:50:16 +03:00
25995e2490 Remove unused bufSize argument from streams 2021-03-29 10:49:25 +03:00
281d65292a Remove special functions from JPEG compressor
We can do what we want with the standard methods.
2021-03-29 10:48:55 +03:00
57a3c3bba8 Simplify stream availability handling
Just have a simply number of bytes argument to avoid a lot of
complexity.
2021-03-29 10:48:26 +03:00
92c7695981 Create common base classes for buffered streams
Most streams are backed by a memory buffer. Create common base classes
for this functionality to avoid code duplication.
2021-03-29 10:11:16 +03:00
7f90205cf2 Add stream avail() methods
Makes it more readable to write code that needs to know how much
data/space is available in a stream.
2021-03-29 10:08:40 +03:00
910fd8fa3e Remove unused stream methods
They were accidentally left unused in fbad8a9 so they haven't been used
in some time.
2021-03-29 10:04:04 +03:00
c97828471c Use proper constants for socket shutdown()
For readability.
2021-03-29 10:03:05 +03:00
c5b7137f2b Flush data on close
There might be some final handshake data that is still stuck in the
buffers, so make a best effort attempt at getting it to the client.
2021-03-29 10:02:31 +03:00
a3c0ce55c9 Support calling methods from timers
We can't safely use the normal timers in base classes as we cannot
guarantee that subclasses will call the base class' handleTimeout()
properly if the subclass overrides it.
2021-03-29 09:58:18 +03:00
02721a0270 Merge pull request #34 from kasmtech/bugfix/freezing
Apply patch for 1.20.x
2021-03-28 07:54:47 -04:00
29415a8c7d Apply patch for 1.20.x 2021-03-26 19:53:04 +00:00
0638245ff9 Merge pull request #33 from kasmtech/vncserver-remove-basicauth
Vncserver remove basicauth
2021-03-26 13:40:53 -04:00
9b3e1f73f5 Deb/rpm: update barebones images 2021-03-26 01:10:43 +13:00
da4ff4fa70 Merge branch 'master' into vncserver-remove-basicauth 2021-03-25 23:16:22 +13:00
1e8451ce21 Merge pull request #32 from kasmtech/squashed_buster_release
CI building and uploading to S3, prepare deb release
2021-03-25 06:13:31 -04:00
4e8750e37a Disable passing of basicauth in vncserver 2021-03-25 23:05:20 +13:00
ca326ee1f1 Revert "Update README: deb installation only"
This reverts commit 213f91c1a7.
2021-03-25 22:27:47 +13:00
40facbcc46 Revert "Improve README.md"
This reverts commit e5cd3d6753.
2021-03-25 22:27:47 +13:00
963ea6b6d3 Revert "README.md formatting"
This reverts commit fc12e38571.
2021-03-25 22:27:47 +13:00
f758fc5021 CI: build all distros and upload to S3 2021-03-25 22:27:27 +13:00
1632f4888d Enable basicauth by default, remove the option to supply it on the command line 2021-03-25 11:25:30 +02:00
93d3bf052d Removed old line 2021-03-22 11:36:33 +00:00
7b3f6876b4 Fixed syntax error 2021-03-22 11:23:49 +00:00
46e03289be Manually merged region changes 2021-03-22 10:36:39 +00:00
56fd118c43 CI: extract after_script 2021-03-18 23:17:52 +13:00
9a9b14daf1 CI: extract before_script 2021-03-18 23:01:28 +13:00
349ed4cb41 CI: remove tarballs from artifacts 2021-03-18 22:42:40 +13:00
c3e30dcea1 Add support for DLP_Region 2021-03-15 13:48:56 +02:00
fc12e38571 README.md formatting 2021-03-15 22:38:08 +13:00
e5cd3d6753 Improve README.md 2021-03-15 22:37:48 +13:00
7bffbb53da vncserver: remove securitytypes mention from man page
securitytypes is no longer used.
2021-03-15 22:27:19 +13:00
df92791550 Gitlab CI: build all distros if branch has "release" or "testing" in it 2021-03-15 21:59:39 +13:00
25c32c96e5 Deb: fix Ubuntu Focal (vnc_startup.sh XFCE start issue) 2021-03-14 23:38:48 +13:00
213f91c1a7 Update README: deb installation only 2021-03-14 23:25:53 +13:00
ed4c514bcb Deb: test images have lsb-release now
To ensure it's the right image, I double-check with lsb_release.
2021-03-14 23:24:14 +13:00
2005b86a92 Deb: make easy-start script easier to modify 2021-03-14 21:19:08 +13:00
d73ffc8a38 Deb: example script can now -kill, -d (debug), --help 2021-03-14 21:01:04 +13:00