Commit Graph

2208 Commits

Author SHA1 Message Date
Pekka Paalanen d7894d052a compositor,shared: add millihz_to_nsec()
A helper to improbe readability.

Cc: Daniel Stone <daniels@collabora.com>
Cc: Mario Kleiner <mario.kleiner.de@gmail.com>
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-07-16 13:55:05 +03:00
Pekka Paalanen aa21f6249f shared: introduce timespec-util.h
Copyright is set according to the moved code from compositor.c.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-07-16 13:55:05 +03:00
Bryce Harrington 29f09fe876 screen-share: Use the correct list pointer when freeing shm buffers
The wl_list_for_each operation on the free_buffers list should use
free_link not link, which is a different list.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2015-07-13 12:47:45 -07:00
Giulio Camuffo 2f2a70cc85 compositor: make sure to reset views' pointers to destroyed output
When an output is being destroyed reassign the output of the views
that were in it, to be sure not to keep a dangling pointer which could
be used later on by calling weston_surface_assign_output() on the
view's surface.
Also make sure we send wl_surface.leave events to the surfaces that
were in that output.

Reviewed-by: Jonas Ådahl <jadahl@gmail.com>
2015-07-13 11:16:55 +01:00
Derek Foreman f53beb8fb9 compositor-wayland: Use the correct list pointer when freeing shm buffers
The wl_list_for_each operation on the free_buffers list should use
free_link not link, which is a different list.

This fixes a crash when entering fullscreen mode when using the pixman
renderer on the wayland back-end.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2015-07-10 18:46:24 -07:00
Giulio Camuffo bab996e571 compositor: move the main() to a new main.c file
This commits starts to separate the libweston code from the weston
specific code. As such, the main() is moved, together with signals
handling and configuration handling.

The definition of DEFAULT_REPAINT_WINDOW is left in compositor.c, so the
config loading of repaint_msec is slightly modified to account that.

Acked-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-07-10 12:46:55 +03:00
Giulio Camuffo 459137bfe6 compositor: add API to manage compositor instances
This commit adds three new exported functions:
- weston_compositor_create() returns a new weston_compositor instance,
initializing it as the now removed weston_compositor_init() did.
- weston_compositor_exit(compositor) asks the compositor to tear
down by calling the compositor's exit vfunc which is set by the
libweston application.
- weston_compositor_destroy(compositor) is called by the libweston
application when tearing down the compositor. The compositor is destroyed
and the memory freed.

Reviewed-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-07-10 11:59:08 +03:00
Bryce Harrington 430aee1c23 weston-launch: Drop redundant exit()
error(1, ...) already will exit, per man page: "If status has a nonzero
value, then error() calls exit(3) to terminate the program using the
given value as the exit status."  So exit(EXIT_FAILURE) is never
reached.

The EXIT_FAILURE macro is guaranteed to be non-zero.  Typically it's
just 1, but on some systems (e.g. OpenVMS apparently) exit(1) means
success so EXIT_FAILURE there is defined to some other non-zero value.

Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Marek Chalupa <mchqwerty@gmail.com>
2015-07-10 00:08:58 -07:00
Giulio Camuffo 954f183e2f compositor: introduce struct weston_backend
This is a preliminary change for libweston, with no functional modifications.
Separate the backends and the core weston_compositor struct, by creating
the weston_compositor in the main(), and having the various backends extend
the weston_backend struct, an instance of which is returned by the backend
entry point.
This enable us to logically separate the compositor core from the backend,
allowing the core to be extended without messing with the backends.

Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-07-09 16:17:52 +03:00
Pekka Paalanen c8a1ff0ac1 compositor-drm: fix drm_waitvblank_pipe() decl style
Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-07-02 15:06:08 +03:00
Bryce Harrington ada4f07bbb compositor-drm: Add comment for newly added drm_waitvblank_pipe() 2015-06-30 13:25:46 -07:00
Mario Kleiner 2ab4f4e384 compositor-drm: Handle more than two output crtcs per card
Allow proper handling of output->pipe > 1 to support
triple-head graphics cards etc. by using the "high-crtc"
support introduced in Linux 2.6.39 and libdrm 2.4.25
around May 2011.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
2015-06-30 12:24:01 -07:00
Mario Kleiner 808170452b compositor-drm: Allow weston_output_mode_switch_to_native() to work.
Initialize output->native_mode with the initially chosen
mode for an output, so weston_output_mode_switch_to_native()
has something to work with and can switch back from temporary
selected modes to the outputs native mode. Before, this was a
no-op.

