Lauri Kasanen
661e9ef329
Return 403 for too large Auth headers (attack)
3 years ago
Lauri Kasanen
a6842bb46a
Add support for X-Forwarded-For
3 years ago
Matthew McClaskey
774a61ace7
Toggle game mode
3 years ago
Lauri Kasanen
d581eb798d
Use 64-bit var for the served file size
3 years ago
Matthew McClaskey
b2e878e79e
Log and send clipboard op ids
3 years ago
Matthew McClaskey
3f89e5c117
Resolve KASM-2335 "Feature/ ime support"
3 years ago
Lauri Kasanen
e6b4f40ed7
Have BlacklistThreshold 0 disable the blacklist
3 years ago
Lauri Kasanen
e3afc937e5
Bulk update_user and remove_user should check for all users' existence
3 years ago
Justin Travis
42d7ff015d
Resolve KASM-2238 "Feature/ freeze session"
3 years ago
Matthew McClaskey
99680f23ff
Resolve KASM-2194 "Feature/ bulk user mgmt"
3 years ago
matt
e6cc132874
fix accidental removal in update_user
3 years ago
Matthew McClaskey
03729ca66e
Update user
4 years ago
Lauri Kasanen
49174b1586
Threaded context
4 years ago
Lauri Kasanen
bb364badd3
Apply blacklist options to httpd basicauth
4 years ago
mmcclaskey
d3add8150c
Bugfix/kasm 2004 download spaces ( #70 )
...
* Handle spaces in download files, dirlisting
* Disallow / in percent urls
Co-authored-by: Lauri Kasanen <cand@gmx.com>
4 years ago
mmcclaskey
5b28a168d0
Chromeclip ( #69 )
...
* Initial binary clipboard support
* Rename -DLP_Clip_Types to -DLP_ClipTypes
* Better handling of websocket frames
* Copy-paste bug in SSE2 scaling to under 0.5x
* Remove old text clipboard
* Bind text to binary clipboard
* Move binclip clear to probing phase
* Off-by-one in sse2 scaling
* Add a clarifying log message for INCR clipboard transfers
* WIP: Update novnc commit
* Fix CentOS pipeline
* webpack fix
* Update novnc commit
* Change some DLP defaults
* update novnc commit
Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: matt <matt@kasmweb.com>
4 years ago
mmcclaskey
e6d1b8c3c8
Fix a nonexistent username + empty password passing through ( #68 )
...
Co-authored-by: Lauri Kasanen <cand@gmx.com>
4 years ago
Mariusz Marciniak
0a45fcc700
KASM-1871 Add smooth scrolling
...
Previously all scrolling relied on "clicking" the up/down or left/right scroll buttons
which made it unprecise and to always scroll at the same speed.
Now we pass the scroll delta directly to the xorg input driver so the scroll is more responsinve and adaptive.
4 years ago
mmcclaskey
93e47e5d54
Bugfix/kasm 1912 websocket crash ( #57 )
...
* Copy-paste bug in SSE2 scaling to under 0.5x
* Better handling of websocket frames
* KASM-1912 websocket crash, scaling bug
Co-authored-by: Lauri Kasanen <cand@gmx.com>
Co-authored-by: matt <matt@kasmweb.com>
4 years ago
mmcclaskey
3f680a7b80
KASM-1913 webp mode tweaks ( #55 )
...
Co-authored-by: matt <matt@kasmweb.com>
4 years ago
mmcclaskey
0cb2c0ba9f
Sse scaling ( #52 )
...
* Add CPUID functions for runtime dispatch
* Add SSE2 scaling
4 years ago
mmcclaskey
dc21d5f97c
Add a set of self-microbenchmarks ( #51 )
...
Co-authored-by: Lauri Kasanen <cand@gmx.com>
4 years ago
Lauri Kasanen
d80eb39686
Fix DigitalOcean load balancer websocket connection (they too used wrong case in a header)
4 years ago
Lauri Kasanen
4b28667e90
Fix possible missing clipboard deinit
4 years ago
Lauri Kasanen
9ca850a108
Add pid to the internal socket name, clarify websocketport bind error
4 years ago
Lauri Kasanen
a9b66833a9
Change frame stats API json formatting
4 years ago
Lauri Kasanen
e208d5bb5f
Bottleneck clear should wait instead of try
4 years ago
Lauri Kasanen
f57e6e644b
Add some more frame stats granularity, skip frame stats on no-data calls
4 years ago
Lauri Kasanen
c1ed769780
Clear disconnected clients from the bottleneck stats api
4 years ago
Lauri Kasanen
438271d68b
Add support for vmware cursor
4 years ago
Lauri Kasanen
fb9dd56703
Initial /api/get_frame_stats
4 years ago
Lauri Kasanen
32e8d40472
Implement /api/get_bottleneck_stats
4 years ago
Lauri Kasanen
811e7cde3a
Use case-insensitive search for the websocket headers
4 years ago
Lauri Kasanen
29e0e2bd2e
Fix animated cursor resize crash
4 years ago
Lauri Kasanen
9144045718
Append the microsecond-level connection time to the abstract socket name, making it always unique
4 years ago
Lauri Kasanen
7a695c976e
Writer perms were checked in multiple places, consolidate and fix a missing case
4 years ago
Lauri Kasanen
14e08a2067
Add trailing slash in dir listing
4 years ago
Lauri Kasanen
95d34f7e58
Fix some local->remote clipboard merge misses
4 years ago
Lauri Kasanen
a1cf454f06
Sync utf8 clipboard support
4 years ago
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
4 years ago
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.
4 years ago
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.
4 years ago
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.
4 years ago
Pierre Ossman
a55f142c98
Don't shuffle input buffer unless actually needed
4 years ago
Pierre Ossman
25995e2490
Remove unused bufSize argument from streams
4 years ago
Pierre Ossman
281d65292a
Remove special functions from JPEG compressor
...
We can do what we want with the standard methods.
4 years ago
Pierre Ossman
57a3c3bba8
Simplify stream availability handling
...
Just have a simply number of bytes argument to avoid a lot of
complexity.
4 years ago
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.
4 years ago
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.
4 years ago
Pierre Ossman
910fd8fa3e
Remove unused stream methods
...
They were accidentally left unused in fbad8a9 so they haven't been used
in some time.
4 years ago
Pierre Ossman
c97828471c
Use proper constants for socket shutdown()
...
For readability.
4 years ago
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.
4 years ago
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.
4 years ago
Lauri Kasanen
1632f4888d
Enable basicauth by default, remove the option to supply it on the command line
4 years ago
matt
93d3bf052d
Removed old line
4 years ago
matt
7b3f6876b4
Fixed syntax error
4 years ago
matt
46e03289be
Manually merged region changes
4 years ago
Lauri Kasanen
c3e30dcea1
Add support for DLP_Region
4 years ago
Lauri Kasanen
fed991d697
Return 401 unauth for non-owner trying /api/
4 years ago
Lauri Kasanen
1269fddadf
Add a more specific error for a nonexistent screenshot
4 years ago
Lauri Kasanen
688e749fda
Tentative build fix for newer gccs
4 years ago
Lauri Kasanen
980eedd33b
Add HTTP GET APIs for creating, removing users and giving control
4 years ago
Lauri Kasanen
3f6524ee30
Add support for owner screenshot HTTP GET API
4 years ago
Dmitry Maksyoma
101695970b
Reapply "Use crypt_r in threaded code"
4 years ago
Dmitry Maksyoma
9084409a20
Merge branch 'users' into packages_and_multiuser_passwd
4 years ago
Dmitry Maksyoma
fbe05cee86
Fix random 401 Forbidden on Ubuntu 20 and other newer releases
4 years ago
Dmitry Maksyoma
90101a7e91
Rpm: CentOS dfart. Rpm building isn't automated yet.
4 years ago
Dmitry Maksyoma
c32137fa17
Merge branch 'master' into create_ubuntu20_package
5 years ago
Lauri Kasanen
0d47d4890a
Enable TLS 1.1 and 1.2
5 years ago
Lauri Kasanen
a4e70ff56b
Remove less-than-256-colors indexed limit for small rects
5 years ago
Lauri Kasanen
83c83f43ef
Add a parameter for separate SSL key
5 years ago
Lauri Kasanen
481b063eb7
Fix missing init for DLP timestamps
5 years ago
Lauri Kasanen
531705c05c
Remove set-desktop-size perms from read-only clients
5 years ago
Lauri Kasanen
1f69d1584a
Prevent read-only clients from changing kasm settings
5 years ago
Lauri Kasanen
a27744bca6
Enable TLS 1.1 and 1.2
5 years ago
Lauri Kasanen
36deba3a75
Correct non-basicauth and command-line user:pass being read-only
5 years ago
Lauri Kasanen
0c83a86bc8
Dynamically apply permissions
5 years ago
Lauri Kasanen
263d05a296
Apply read-only perms upon connecting
5 years ago
Lauri Kasanen
9a5afc5a62
Handle the new, multi-user kasmpasswd format auth
5 years ago
Lauri Kasanen
80513c8616
Change "recent" to be 10s from 60s, and in its own variable
5 years ago
Lauri Kasanen
1db77ee6bd
Add some basicauth logging (most debug/verbose only)
5 years ago
Lauri Kasanen
279c41fc32
Add option to pass the password in an encrypted file, kasmvncpasswd utility
5 years ago
Lauri Kasanen
ae07707e66
Don't log BasicAuth
5 years ago
Lauri Kasanen
bb71cd4ec4
Have stats react faster to big cpu lag spikes
5 years ago
Lauri Kasanen
99fe70bbd6
Add a debug-level print on the last ~second's maximum encoding time
5 years ago
Lauri Kasanen
b30318a68f
Change stats format to JSON array style
5 years ago
Lauri Kasanen
d5bdef121a
Add support for bottleneck stats
5 years ago
Pierre Ossman
3528e358cc
Free memory from getaddrinfo()
...
We handled this in the failure scenario, but not in the vastly more
common successful case.
5 years ago
Andrew Yoder
c312417d81
Correction to socket error connection message
5 years ago
Mark Mielke
80a637c793
Fix division by zero exception in SSecurityPlain.
...
If using SSecurityPlain and the user specifies an empty username
and password, it will invoke InStream::checkNoWait(0) which will
cause a division by zero when calculating the number of available
items.
Enhance InStream::check() to behave properly when asked for
zero items, or zero sized items.
Add comments to InStream::check(), InStream::checkNoWait(),
and InStream::readBytes() to document expected behaviour
when requested to check or read zero items, or an item with
zero size.
5 years ago
Pierre Ossman
47bba8a1e6
Fix JpegCompressor::overrun() type change
...
The method it overloads got tweaked some time ago, so we need to make
sure this method follows suit.
5 years ago
Pierre Ossman
da406d0cac
Include error code in getaddrinfo() exceptions
5 years ago
Pierre Ossman
9240f0b85c
Avoid using insecure variable length arrays
5 years ago
Alex Tanskanen
03639406dc
Throw GAIException() for getaddrinfo errors
...
Created a new subclass of Exception called GAIException() that will
handle error messages from getaddrinfo() instead of letting Exception()
handle it. GAIException() will make use of gai_strerror() to map the
error code to text. On Windows, gai_strerrorW() must be used if the text
is encoded with UTF-8.
5 years ago
Alex Tanskanen
209712b18f
Fix typo in SocketException message
5 years ago
Alex Tanskanen
57427d5d33
Make system error messeges in Windows 10 use UTF-8
...
The previous error messages did not support Unicode characters. This
commit will use UTF-8 encoding to be able to display error messages in
every language.
5 years ago
Pierre Ossman
f38e474993
Fix error check for zlib calls
...
There are multiple "okay" return values, not just Z_OK. Make sure we
don't bail out needlessly.
5 years ago
Lauri Kasanen
49f9ce8e5b
Remove remnants of the old HTTP server
5 years ago
Pierre Ossman
06fd7ac061
Use sys/time.h on Windows as well
...
Modern MinGW seems to provide this, so simplify things a bit. This also
side steps some of the issue of the windows.h/winsock2.h include
ordering.
5 years ago
Pierre Ossman
b7dc4a16fe
Handle pending data in TLS buffers
...
There might be more bytes left in the current TLS record, even if
there is nothing on the underlying stream. Make sure we properly
return this when we aren't being requested to block.
5 years ago