aboutsummaryrefslogtreecommitdiff
path: root/nx-X11/programs/Xserver/hw/nxagent/Display.c
Commit message (Collapse)AuthorAgeFilesLines
* Display.c: drop icon file supportUlrich Sibiller2020-01-051-144/+16
| | | | | | | | | | | | | | | | | | | The normal case was to use the builtin icons. There were two cases where the icon file was read from disk: 1) /usr/NX/share/images/nxagent.xpm was existing which normally is not there 2) case 2 was not true and nxagent.xpm was existing somewhere in the PATH (!) (replace nxagent.xpm by x2goagent.xpm if in x2gp mode) Scanning the path from the PATH variable for xpm files is kind of unexpected and dangerous, too (think of automounter triggers or invalid xpm files). Also remove the xpm files from the distribution.
* Display.c: fix formatUlrich Sibiller2019-09-291-5/+5
|
* Splash.c: remove global variables for colorsUlrich Sibiller2019-08-271-16/+0
| | | | Make them defines. Also determine the screen depth dynamically.
* Display.c: safe some lines by calling SAFE_XFree and SAFE_freeUlrich Sibiller2019-08-061-49/+16
|
* Revert "nxagent: rework Bool handling"Ulrich Sibiller2019-02-151-1/+1
| | | | | | | | | | | | This reverts commit 16cd2bbe1c4425e3fa557f9ca0723aa94a50b071. It turned out that I had missed some of the Booleans being actually tristate variables. I think I can fix this (they do not need to be tristate) but I revert this for now to get back to a working state (there are reports about non-working fullscreen mode and reconnect problems). Refers to ArcticaProject/nx-libs#772
* nxagent: rework Bool handlingUlrich Sibiller2019-02-111-1/+1
| | | | drop "== False", "== 0", "== True" and "== 0" for nxagentOptions and Traps
* Set default screen size to the whole screen in rootless modeUlrich Sibiller2019-01-141-2/+2
| | | | | | | This solves weird window (menu) placement and drawing behaviour on right/lowest 25% of the screen. Fixes ArcticaProject/nx-libs#757 (Part 1/2)
* nxagentInitAndCheckVisuals: adapt bool usage to match the previous functionUlrich Sibiller2018-10-221-9/+7
| | | | One question remains: why are we using "bool" instead of "Bool" here?
* hw/nxagent: fix spelling errors as reported by codespellUlrich Sibiller2018-05-241-3/+3
|
* hw/nxagent/: Use <function>(void) rather than <function>().Mike Gabriel2018-02-261-19/+19
|
* Display.c: drop helper variable in loopUlrich Sibiller2018-01-071-4/+2
|
* Error.c: replace strcpy/strcat by snprintfUlrich Sibiller2018-01-071-2/+1
|
* Display.c: pass down buffer size to nxagentLookForIconFileUlrich Sibiller2018-01-071-24/+22
| | | | Also comment the code and convert error messages to warnings.
* Replace hardcoded string lengths by macrosUlrich Sibiller2018-01-071-1/+1
|
* Dialog.c: fix possible buffer overflowsUlrich Sibiller2018-01-071-0/+13
| | | | Fix write past the end of singlePath if PATH contains dirs longer than PATH_MAX.
* Dialog.c,Display.c,NXdixfonts.c: replace strncpy() by snprintf where appropriateUlrich Sibiller2018-01-071-7/+5
|
* Dialog.c,Display.c,Font.c,NXdixfonts.c: don't use hardcoded string buffer ↵Ulrich Sibiller2018-01-071-3/+3
| | | | lengths
* Report Xlib-side window IDs to session.log in machine readable form. This ↵Mike Gabriel2017-07-051-2/+11
| | | | feature can be enabled by the cmdline options -reportwids and -reportprivatewids.
* dix/os: backport various signal handling and smart scheduler changes from X.orgMike Gabriel2017-03-211-1/+1
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Backported from X.org: commit 6178b1c91cfc9e860914acc6f0be2f2d2e07a124 Author: Adam Jackson <ajax@redhat.com> Date: Tue Jun 7 15:52:11 2016 -0400 dix: Use OsSignal() not signal() As the man page for the latter states: The effects of signal() in a multithreaded process are unspecified. We already have an interface to call sigaction() instead, use it. Signed-off-by: Adam Jackson <ajax@redhat.com> Reviewed-by: Keith Packard <keithp@keithp.com> commit e10ba9e4b52269b2ac75c4802dce4ca47d169657 Author: Keith Packard <keithp@keithp.com> Date: Wed Nov 11 22:02:01 2015 -0800 Remove non-smart scheduler. Don't require setitimer. This allows the server to call GetTimeInMillis() after each request is processed to avoid needing setitimer. -dumbSched now turns off the setitimer. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Keith Packard <keithp@keithp.com> commit 1f915e8b524dd02011158aa038935970684c7630 Author: Daniel Drake <drake@endlessm.com> Date: Wed May 20 13:16:12 2015 -0600 Keep SIGALRM restart flag after Popen Commit 94ab7455 added SA_RESTART to the SIGALRM handler. However, the Popen code tears down and recreates the SIGALRM handler via OsSignal(), and this flag is dropped at this time. Clean the code to use just a single codepath for creating this signal handler, always applying SA_RESTART. [ajax: Fixed commit id] Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Daniel Drake <drake@endlessm.com> commit 94ab7455abc213fc96760e29ab2e943ec682fb22 Author: Daniel Drake <drake@endlessm.com> Date: Tue May 12 16:39:22 2015 -0600 Allow system call restarts upon signal interruption The X server frequently deals with SIGIO and SIGALRM interruptions. If process execution is inside certain blocking system calls when these signals arrive, e.g. with the kernel blocked on a contended semaphore, the system calls will be interrupted. Some system calls are automatically restartable (the kernel re-executes them with the same parameters once the signal handler returns) but only if the signal handler allows it. Set SA_RESTART on the signal handlers to enable this convenient behaviour. Reviewed-by: Adam Jackson <ajax@redhat.com> Signed-off-by: Daniel Drake <drake@endlessm.com> commit a6c71ce5d2d2fe89e07a2ef5041c915acc3dc686 Author: Tiago Vignatti <tiago.vignatti@nokia.com> Date: Mon Mar 28 19:21:28 2011 +0300 os: fix memory and fd leaks in Popen Signed-off-by: Tiago Vignatti <tiago.vignatti@nokia.com> Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net> Reviewed-by: Nicolas Peninguy <nico@lostgeeks.org> commit c9051b684b524549eab6d5b88ee3e195a6f6fbe8 Author: Alan Coopersmith <alan.coopersmith@sun.com> Date: Wed Nov 5 18:25:57 2008 -0800 Use OsSignal in Popen/Pclose to avoid SysV signal() stupidity commit 0e9ef65fa583bf2393dd0fda82df6f092387b425 Author: Keith Packard <keithp@koto.keithp.com> Date: Wed Nov 7 16:33:10 2007 -0800 Don't frob timers unless SmartSchedule is running commit 2338d5c9914e2a43c3a4f7ee0f4355ad0a1ad9e7 Author: Arjan van de Ven <arjan@linux.intel.com> Date: Sun Oct 28 09:37:52 2007 +0100 reduce wakeups from smart scheduler The smart scheduler itimer currently always fires after each request (which in turn causes the CPU to wake out of idle, burning precious power). Rather than doing this, just stop the timer before going into the select() portion of the WaitFor loop. It's a cheap system call, and it will only get called if there's no more commands batched up from the active fd. This change also allows some of the functions to be simplified; setitimer() will only fail if it's passed invalid data, and we don't do that... so make it void and remove all the conditional code that deals with failure. The change also allows us to remove a few variables that were used for housekeeping between the signal handler and the main loop. Signed-off-by: Keith Packard <keithp@koto.keithp.com> **Note**: The above change also required ABI changes in hw/nxagent/. commit abe0a51f3f790f8c055289465e130177c4b647cc Author: Ben Byer <bbyer@bbyer.apple.com> Date: Fri Sep 21 17:07:36 2007 -0700 So, like, checking return codes of system calls (signal, etc) is good. Also, only restore an old signal handler if one was actually set (prevents the server from dying on OS X). commit 6da39c67905500ab2db00a45cda4a9f756cdde96 Author: Eric Anholt <eric@anholt.net> Date: Wed Sep 12 13:23:13 2007 +0000 Fix build on FreeBSD after Popen changes. commit a5b8053606d6e786cdcf6734f271acc05f9cc588 Author: Adam Jackson <ajax@benzedrine.nwnk.net> Date: Tue Sep 11 11:37:06 2007 -0400 Ignore - not just block - SIGALRM around Popen()/Pclose(). Because our "popen" implementation uses stdio, and because nobody's stdio library is capable of surviving signals, we need to make absolutely sure that we hide the SIGALRM from the smart scheduler. Otherwise, when you open a menu in openoffice, and it recompiles XKB to deal with the accelerators, and you popen xkbcomp because we suck, then the scheduler will tell you you're taking forever doing something stupid, and the wait() code will get confused, and input will hang and your CPU usage slams to 100%. Down, not across. Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* nxagent: Use SetNotifyFd to receive events.Mike Gabriel2017-03-171-2/+2
| | | | | | | | | | | | | Inspired by X.org commit: commit 55c2e1a3aa587c58a74066724e11e30b3df267b8 Author: Keith Packard <keithp@keithp.com> Date: Mon Dec 7 15:11:33 2015 -0800 xnest: Use SetNotifyFd to receive events Signed-off-by: Keith Packard <keithp@keithp.com> Reviewed-by: Adam Jackson <ajax@redhat.com>
* Display.c: remove unused logo codeUlrich Sibiller2017-03-101-37/+0
|
* Display.c: pid is always 0, remove checkUlrich Sibiller2017-03-101-1/+1
|
* hw/nxagent/Display.c: Fix uninitialized newAction in ↵Mike Gabriel2017-03-031-0/+2
| | | | | | nxagentResetSignalHandlers(). Fixes ArcticaProject/nx-libs#328.
* The smart scheduler is not optional.Mathieu Bérard2017-02-151-35/+0
| | | | | | | | | | | | Backported from X.org: commit 9f9268821b13038556fbc029df54ab0e9b2aa77f Author: Mathieu Bérard <mathieu.berard@crans.org> Date: Mon Aug 11 13:52:38 2008 -0400 The smart scheduler is not optional. Backported-to-NX-by: Mike Gabriel <mike.gabriel@das-netzwerkteam.de>
* nxcompext: Move code into Xserver subtree, as nxcompext requires Xserver ↵Mike Gabriel2016-11-151-1/+1
| | | | | | includes at build time. Fixes ArcticaProject/nx-libs#276.
* Display.c: remove unused variableUlrich Sibiller2016-10-201-2/+0
| | | | | | | Display.c: In function ‘nxagentCheckForPixmapFormatsCompatibility’: Display.c:2471:8: warning: variable ‘one_match’ set but not used [-Wunused-but-set-variable] bool one_match = false; ^
* hw/nxagent/Display.c: Fix comment where the meaning of the "bypass" ↵Mike Gabriel2016-07-281-3/+2
| | | | reconnectchecks parameter value is explained.
* nx-X11/programs/Xserver/hw/nxagent/Display.c: add FIXME comment to ↵Mihai Moldovan2016-07-281-0/+1
| | | | | | nxagentCheckForColormapsCompatibility(). Maybe needs special strictness handling as well.
* nx-X11/programs/Xserver/hw/nxagent/Display.c: add FIXME comment to ↵Mihai Moldovan2016-07-281-0/+1
| | | | | | nxagentInitAndCheckVisuals(). Maybe needs special strictness handling as well.
* nx-X11/programs/Xserver/hw/nxagent/Display.c: split up ↵Mihai Moldovan2016-07-281-5/+9
| | | | | | | | | | | | | | | nxagentCheckForPixmapFormatsCompatibility() and nxagentInitPixmapFormats(). Don't implicitly call the checking function in the init function (and throw away the checking functions result...) Instead, explicitly use the checking function after the init function in other parts of the code and throw away the checking functions return value selectively or actually use it while reconnecting. This is totally different behavior compared to the original one. Hopefully it doesn't cause any problems (i.e., hopefully there was no good reason for never using the checking functions return value, but an oversight.)
* nx-X11/programs/Xserver/hw/nxagent/Display.c: use new ReconnectTolerance ↵Mihai Moldovan2016-07-281-23/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | nxagentOption value in nxagentCheckForPixmapFormatsCompatibility() and modify behavior based on this value. Recognized values: - Strict means that the number of internal and external pixmap formats must match exactly and every internal pixmap format must be available in the external pixmap format array. - Safe means that the number of pixmap formats might diverge, but all internal pixmap formats must also be included in the external pixmap formats array. This is recommended, because it allows clients with more pixmap formats to still connect, but not lose functionality. - Risky means that the internal pixmap formats array is allowed to be smaller than the external pixmap formats array, but at least one pixmap format must be included in both. This is potentially unsafe. - Bypass or higher means that all of these checks are essentially deactivated. This is a very bad idea. Note that the default ReconnectTolerance value is still Strict. Also, the return value of this function is currently not used or passed through to other functions at all. An upcoming commit will change this behavior and actually enable the checks.
* nx-X11/programs/Xserver/hw/nxagent/Display.c: use new ReconnectTolerance ↵Mihai Moldovan2016-07-281-24/+118
| | | | | | | | | | | | | | | | | | | | | | nxagentOption value in nxagentCheckForDepthsCompatibility() and modify behavior based on this value. Recognized values: - Strict means that the number of old and new depths must match exactly and every old depth value must be available in the new depth array. - Safe means that the number of depths might diverge, but all former depth must also be included in the new depth array. This is recommended, because it allows clients with more depths to still connect, but not lose functionality. - Risky means that the new depths array is allowed to be smaller than the old depths array, but at least one depth value must be included in both. This is potentially unsafe. - Bypass or higher means that all of these checks are essentially deactivated. This is a very bad idea. Note that the default ReconnectTolerance value is still Strict.
* nx-X11/programs/Xserver/hw/nxagent/Display.c: use new ReconnectTolerance ↵Mihai Moldovan2016-07-281-1/+42
| | | | | | | | | | | | | | | | | | | nxagentOption in nxagentCheckForDefaultDepthCompatibility() and modify behavior based on this value. Recognized values: - Strict means that the old and new default depth values must match exactly. - Safe or Risky means that the default depth values might differ, but the new default depth value must be at least as high as the former default depth value. This is recommended, because it allows clients with a higher default depth value to still connect, but not lose functionality. - Bypass or higher means that all of these checks are essentially deactivated. This is probably a very bad idea. Note that the default ReconnectTolerance value is still Strict.
* Per-file copyright notices: Update copyright information in file headers ↵Mike Gabriel2016-07-061-7/+15
| | | | that NoMachine placed there own copyright statement in.
* nx-X11/programs/Xserver: Drop {X,x}realloc() macros, use realloc() instead.Mike Gabriel2016-07-021-1/+1
|
* nx-X11/programs/Xserver: Drop {X,x}alloc() macros, use malloc() instead.Mike Gabriel2016-07-021-3/+3
|
* nx-X11/programs/Xserver: Drop {X,x}free() macros, use free() instead.Mike Gabriel2016-07-021-7/+7
| | | | Fixes ArcticaProject/nx-libs#105
* nx-X11/programs/Xserver: Include nxcomp{,ext,shad} headers like one would do ↵Mike Gabriel2016-06-131-3/+3
| | | | with system-wide shared libraries.
* hw/nxagent/Display.c: Avoid incompatible pointer type.Mike Gabriel2016-05-131-1/+1
| | | | | | | | | | | | | | | | | | | | | | Amends the following compiler warning Display.c: In function ‘nxagentMakeIcon’: Display.c:1949:18: warning: assignment from incompatible pointer type agentIconData=x2goagentIconData; ^ Display.c:1954:18: warning: assignment from incompatible pointer type agentIconData=nxagentIconData; ^ Display.c:2001:41: warning: passing argument 3 of ‘XpmCreatePixmapFromData’ from incompatible pointer type agentIconData, ^ In file included from Icons.h:22:0, from Display.c:67: X11/include/xpm_nxagent.h:242:6: note: expected ‘char **’ but argument is of type ‘char *’ FUNC(XpmCreatePixmapFromData, int, (Display *display, ^ X11/include/xpm_nxagent.h:230:32: note: in definition of macro ‘FUNC’ #define FUNC(f, t, p) extern t f p
* hw/nxagent/Display.c: Define Pixmap from XlibPixmap before including Icons.h ↵Mike Gabriel2016-05-131-0/+4
| | | | (which includes hw/nxagent/X11/include/xpm_nxagent.h).
* hw/nxagent/Display.c: Don't declare and assign packMethod / packQuality if ↵Mike Gabriel2016-05-021-4/+0
| | | | | | | | | | | | | | | | not used later on. Amends the following compiler warnings: ``` Display.c: In function ‘nxagentReconnectDisplay’: Display.c:2449:19: warning: variable ‘packQuality’ set but not used [-Wunused-but-set-variable] int packMethod, packQuality; ^ Display.c:2449:7: warning: variable ‘packMethod’ set but not used [-Wunused-but-set-variable] int packMethod, packQuality; ^ ```
* Clear header file namespace separation (<X11/...> vs. <nx-X11/...>).Mike Gabriel2015-12-281-2/+2
| | | | | | | | | | | | | | | | | | | | In the process of building nxagent against more and more system-wide installed X.org libraries, we come to the limit of including structs from this (bundled nx-X11) and that (system-wide X.Org) library. This commit introduces a clear namespace separation of headers provided by nx-X11 and headers provided by X.Org. This approach is only temporary as we want to drop all nx-X11 bundled libraries from nx-libs. However, for a while we need to make this separation clear and also ship some reduced fake X.Org headers that avoid pulling in libX* and libNX_X* symbols at the same time. This patch has been tested on Debian jessie and unstable and requires no overall testing on various distros and distro versions, as we finally will drop all libNX_X* libraries and build against X.org's client libs. For now, this hack eases our development / cleanup process.
* Re-add -sync option back to nxagent to allow synchronous debugging of the ↵Mike Gabriel2015-10-061-0/+3
| | | | nxagent DDX.
* Unbrand NX Agent Startup Screen / Brand X2Go Agent Startup Screen ↵Oleksandr Shneyder2015-02-131-32/+8
| | | | | | | | | | (999_nxagent_unbrand-nxagent-brand-x2goagent.full.patch). When launched with NX Agent flavour, the startup screen gets unbranded by this patch (the !M logo does not get shown). When launched with X2Go Agent flavour, the startup screen gets branded with the X2GO logo.
* X2Go icon when run with x2goagent flavour ↵Oleksandr Shneyder2015-02-101-3/+21
| | | | | | | (201_nxagent_set-x2go-icon-if-x2goagent-flavour.full.patch). Depending on the binary name of the agent either nxagent.xpm or x2go.xpm is used as window icon.
* Revert "release 3.5.0.19"Mike Gabriel2013-03-281-29/+35
| | | | This reverts commit e77bf36d9afbc7e56522574b06217d57c11dd095.
* release 3.5.0.19Mike Gabriel2013-03-281-35/+29
|
* Imported nxagent-3.5.0-9.tar.gznxagentMike Gabriel2012-05-221-4/+27
| | | | | | | | Summary: Imported nxagent-3.5.0-9.tar.gz Keywords: Imported nxagent-3.5.0-9.tar.gz into Git repository
* Imported nxagent-3.5.0-7.tar.gznxagent/3.5.0-7Mike Gabriel2011-12-281-47/+80
| | | | | | | | Summary: Imported nxagent-3.5.0-7.tar.gz Keywords: Imported nxagent-3.5.0-7.tar.gz into Git repository
* Imported nxagent-3.5.0-5.tar.gznxagent/3.5.0-5Reinhard Tartler2011-10-101-0/+2
| | | | | | | | Summary: Imported nxagent-3.5.0-5.tar.gz Keywords: Imported nxagent-3.5.0-5.tar.gz into Git repository