This allows an output to switch back to its default mode if
a former toplevel fullscreen shell surface created via method
WL_SHELL_SURFACE_FULLSCREEN_METHOD_DRIVER gets destroyed, or
it gets demoted to non-fullscreen, or if modesetting on the
output failed for some reason.

v2: Modified and split into a separate patch from original
    patch "Allow restore_output_mode() to work properly.",
    as suggested by Derek Foreman.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Cc: Derek Foreman <derekf@osg.samsung.com>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
2015-06-30 12:19:58 -07:00
Mario Kleiner 872797cdf5 compositor-drm: Fix refresh rate selection in drm_output_switch_mode
The matching logic in choose_mode() compared refresh rate
of a drm_mode candidate mode expressed in Hz against the
requested refresh rate of the target weston_mode expressed
in milliHz, so the match always failed and the logic always
ended up the mode with the highest refresh rate for a given
resolution, instead of the one matching the requested rate.

Match proper fields to fix this.

Signed-off-by: Mario Kleiner <mario.kleiner.de@gmail.com>
Reviewed-by: Derek Foreman <derekf@osg.samsung.com>
2015-06-30 12:16:41 -07:00
Pekka Paalanen aa9536a992 text_backend: make destructor call explicit
We used to rely on the order in which the
weston_compositor::destroy_signal callbacks happened, to not access
freed memory. Don't know when, but this broke at least with ivi-shell,
which caused crashes in random places on compositor shutdown.

Valgrind found the following:

 Invalid write of size 8
    at 0xC2EDC69: unbind_input_panel (input-panel-ivi.c:340)
    by 0x4E3B6BB: destroy_resource (wayland-server.c:537)
    by 0x4E3E085: for_each_helper.isra.0 (wayland-util.c:359)
    by 0x4E3E60D: wl_map_for_each (wayland-util.c:365)
    by 0x4E3BEC7: wl_client_destroy (wayland-server.c:675)
    by 0x4182F2: text_backend_notifier_destroy (text-backend.c:1047)
    by 0x4084FB: wl_signal_emit (wayland-server-core.h:264)
    by 0x4084FB: main (compositor.c:5465)
  Address 0x67ea360 is 208 bytes inside a block of size 232 free'd
    at 0x4C2A6BC: free (vg_replace_malloc.c:473)
    by 0x4084FB: wl_signal_emit (wayland-server-core.h:264)
    by 0x4084FB: main (compositor.c:5465)

 Invalid write of size 8
    at 0x4E3E0D7: wl_list_remove (wayland-util.c:57)
    by 0xC2EDEE9: destroy_input_panel_surface (input-panel-ivi.c:191)
    by 0x4E3B6BB: destroy_resource (wayland-server.c:537)
    by 0x4E3BC7B: wl_resource_destroy (wayland-server.c:550)
    by 0x40DB8B: wl_signal_emit (wayland-server-core.h:264)
    by 0x40DB8B: weston_surface_destroy (compositor.c:1883)
    by 0x40DB8B: weston_surface_destroy (compositor.c:1873)
    by 0x4E3B6BB: destroy_resource (wayland-server.c:537)
    by 0x4E3E085: for_each_helper.isra.0 (wayland-util.c:359)
    by 0x4E3E60D: wl_map_for_each (wayland-util.c:365)
    by 0x4E3BEC7: wl_client_destroy (wayland-server.c:675)
    by 0x4182F2: text_backend_notifier_destroy (text-backend.c:1047)
    by 0x4084FB: wl_signal_emit (wayland-server-core.h:264)
    by 0x4084FB: main (compositor.c:5465)
  Address 0x67ea370 is 224 bytes inside a block of size 232 free'd
    at 0x4C2A6BC: free (vg_replace_malloc.c:473)
    by 0x4084FB: wl_signal_emit (wayland-server-core.h:264)
    by 0x4084FB: main (compositor.c:5465)

 Invalid write of size 8
    at 0x4E3E0E7: wl_list_remove (wayland-util.c:58)
    by 0xC2EDEE9: destroy_input_panel_surface (input-panel-ivi.c:191)
    by 0x4E3B6BB: destroy_resource (wayland-server.c:537)
    by 0x4E3BC7B: wl_resource_destroy (wayland-server.c:550)
    by 0x40DB8B: wl_signal_emit (wayland-server-core.h:264)
    by 0x40DB8B: weston_surface_destroy (compositor.c:1883)
    by 0x40DB8B: weston_surface_destroy (compositor.c:1873)
    by 0x4E3B6BB: destroy_resource (wayland-server.c:537)
    by 0x4E3E085: for_each_helper.isra.0 (wayland-util.c:359)
    by 0x4E3E60D: wl_map_for_each (wayland-util.c:365)
    by 0x4E3BEC7: wl_client_destroy (wayland-server.c:675)
    by 0x4182F2: text_backend_notifier_destroy (text-backend.c:1047)
    by 0x4084FB: wl_signal_emit (wayland-server-core.h:264)
    by 0x4084FB: main (compositor.c:5465)
  Address 0x67ea368 is 216 bytes inside a block of size 232 free'd
    at 0x4C2A6BC: free (vg_replace_malloc.c:473)
    by 0x4084FB: wl_signal_emit (wayland-server-core.h:264)
    by 0x4084FB: main (compositor.c:5465)

