aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb
Commit message (Collapse)AuthorAgeFilesLines
* Merge branch 'RHEL-34880' of github.com:casantos/tigervncHEADmasterPierre Ossman11 days10-147/+136
|\
| * Make Xvnc and x0vncserver pass the display name to PAM modules.Carlos Santos2025-06-132-0/+22
| | | | | | | | | | | | Fixes: https://issues.redhat.com/browse/RHEL-34880 Signed-off-by: Carlos Santos <casantos@redhat.com>
| * Send PAM error messages to VNC clientsCarlos Santos2025-06-137-14/+38
| | | | | | | | | | | | | | Send the generic "Authentication failed" if the PAM module does not pass an error message. Signed-off-by: Carlos Santos <casantos@redhat.com>
| * Move all PAM authentication code to UnixPasswordValidatorCarlos Santos2025-06-134-134/+77
| | | | | | | | | | | | It is not used anywhere else. Signed-off-by: Carlos Santos <casantos@redhat.com>
* | Only configure valid hostnames for SNIPierre Ossman2025-06-181-4/+20
| | | | | | | | | | The specification states that servers should reject invalid names (e.g. IP addresses), so try to make sure we only set something valid.
* | Send TLS alerts to peer on errorsPierre Ossman2025-06-181-16/+68
| | | | | | | | Better inform the peer why we are terminating the connection.
* | Let TLSSocket handle TLS handshakePierre Ossman2025-06-182-20/+8
| | | | | | | | More avoiding duplication and increasing encapsulation.
* | Let TLSSocket handle TLS terminationPierre Ossman2025-06-182-42/+4
| | | | | | | | Let's avoid duplication and also raise the encapsulation a bit.
* | Merge TLS I/O in common classPierre Ossman2025-06-184-50/+36
|/ | | | | | Input and output do not happen independently in TLS streams, so we need to have a coordinating central object for all I/O. E.g. a TLS read can result in a low level write.
* Move colour map check to CConnectionPierre Ossman2025-03-302-0/+10
| | | | | This is a generic thing, not specific to the FLTK viewer. It belongs in the core code.
* Don't force everyone to implement setCursorPos()Pierre Ossman2025-03-302-0/+5
| | | | | You need to activate the feature by setting supportsCursorPosition, so there is no point in forcing everyone to implement the handler.
* Properly store cursor in ServerParams objectPierre Ossman2025-03-302-0/+12
| | | | | | We already had a field in the ServerParams structure, but we never actually stored anything in it. Let's fix that so the cursor behaves like other state we get from the server.
* Remove unused CConnection/SConnection callbacksPierre Ossman2025-03-294-19/+0
| | | | These have never been used for anything and just clutter up the API.
* Move global server checks to VNCServerSTPierre Ossman2025-03-292-10/+30
| | | | | These are not per-client settings, so let's move the enforcement to the common server object as much as possible.
* Move access checks to SConnectionPierre Ossman2025-03-292-6/+22
| | | | | | Access bits are part of SConnection, so let it handle all the basic checks as well. This allows us to reduce the complexity of VNCSConnectionST a bit.
* Make CMsgHandler/SMsgHandler pure interfacesPierre Ossman2025-03-299-465/+227
| | | | | | It's a bit confusing that some handling is done in CMsgHandler/SMsgHandler, and some handling is done in CConnection/SConnection.
* Mark internal connection callbacks as protectedPierre Ossman2025-03-292-139/+138
| | | | | | These are just for interactions internally within the connection objects and their sub classes. Mark them as protected to make the API more clear, and to avoid accidental use.
* Don't modify user settings in auto modePierre Ossman2025-03-292-0/+12
| | | | | Only override the actively used values, not the user values that are stored and displayed in the options dialog.
* Log invalid screen layoutPierre Ossman2025-03-282-3/+21
| | | | | | | To be able to debug exactly what is wrong with the layout. Unfortunately we don't know what log level is used for actual "invalid layout" message, or if it is even logged as all, since that happens elsewhere. So let's be cautious and use a debug log level here.
* Refresh screen on pixel format changePierre Ossman2025-03-203-0/+10
| | | | | | | | | | Make sure everything on screen has a consistent look when the client switches between different pixel formats. Use the lossless refresh mechanism to make sure this doesn't interfere with more important updates. Based on a suggestion by Piotr Henryk Dabrowski.
* Don't wrap exceptions from readRect()Pierre Ossman2025-03-131-6/+2
| | | | | | | | This is a revert of 0ce9fef. The object slicing is causing issues, e.g. when we get a completely expected end_of_stream exception. It's unclear what exceptions we needed this wrapping for. We'll just have to remove it and see what problems we encounter.
* Use std::exception_ptr to store exceptionsPierre Ossman2025-03-132-16/+14
| | | | This is much more robust and flexible than what we came up with.
* Handle very early connection errorsPierre Ossman2025-03-131-3/+9
| | | | | | It's rare, but there are some things that can go wrong in the constructor for a new client object. Make sure we handle these and properly close the socket, rather than leave it dangling.
* Fix bad logic in security types handlingPierre Ossman2025-03-131-1/+1
| | | | Broken in 4ff02ae.
* Convert SecurityTypes to EnumListParameterPierre Ossman2025-03-136-29/+42
|
* Enable unencrypted "Plain" authentiction by defaultPierre Ossman2025-03-131-1/+1
| | | | | The client should support all server security types by default. Unsure why this was overlooked.
* Convert PlainUsers to StringListParameterPierre Ossman2025-03-132-11/+11
|
* Convert RemapKeys to StringListParameterPierre Ossman2025-03-132-31/+37
|
* Remove KeyRemapper mutexPierre Ossman2025-03-132-11/+0
| | | | We don't do multiple threads on the server, so this is not needed.
* Make use of IntParameter range validationPierre Ossman2025-03-065-11/+19
|
* Fix bad forward declarations of StringParameterPierre Ossman2025-03-032-4/+0
| | | | This should have been done as part of cf1bc66.
* Convert conv unit tests to Google TestPierre Ossman2025-02-271-1/+1
|
* Move concurrency abstration layer to corePierre Ossman2025-02-255-26/+22
| | | | | OS abstractions are generic enough that we can merge these with the new core library.
* Move application directory handling to corePierre Ossman2025-02-254-8/+3
| | | | | These are general plumbing, so they fit in nicely with the new core library.
* Rename core/util to core/stringPierre Ossman2025-02-2520-19/+20
| | | | | It's just string helper functions here, so let's get rid of the catch-all name for this module.
* Get rid of __rfbmax()/__rfbmin()Pierre Ossman2025-02-257-28/+40
| | | | | | | | They weren't that well used, and were mostly just confusing special functions anyway. Allows us to move away from generic and ambigious headers such as "util".
* Move time utilities to separate filePierre Ossman2025-02-253-2/+3
| | | | Let's clear things up by categorizing our utility functions.
* Move timers to core libraryPierre Ossman2025-02-2511-343/+27
| | | | | | | Make it clearer what is protocol handling and what is just general plumbing. This is one step of several.
* Move logging to core libraryPierre Ossman2025-02-2538-842/+61
| | | | | | | Make it clearer what is protocol handling and what is just general plumbing. This is one step of several.
* Move configuration to core libraryPierre Ossman2025-02-2531-790/+131
| | | | | | | Make it clearer what is protocol handling and what is just general plumbing. This is one step of several.
* Move base exception classes to core libraryPierre Ossman2025-02-258-11/+4
| | | | | | | Make it clearer what is protocol handling and what is just general plumbing. This is one step of several.
* Move utility functions to core libraryPierre Ossman2025-02-1328-1045/+293
| | | | | | | Make it clearer what is protocol handling and what is just general plumbing. This is one step of several.
* Move basic data types to core libraryPierre Ossman2025-02-1367-772/+464
| | | | | | | Make it clearer what is protocol handling and what is just general plumbing. This is one step of several.
* Remove rfb:: prefix from rfb::RegionPierre Ossman2025-02-131-25/+45
| | | | | We normally avoid specifying a class' own namespace prefix in order to keep the code more compact. Region was the sole exception.
* Use initializer lists for basic data typesPierre Ossman2025-02-1313-39/+41
| | | | | | | | Try to keep the code more compact for the simple things where the type should be obvious from the context. Helps us avoid line wrapping. Also remove explicit conversions to Region where the compiler is able to figure it out by itself, again to reduce line length.
* Move getHostAndPort() to network libraryPierre Ossman2025-02-131-120/+0
| | | | | This is a network function, so it makes more sense in the network library.
* Reduce header #include:sPierre Ossman2025-02-1352-74/+165
| | | | | Make compile times faster by reducing the number of headers included in other headers.
* Remove unused SStaticDesktopPierre Ossman2025-02-131-43/+6
| | | | This inline class just makes this header overly complex.
* Merge branch 'resize' of https://github.com/CendioOssman/tigervncPierre Ossman2025-02-062-4/+12
|\
| * Log ComparingUpdateTracker stats at debug levelPierre Ossman2025-02-051-4/+6
| | | | | | | | | | | | We've made the client more aggressive in resizing sessions, so this can quickly produce a lot of log output. Reduce the log level to debug until we can keep the stats for the entire session lifetime.