aboutsummaryrefslogtreecommitdiffstats
path: root/common/rfb
Commit message (Collapse)AuthorAgeFilesLines
* Fix log name typo for SSecurityRSAAESHEADmasterPierre Ossman5 days1-1/+1
|
* Always flush sockets on shutdown()Pierre Ossman6 days9-19/+72
| | | | | | | | The system shutdown() function doesn't drop buffered data, so neither should we. We had one fix in place, but that didn't cover all cases. Move this handling to all socket like classes we have.
* Reduce header includes in TLS/RSA-AES headersPierre Ossman6 days4-9/+26
| | | | We can make do with forward declarations for these classes.
* Fix bad restore point handling in RSA-AES handlerPierre Ossman6 days1-1/+1
| | | | | A set restore point needs to be used or cleared. Release builds will let this slide, but debug builds will kill the connection.
* Fix encoder solid area detectionPierre Ossman2024-12-072-19/+25
| | | | | | | This got completely broken in baca73d0 where the templated method got incorrectly called instead of the wrapper/multiplexer. It seems to have been harmless on most systems, but caused crashes on CPUs with strict memory alignment requirements.
* Merge branch 'keysplit' of https://github.com/CendioOssman/tigervncPierre Ossman2024-12-042-0/+107
|\
| * Move keyboard tracking to CConnectionPierre Ossman2024-12-042-0/+107
| | | | | | | | | | | | This is a general thing so move it in to the core library instead, letting vncviewer focus on just translation of system events to VNC ones.
* | Mark all exception type methods as noexceptPierre Ossman2024-11-261-5/+5
| | | | | | | | | | This is required for the built in exceptions, so let's do the same to avoid surprises.
* | Don't save exceptions as std::exceptionPierre Ossman2024-11-261-1/+1
| | | | | | | | | | | | That type is not guaranteed to preserve anything useful at all. Instead, try to either preserve a more specific type, or use std::runtime_error which at least has a guaranteed message.
* | Change some assertions to exceptionsPierre Ossman2024-11-222-2/+6
| |
* | Capitalize some more logging and exceptionsPierre Ossman2024-11-2217-84/+84
| |
* | Merge branch 'master' of https://github.com/madnicendio/tigervncPierre Ossman2024-11-2212-33/+33
|\ \
| * | Capitalize first letter in log, exception & errorMadeleine Nilsson2024-11-218-29/+29
| | | | | | | | | | | | The reason for this is to keep a consistency through out the project.
| * | Standardize log message prefix formatMadeleine Nilsson2024-11-111-2/+2
| | | | | | | | | | | | The reason for this is to keep a consistency through out the project.
| * | Standardize on sentence case in titlesMadeleine (ThinLinc team)2024-11-113-3/+3
| | | | | | | | | | | | The reason for this is to keep a consistency through out the project.
* | | Add missing stdexcept includePierre Ossman2024-11-181-0/+3
| | | | | | | | | | | | | | | The issue was masked by it getting included by the TLS headers. But if GnuTLS was disabled, then this file would fail to build.
* | | Merge branch 'mouse-button-support' of https://github.com/CendioHalim/tigervncPierre Ossman2024-11-1823-18/+145
|\ \ \
| * | | vncviewer: support for back/forward mouse buttonsAdam Halim2024-10-228-6/+48
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit implements the pseudo-encoding ExtendedMouseButtons which makes it possible to use the back/forward mouse buttons. This commit contains work originally done by PixelSmith <manny33@frontbuffer.com>.
| * | | Add server support for forward/back mouse buttonsAdam Halim2024-10-2215-12/+97
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This commit adds support for the pseudo-encoding ExtendedMouseButtons in Xvnc and x0vncserver, which makes it possible to use to use the back/forward mouse buttons. This commit contains work originally done by PixelSmith <manny33@frontbuffer.com>.
* | | | Use standard library naming for exceptionsPierre Ossman2024-11-0625-156/+158
| | | | | | | | | | | | | | | | | | | | This makes things more consistent since we mix with the standard library exceptions so often.
* | | | Replace base exception class with standard libraryPierre Ossman2024-11-063-15/+18
| | | | | | | | | | | | | | | | | | | | There is no point to having our own generic exception class. Let's use the one provided by the standard C++ library.
* | | | Use specific class for protocol problemsPierre Ossman2024-11-0619-77/+88
| | | | | | | | | | | | | | | | Make it easier to identify communication issues.
* | | | Use standard exception classesPierre Ossman2024-11-0629-198/+199
| | | | | | | | | | | | | | | | | | | | Use the more specific already included exception classes for common errors to keep things more understandable.
* | | | Use C++ allocation for temporary buffersPierre Ossman2024-11-062-20/+12
| | | | | | | | | | | | | | | | | | | | Implicitly gives us the correct exceptions on errors instead of us having to check and throw ourselves.
* | | | Subclass exceptions from std::exceptionPierre Ossman2024-11-066-27/+26
| | | | | | | | | | | | | | | | | | | | Make sure our exceptions are part of the standard exception class hierarchy.
* | | | Use what() to access exception descriptionPierre Ossman2024-11-064-23/+23
| | | | | | | | | | | | | | | | Harmonize with the standard C++ exceptions.
* | | | Use static string for exceptionsPierre Ossman2024-11-0614-69/+86
| |/ / |/| | | | | | | | | | | In preparation for using the built in C++ exception classes, which do not accept a format string.
* | | Explicitly tag getHostAndPort() as inlinePierre Ossman2024-10-171-2/+2
| |/ |/| | | | | | | Otherwise the compiler will complain about a defined but unused static function.
* | Merge branch 'errno' of github.com:CendioOssman/tigervncPierre Ossman2024-10-091-2/+2
|\ \
| * | Split SystemException to handle WindowsPierre Ossman2024-10-091-2/+2
| |/ | | | | | | | | | | | | | | | | | | | | | | | | Windows has (at least) two error namespaces, both errno and GetLastResult(). These overlap, so it is important we keep track of which one we are dealing with. To make things extra problematic, the BSD socket API normally uses errno, but on Windows it has been mapped in to the GetLastResult() namespace. Try to keep better control of this by using separate classes for the namespaces.
* / More carefully release mouse buttons on closePierre Ossman2024-09-242-4/+4
|/ | | | | | | | | | | | | Only the client that currently has buttons pressed should actually send a release event as the client might not be currently in control of the pointer state. This is most clearly seen in a client that hasn't event authenticated properly yet. Approximate this from the server by using the last known server cursor position. It should hopefully not differ much from the last client provided position. Follow-up to 986280b382d57ef4f68d2d4afb13b26772e5acb0.
* Add more usage of SystemExceptionPierre Ossman2024-09-041-2/+3
| | | | | Prefer this exception for failures involving errno as it gives a better error description.
* Fix reporting of some TLS errorsPierre Ossman2024-09-042-22/+20
| | | | | These functions return a GnuTLS status, so we should use the correct exception for that so we get the proper error messages.
* Correctly handling rejecting server keyPierre Ossman2024-09-041-1/+1
| | | | | This is the user actively rejecting the connection, and should be signalled as such for correct behaviour.
* Add missing config.h includesPierre Ossman2024-09-045-0/+19
|
* Remove ConnFailedExceptionPierre Ossman2024-09-024-26/+22
| | | | | | | | There were more unclear usage of this exception class, and since nothing catches it it is very unclear what the purpose is. Go ahead and just remove it. Follow-up to bcaaea7.
* Correctly handle ZRLE cursorsPierre Ossman2024-08-301-2/+2
| | | | | | Cursor data has a depth of 32 bits and hence cannot use CPIXELs. This is a regression from baca73d.
* Move getUserPasswd()/showMsgBox() to CConnectionKang Lin2024-08-3013-122/+41
| | | | | Problems with the original code: A process can only establish one connection. After modification, multiple connections can be supported.
* H264Libav: Use nearest-neighbour sampling in scalerAndri Yngvason2024-08-221-1/+1
| | | | | | | | | | | sws_getCachedContext will set a default sampling method if 0 is passed to the flags argument. This means that when it is called again, the flags argument will not match the flags in the context, so a new one will be allocated every time. To get around this problem, we assign an explicit sampling method, one that also happens to be more efficient and just as good for this use-case as the default one, which is bicubic interpolation.
* H264Libav: Handle colour space conversionAndri Yngvason2024-08-191-0/+15
| | | | | The scaler is now informed of the colour space encoded into the stream so that it may do the proper conversion.
* Merge branch 'h264-buffer-size-fix' of https://github.com/any1/tigervncPierre Ossman2024-08-192-11/+19
|\
| * H264Libav: Clean up sws contextAndri Yngvason2024-08-161-0/+1
| | | | | | | | This fixes a memory leak
| * H264Libav: Use AVFrame for pixel format conversion bufferAndri Yngvason2024-08-162-11/+18
| | | | | | | | | | | | | | | | This ensures that the buffer is allocated with the correct alignment and padding for use with sws_scale. This fixes out-of-bounds writes which would in some cases cause segmentation faults and/or heap corruption.
* | Use proper gnutls_free() on WindowsPierre Ossman2024-08-132-10/+4
| | | | | | | | | | | | The underlying issue requiring this hack was fixed ages ago. Unfortunately, the fixed GnuTLS doesn't consider static linking. So we need to add a new hack that permits that.
* | Avoid using excessive namespacesPierre Ossman2024-08-136-16/+8
| | | | | | | | | | Try to be more clear about what things are external to the current context, and what aren't.
* | Avoid connection failed exceptionPierre Ossman2024-08-134-12/+12
| | | | | | | | | | The usage of this is unclear as it is never caught. Use the general exception class, to stay consistent with all other protocol handling.
* | Remove unused setPixelFormat() callbackPierre Ossman2024-08-122-12/+6
| | | | | | | | | | This was made obsolete in dd45b44 when we extended the serverInit() callback.
* | Update processMsg() descriptionPierre Ossman2024-08-122-12/+10
| | | | | | | | | | This method is no longer blocking, so the description needed to be adjusted.
* | Include key code for fake key eventsPierre Ossman2024-08-121-6/+6
| | | | | | | | Let's try to mimic a real event as much as possible to avoid bugs.
* | Better type for pointer button maskPierre Ossman2024-08-129-9/+9
| | | | | | | | | | This is a very limited bit field, so use an 8 bit type to clearly show how many bits are available.