Looking at the first of these, unbind_input_panel() gets called when the
text-backend destroys its helper client which has bound to input_panel
interface. This happens after the shell's destroy_signal callback has
been called, so the shell has already been freed.

The other two errors come from
  wl_list_remove(&input_panel_surface->link);
which has gone stale when the shell was destroyed
(shell->input_panel.surfaces list).

Rather than creating even more destroy listeners and hooking them up in
spaghetti, modify text-backend to not hook up to the compositor destroy
signal. Instead, make it the text_backend_init() callers' responsibility
to also call text_backend_destroy() appropriately, before the shell goes
away.

This fixed all the above Valgrind errors, and avoid a crash with
ivi-shell when exiting Weston.

Also using desktop-shell exhibited similar Valgrind errors which are
fixed by this patch, but those didn't happen to cause any crashes AFAIK.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-By: Derek Foreman <derekf@osg.samsung.com>
2015-06-26 09:33:54 +03:00
JoonCheol Park e28ee34214 compositor: add missing help text
The headless-backend.so was missing in available backend list

Signed-off-by: JoonCheol Park <jooncheol@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-22 14:57:24 +03:00
Derek Foreman 4fa7b7f06e compositor: Add missing help text
Help messages were missing for some command line options.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-22 14:56:04 +03:00
Bryce Harrington 665b025019 compositor-x11: More verbose logging
Signed-off-by: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-16 15:18:59 +03:00
Murray Calavera 972d1af9c8 text: cleanup text backend style
Signed-off-by: Murray Calavera <murray.calavera@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-16 13:25:28 +03:00
Derek Foreman 066ca0c74d gl-renderer: Don't print GL error for EGLGetDisplay()
EGLGetDisplay() doesn't generate a GL error, so we shouldn't print one.

I've also renamed the goto labels so it's a little clearer when to use them.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-16 13:15:09 +03:00
Jon Cruz 867d50eea7 Unified multiple definitions of container_of() macro.
Removed duplicate definitions of the container_of() macro and
refactored sources to use the single implementation.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-15 17:11:58 -07:00
Jon Cruz d618f688d5 Moved the MIN() macro to the helper include.
Removed multiple definitions of the MIN() macro from existing
locations and unified with a single definition. Updated sources
to use the shared version.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-15 17:11:52 -07:00
Jon Cruz 35b2eaa989 Moved helper macro to a discrete include file.
To help reduce code duplication and also 'kitchen-sink' includes
the ARRAY_LENGTH macro was moved to a stand-alone file and
referenced from the sources consuming it. Other macros will be
added in subsequent passes.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-15 17:11:45 -07:00
Jon Cruz 4678bab13c Remove redundant #include path component.
Using the parent '../' path component in #include statements makes
the codebase more rigid and is redundant due to proper -I use.

