forked from TigerVNC/tigervnc
-
Notifications
You must be signed in to change notification settings - Fork 0
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
[pull] master from TigerVNC:master #78
Open
pull
wants to merge
193
commits into
Mu-L:master
Choose a base branch
from
TigerVNC:master
base: master
Could not load branches
Branch not found: {{ refName }}
Loading
Could not load tags
Nothing to show
Loading
Are you sure you want to change the base?
Some commits from the old base branch may be removed from the timeline,
and old review comments may become outdated.
Open
Conversation
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
That extra add_fd() only set the read notification, overwriting any write notification set up in the lines just above.
FLTK can send events with fl_xevent pointing to random memory, which means that we cannot trust that structure. XQueryPointer() can give us what we need, at the cost of an extra round trip.
They must belong to the rfb namespace, not to the SConnection class. Also add an AccessNone constant, since it's better to use a mnemonic symbol rather than zero to initialize the accessRights members. Signed-off-by: Carlos Santos <casantos@redhat.com>
Make it easier to work iteratively by not having to remove the output file each time.
The norm is that the install target is read only from the point of view of the source and build directory, so avoid accidentally triggering any build.
Move these RFB specific things to rfb::VNCServer, for clarity. Signed-off-by: Pierre Ossman <ossman@cendio.se> Signed-off-by: Carlos Santos <casantos@redhat.com>
Specifies that the server must ignore all keyboard or mouse events sent by the client. Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=2180903 Signed-off-by: Carlos Santos <casantos@redhat.com>
Allow for alternative user config locations, deprecate `~/.vnc` in favour of XDG Base Directory Specification paths
It's perfectly fine to give a NULL pointer if the length has explicitly been specified as zero.
There is too much variation between distributions for us to have a good PAM configuration that works everywhere. Try to make this more obvious by having a comment at the top of the file.
E.g. pam_env.so might modify this variable, so we should see what we get out of PAM when building a log file path.
The syslog file descriptor will be closed when we are cleaning up in preparation for running the vncserver script, so we need to explicitly reopen things in case we need to log errors. At the same time, try to be polite and explicitly close the log when appropriate.
This is only needed because of an historical type change of the legacy directory, so avoid doing it anywhere else.
This is an often changed database, so it is better suited for $XDG_STATE_HOME rather than the more static $XDG_DATA_HOME.
Avoid duplicating this complexity in too many places. At the same time make the interface more identical to regular mkdir(), for familiarity.
Repeating a timer can be done in two ways: * Returning true from the handler * Calling start() again in the handler The latter is useful if you want to change the timer interval. If both are used, then it becomes ambiguous when the timer should fire again. Detect this case and warn about it. Current implementation will respect the new interval given to start(), rather than the interval set before running the handler.
This should have been done in a4308c9.
It is much more sane to treat "0" as "a timer is ready NOW", so let's change to using -1 as the invalid timeout value.
It currently won't ever be called with an empty list of timers, but it is a public function so that might happen in the future. Make sure this case is handled without crashes.
They were badly formatted, way longer than the normal 72 columns.
One-shot timers are more common, so let's change the API a bit to make that use case simpler. This API also makes it more clear what is happening.
Only announce clipboard for plain text data
Commit 8a80c90 added a check to prevent announcing clipboard when it's not plain text data. When this check triggers and we want to ignore the non-plain text clipboard, we should reset the state by no longer indicating pending clipboard, and by asking the server to clear its clipboard. This ensures we don't end up in a state where the server thinks the viewer has useful clipboard data, but it doesn't.
Socket APIs are used in more places than the abstraction in common/network. Make it easier to use this exception class by putting it in a more common place.
The behaviour is not consistent as Windows doesn't use errno for socket errors, but Unix systems do. Always use the same exception to keep things somewhat sane.
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.
Fixed so config variables can pass an empty argument. Solves issue #1791.
We seem to have gotten this implicitly before, but now that GitHub has switched to Ubuntu 24.04 we have to be explicit about it.
Otherwise the compiler will complain about a defined but unused static function.
Avoid duplicating this parsing as that will just increase the risk for bugs. And in fact, this duplicated code already does not handle all cases properly.
It seems XGetClassHint() doesn't set the pointers to NULL if there is no name, so we need to make sure it is cleared beforehand. Otherwise we can get an invalid pointer given to XFree().
These are generated during the cmake stage, but cmake thinks they are generated during the build stage because of our rule to update the timestamp on them. As a result, it thinks they should be removed when doing "make clean". There doesn't seems to be an easy way to tell cmake to leave these alone. So instead, point cmake to a different marker file when updating the timestamps. We don't care if that gets removed as it has no valuable contents.
The UserDialog object is now only created for a single connection at a time, which means we need to make sure the cached username and password survive until the subsequent object.
The sentence was also restructured a bit to improve the flow.
These seem to always be in ASCII and English, unfortunately, but let's at least use the API the could give use something more useful.
In preparation for using the built in C++ exception classes, which do not accept a format string.
In preparation for using the built-in exception types, where the string can only be set via the constructor.
Harmonize with the standard C++ exceptions.
Make sure our exceptions are part of the standard exception class hierarchy.
Implicitly gives us the correct exceptions on errors instead of us having to check and throw ourselves.
Use the more specific already included exception classes for common errors to keep things more understandable.
Make it easier to identify communication issues.
There is no point to having our own generic exception class. Let's use the one provided by the standard C++ library.
Make sure the required Windows defines are always available.
This makes things more consistent since we mix with the standard library exceptions so often.
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
See Commits and Changes for more details.
Created by pull[bot]
Can you help keep this open source service alive? 💖 Please sponsor : )