Pierre Ossman
499b251716
Remove error handling in clientCutText()
...
It is not necessary as Websock.flush() is guaranteed to succeed and
give us some space. It also remove the call to _fail(), which was
invalid at this place as clientCutText() is not a method on RFB.
2021-03-29 11:34:50 +03:00
Pierre Ossman
d20f751441
Throw correct Error object
...
We've already defined the name Error as a logging function, so we
need to be more explicit when we want to refer to the exception
class.
2021-03-29 11:34:45 +03:00
Pierre Ossman
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
Pierre Ossman
ee2423ed2b
Clean up RFB._rfb_auth_schema assignment
2021-03-29 11:34:29 +03:00
Pierre Ossman
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
Pierre Ossman
41e6fedba6
Fix version handshake to handle slow data
2021-03-29 11:34:08 +03:00
Pierre Ossman
642a67f76f
Use arrow function to avoid bind
2021-03-29 11:34:00 +03:00
Pierre Ossman
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
lhchavez
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
Pierre Ossman
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
Pierre Ossman
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
Pierre Ossman
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
Pierre Ossman
f54dc7829a
Update keycode maps to latest version
...
Mainly fixes for Japanese and Korean keyboard layouts.
2021-03-29 10:57:41 +03:00
Pierre Ossman
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
Pierre Ossman
a55f142c98
Don't shuffle input buffer unless actually needed
2021-03-29 10:50:16 +03:00
Pierre Ossman
25995e2490
Remove unused bufSize argument from streams
2021-03-29 10:49:25 +03:00
Pierre Ossman
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
Pierre Ossman
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
Pierre Ossman
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
Pierre Ossman
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
Pierre Ossman
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
Pierre Ossman
c97828471c
Use proper constants for socket shutdown()
...
For readability.
2021-03-29 10:03:05 +03:00
Pierre Ossman
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
Pierre Ossman
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
Lauri Kasanen
1632f4888d
Enable basicauth by default, remove the option to supply it on the command line
2021-03-25 11:25:30 +02:00
matt
93d3bf052d
Removed old line
2021-03-22 11:36:33 +00:00
matt
7b3f6876b4
Fixed syntax error
2021-03-22 11:23:49 +00:00
matt
46e03289be
Manually merged region changes
2021-03-22 10:36:39 +00:00
Lauri Kasanen
c3e30dcea1
Add support for DLP_Region
2021-03-15 13:48:56 +02:00
Lauri Kasanen
fed991d697
Return 401 unauth for non-owner trying /api/
2021-03-04 13:59:29 +02:00
Lauri Kasanen
1269fddadf
Add a more specific error for a nonexistent screenshot
2021-03-04 13:43:05 +02:00
Lauri Kasanen
688e749fda
Tentative build fix for newer gccs
2021-03-03 15:33:58 +02:00
Lauri Kasanen
980eedd33b
Add HTTP GET APIs for creating, removing users and giving control
2021-03-03 14:55:14 +02:00
Lauri Kasanen
3f6524ee30
Add support for owner screenshot HTTP GET API
2021-03-02 15:23:32 +02:00
Kasm
784a9c611d
Merge pull request #26 from kasmtech/multiuser_and_new_ui
...
Packaging changes, multiuser passwd, clipboard (UI) changes
2021-03-01 10:46:20 -05:00
Dmitry Maksyoma
05ea1b99ee
Merge branch 'KASM-1298_manually_merge_offline_changes' into multiuser_and_new_ui
2021-02-28 22:55:47 +13:00
Dmitry Maksyoma
101695970b
Reapply "Use crypt_r in threaded code"
2021-02-28 22:53:06 +13:00
Dmitry Maksyoma
6d0a020f4f
Move build-and-test-* to builder/
2021-02-28 21:28:14 +13:00
Dmitry Maksyoma
5e5467a3b0
Add build-and-test-deb and -rpm
...
It builds tarball, deb/rpm pckage, and runs the test image. It doesn't
detect source changes, so it'll always build tarball and the package.
2021-02-28 21:24:59 +13:00
Dmitry Maksyoma
9fb709087d
Add verbose logging via KASMVNC_VERBOSE_LOGGING env var
...
Running "KASMVNC_VERBOSE_LOGGING=1 builder/test-deb debian buster" will
turn on verbose logging of kasmvncserver.
2021-02-28 21:21:49 +13:00
Dmitry Maksyoma
e0c056f36b
Add rw, ro and owner users on container startup
2021-02-28 21:03:02 +13:00
Dmitry Maksyoma
7a1c1edeb4
Deb/rpm: change test user password to "foobar"
...
kasmvncpasswd validates password, so "bar" would be too short.
2021-02-28 20:48:17 +13:00
Dmitry Maksyoma
489c68f7cc
Merge branch 'users' into packages_and_multiuser_passwd
2021-02-28 19:50:27 +13:00
Dmitry Maksyoma
01d448f018
Deb: run test image, instead of just printing command
2021-02-28 19:46:18 +13:00
Kasm
f981b1e88a
Update ui.js
2021-02-26 10:10:00 -05:00
Kasm
e79b454fb5
Merge pull request #22 from kasmtech/create_fedora_package
...
Create fedora package
2021-02-25 07:27:24 -05:00
Lauri Kasanen
59fe8ad9db
kasmvncpasswd: Nicer behavior when piping a password, add example in help
2021-02-25 13:15:02 +02:00
Dmitry Maksyoma
78768d52ff
VNC Docker startup: commented out verbose logging for ease of use
2021-02-25 23:14:50 +13:00
Dmitry Maksyoma
e9626fdacf
VNC Docker startup: use new kasmvncpasswd with multiple users support
2021-02-25 23:13:32 +13:00
Dmitry Maksyoma
9084409a20
Merge branch 'users' into packages_and_multiuser_passwd
2021-02-25 22:10:40 +13:00