Signed-off-by: Jon A. Cruz <jonc@osg.samsung.com>
Reviewed-by: Peter Hutterer <peter.hutterer@who-t.net>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-15 17:11:09 -07:00
Bryce Harrington 73ad676a54 vaapi-recorder: Drop redundant license
This file was provided under both the Expat and X11 variants of the MIT
license.  We don't need the latter, so remove it and leave just Expat.
And reformat the Expat license so it matches our standard boilerplate.
2015-06-15 13:04:19 -07:00
Bryce Harrington 7e45adda77 weston-egl-ext.h: Reformat license text
This file was already covered by the Expat variant of the MIT license.
Just reformat the text to match our standard boilerplate formatting.
2015-06-15 13:04:19 -07:00
Bryce Harrington 2dc067358d libbacklight: Add missing boilerplate to header
Use identical license and copyright as the .c file.
2015-06-15 13:04:18 -07:00
Bryce Harrington a0bbfea64b src: Update boilerplate from MIT X11 license to MIT Expat license 2015-06-15 13:04:18 -07:00
Giulio Camuffo 83285fceaf compositor: remove the authenticate vfunc
It was introduced in 5fcd0aa58e and
then used in code that doesn't exist anymore.

Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-12 11:24:23 +03:00
Murray Calavera f65f89b786 don't attempt to start input method if path is empty
This allows a user to explicitly disable the input
method by setting path to blank;

Signed-off-by: Murray Calavera <murray.calavera@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-11 12:24:10 +03:00
Murray Calavera 9a51cd7d10 move text_backend initialization into the shell plugin
Whether a input method is used should be the responsibility
of the shell because some shells may not want to implement
an input method at all

Signed-off-by: Murray Calavera <murray.calavera@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-11 12:20:46 +03:00
Murray Calavera 2588124cc3 text: handle existing seats on init
a following patch will be moving text init call into shell
modules, which will be called much later than in current code

Signed-off-by: Murray Calavera <murray.calavera@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-06-11 12:19:44 +03:00
Murray Calavera 883ac02d22 Whitespace corrections
Signed-off-by: Murray Calavera <murray.calavera@gmail.com>
2015-06-06 12:39:51 -07:00
Derek Foreman 2a746a52d4 screenshooter: clean up recorder_binding a little
We already have a pointer to the compositor so change seat->compositor to ec

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-04 13:44:01 -07:00
Derek Foreman bc91e54a8c input: clean up update_keymap a little
We already have a pointer to the keyboard, so we can change all
seat->keyboard to keyboard.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-04 13:43:57 -07:00
Derek Foreman 1b786eecaa input: minor clean up in weston_seat_repick()
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-04 13:43:53 -07:00
Derek Foreman 244e99e18c input: clean up notify_modifiers a little
We already have a pointer to the keyboard, so we can change all
seat->keyboard to keyboard.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-04 13:43:50 -07:00
Derek Foreman 345c9f366f input: clean up seat_get_keyboard a little
We already have a pointer to the keyboard, so we can change all
seat->keyboard to keyboard

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-06-04 13:43:45 -07:00
Derek Foreman a7e199147a gl-renderer: Make the error logging a little nicer
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2015-05-21 18:41:24 -07:00
Daniel Stone f556ebe269 compositor-drm: Clean trailing whitespace
Signed-off-by: Daniel Stone <daniels@collabora.com>
2015-05-21 11:57:18 -07:00
David FORT ab3298a976 RDP compositor: enforce certificate and key
The RDP compositor is usable without certificates and key in a very limited
number of cases (local usage using xfreerdp), so let's force the presence of
keys and certificates.

Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-05-21 09:07:59 +02:00
Dima Ryazanov b7e70af346 compositor-wayland: Code cleanup
Don't do multi-assignments.

Signed-off-by: Dima Ryazanov <dima@gmail.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-05-20 11:26:25 +03:00
Dima Ryazanov 01d5c02c04 compositor-wayland: Handle window close events more gracefully
When a compositor window is closed, remove the output instead of just exiting.

(The "if (!input->output)" checks are kind of ugly - but I couldn't find
a better way to handle the output going away.)

Signed-off-by: Dima Ryazanov <dima@gmail.com>
Reviewed-by: Bryce Harrington <bryce@osg.samsung.com>
2015-05-19 16:42:53 -07:00
Bryce Harrington c056a987b6 compositor-drm: minor sp. fix 2015-05-19 15:25:18 -07:00
Pekka Paalanen 6858383d51 compositor-drm: disable hardware cursors
With the recent universal plane and atomic modeset / nuclear pageflip
development in the kernel, cursor content updates on Intel are currently causing
an extra wait for vblank. This drops Weston's framerate to a fraction by
2 when cursor contents update. This combined with the damage tracking
bug in Weston which causes cursor content updates on every frame the
cursor moves makes using hw cursors really bad.

It is possible that the Intel DRM driver will get fixed and cursor
updates there revert to their old behaviour on the contemporary KMS API.
However, it is hardware dependant whether cursor updates can happen
immediately.  Some other hardware, especially ARM-related, may not be
able to do immediate updates. Therefore it is better to just not even
try - we should rely only on the lowest common denominator behaviour
between hardware and drivers as there is no and will not be any way to
reliably detect it.

Note, that while having different drivers do different things (immediate
update vs. update that gets latched on the next vblank), we cannot
rearrange the contemporary KMS API calls such that it would always work
fine. Either some hardware would update the cursor too early, or other
hardware would update the cursor too late and perhaps cause the
framerate decimation.

Mark hardware cursors broken by default. This avoids using them, and
works around the immediate problem of framerate issues in Weston. This
follows the same reasoning why hardware overlay planes have been
disabled by default for a long time.

This disablement will be removed once the current code for hardware
planes and cursors is replaced with code using the atomic KMS API.

The Intel driver change that exposed this problem is
https://github.com/torvalds/linux/commit/38f3ce3af5742eb5a3e9b01997f5ab85109c5762
which is first included in Linux 4.0-rc1.

Signed-off-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Cc: nerdopolis <bluescreen_avenger@verizon.net>
Cc: Daniel Stone <daniel@fooishbar.org>
Cc: Giulio Camuffo <giuliocamuffo@gmail.com>
Reviewed-By: David FORT <contact@hardening-consulting.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
2015-05-19 11:41:11 +03:00
Derek Foreman c4cfe85d3a compositor-drm: pass ARGB fallback to gl create functions for XRGB formats
If the GL implementation doesn't provide an XRGB visual we may still be
able to proceed with an ARGB one. Since we're not changing the scanout
buffer format, and our current rendering loop always results in saturated
alpha in the frame buffer, it should be Just Fine(tm) - and probably better
than just exiting.

This is a workaround for https://bugs.freedesktop.org/show_bug.cgi?id=89689

Reviewed-By: Bryce Harrington <bryce@osg.samsung.com>
Tested-By: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Reviewed-By: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2015-05-18 11:51:45 +03:00
Derek Foreman e76f185050 gl-renderer: Take a list of acceptable formats in create functions
Currently we pass either a single format or no formats to the gl renderer
create and output_create functions.  We extend this to any number of
formats so we can allow fallback formats if we don't get our first pick.

Reviewed-By: Bryce Harrington <bryce@osg.samsung.com>
Reviewed-By: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
2015-05-18 11:51:45 +03:00
Derek Foreman 2663c68330 launcher-util: Force all weston_launcher_open()s to use O_CLOEXEC
Really, there's pretty much no time we'd ever want O_CLOEXEC unset,
as it will likely result in leaking fds to processes that aren't
interested in them or shouldn't have them.

This also removes the (now unused) code from weston_logind_open() that
could drop O_CLOEXEC.

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-05-15 18:02:14 +03:00
Derek Foreman 8f5acc2f3a logind: actually close fd in weston_launcher_close()
You had one job...

Signed-off-by: Derek Foreman <derekf@osg.samsung.com>
Acked-by: David Herrmann <dh.herrmann@gmail.com> [implicit from v1
comment]
Reviewed-by: Daniel Stone <daniels@collabora.com>
Reviewed-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-05-15 17:58:22 +03:00
Hardening 0c944b07c4 RDP compositor: fixes for multiple connections, mstsc and FreeRDP master compilation
This patch fixes the problem reported on the mailing list
(http://lists.freedesktop.org/archives/wayland-devel/2015-January/019575.html).
All certificate and key paths were not copied when given to FreeRDP, so they
were freed when the peer was disconnecting. And so the next connection was failing.

All the initialization stuffs have been moved to the activate callback, as when it is
called the peer is ready for graphics.

We also differ the creation of the seat, so that a seat is initialized only the
peer really do the activation sequence. That helps when mstsc just connects to see
the certificate, ask if the certificate should be trusted, and then reconnects.

This patch also adds configuration settings for recent versions of FreeRDP that
comes with everything disabled. This makes remoteFx functionnal again.

The patch also handles the skipCompression flag for last FreeRDP versions, that
allows to skip bulk compression for surfaces that have been already compressed by
the remoteFx or NS codec.

This also fixes the compilation against FreeRDP master with callback that now return
BOOL.

Signed-off-by: Hardening <rdp.effort@gmail.com>
Acked-by: Pekka Paalanen <pekka.paalanen@collabora.co.uk>
2015-05-12 08:07:14 +02:00