| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
|
|
|
|
| |
The session-type property is analagous to the
sd_login session type. It can be either
"x11" or "wayland".
This helps us decide whether to start a wayland
session or an X session.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
|
|
|
| |
If we aren't connected to the display then we can't give
the user access to it,(and we don't need to anyway)
This commit adds a new is-connected property to GdmDisplay and
changes the code to never give a user authorization if we
aren't connected.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
| |
GdmLocalDisplay doesn't need it, so don't bother doing it then.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The session-class property is analagous to the
sd_login session class. It can be either
"greeter" or "user".
This helps us decide whether or not to add a
launch environment to the display.
We need this because some displays go straight
to a user session.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
| |
The worker needs to know if a display should be forced on
vt1 or not when deciding which vt to allocate for the logind
session.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
|
|
| |
When the slave was in a different process we needed to
interact with the display in the manager process remotely.
Now it's all one process and we don't, so clean up what
gets exported over the bus.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
| |
Going forward we aren't always going to know the display
number ahead of time, so don't use it for encoding the
display id.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
| |
All it does is set the managed state, which the subclasses
can do just as easily, so cut out some code.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
| |
At this point the slaves do nothing useful, so we can
get rid of them.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
| |
This commit moves GdmServer to GdmLocalDisplay, and
XDMCP connection retries to GdmXdmcpDisplay.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
| |
This function will be overridden by GdmLocalDisplay to
start the X server.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
| |
It's more logical here, and we're trying to get rid
of the slave object eventually, anyway.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
|
|
|
| |
We're trying to get rid of the slave code, so we need to
move responibility for launching the greeter to the
display objects.
This commit changes the display classes to set up a
launch environment that the base class runs.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
|
| |
The idea is to eventually gut GdmSimpleSlave, so start by
copying some of its functionality over to the display.
This commit copies accountsservice user listing.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
| |
self is the defacto standard these days.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
| |
We're going to be adding more than a couple, so
switch to a bitfield.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
| |
Instead introduce an "allow-timed-login" property that
subclasses can set to FALSE to disable timed login.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
| |
It turns out it never fails, and all callers always pass NULL for
it's error argument, so drop that argument and the gboolean return
type.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
| |
gdm-display has a whole host of vfuncs that are now completely unused.
This commit drops thems.
https://bugzilla.gnome.org/show_bug.cgi?id=744764
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The signal handlers here are intended to be used if the slave itself
tries to stop, for instance if the server or greeter die, and will
try to finish the display on its own.
Letting the signal handler run again will finish the display *again*
after an idle, meaning we have this path:
gdm_display_finish
gdm_display_unmanage
on_server_stopped
queue_finish
... idle ...
gdm_display_finish
gdm_display_unmanage
on_server_stopped
queue_finish
...
This might have been an infinite loop, except for the fact that GDM
smartly has code to detect the failure state where the X server
starts up and stops sufficiently quickly, and in that case transitions
the display to the FAILED state, which causes GdmDisplayStore to
unref the last ref on the GdmDisplay.
Since the finish is still queued, finish_idle runs, and very quickly
discovers that our object is no longer a GdmDisplay, so this very
quickly manifests into a:
gdm_display_finish: assertion 'GDM_IS_DISPLAY (display)' failed
error. Not before poking a hole and corrupting some memory trying
to clear the finish_idle_id, however.
|
|
|
|
|
|
| |
These can't possibly be active and armed if we're disposing.
https://bugzilla.gnome.org/show_bug.cgi?id=726380
|
|
|
|
|
|
|
| |
The GdmDisplay should only be cleaned up if it's finished
or failed.
https://bugzilla.gnome.org/show_bug.cgi?id=726380
|
|
|
|
|
|
|
|
|
|
| |
For no particular reason, the slave has been kept as a separate process.
Integrate this into the main display process by simply making the display
keep a handle to a GdmSlave object. To keep the cleanup simple, we won't
remove the GdmSlave subtypes yet. A future cleanup should merge the slave
functionality into GdmDisplay and its subtypes.
https://bugzilla.gnome.org/show_bug.cgi?id=726380
|
|
|
|
| |
We can simply return a const char * here.
|
|
|
|
|
| |
Make it properly log itself as a GdmDisplay method, and use
local variables to ensure that callers can pass NULL.
|
|
|
|
|
| |
The _bus_ middle part of the name was only there to prevent ambiguity
with the, then named "gdm-slave-proxy", but now named, gdm-slave-job class.
|
|
|
|
| |
It doesn't actually proxy calls to the slave, so it's misnamed.
|
|
|
|
| |
It's unused.
|
|
|
|
|
|
| |
Noted on downstream bug:
https://bugzilla.redhat.com/show_bug.cgi?id=1020885
|
| |
|
|
|
|
|
|
| |
https://bugzilla.gnome.org/show_bug.cgi?id=701758
Signed-off-by: Marc-Antoine Perennou <Marc-Antoine@Perennou.com>
|
|
|
|
|
|
|
|
|
| |
slave_name_id is supposed to track the bus name watch of the slave, but
it was never getting set.
This commit sets it, and makes sure the watch is removed in unmanage.
https://bugzilla.gnome.org/show_bug.cgi?id=698370
|
|
|
|
|
|
| |
It's more correct. See:
https://mail.gnome.org/archives/desktop-devel-list/2013-March/msg00092.html
|
|
|
|
|
|
|
|
| |
It's possible to build with systemd support, but not boot with systemd.
In that case get_timed_login_details erroneously assumes the seat format
will be systemd compatible (it checks if the seat is seat0).
This commit guards the seat0 check with a sd_booted() > 0 check.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
We currently allow the slave access to its X server via two
mechanisms:
1) we set XAUTHORITY to point to the X servers Xauthority file
2) we call XSetAuthorization with the cookie from the Xauthority file
1) may fail if the user's hostname changes at the wrong moment, and
a bug in the code meant that 2 would fail if NULs are encoded in the
auth cookie.
This commit fixes 2) to work with embedded NUL bytes.
https://bugzilla.gnome.org/show_bug.cgi?id=687691
|
|
|
|
| |
Fix bug 683383.
|
|
|
|
|
|
|
|
|
|
|
| |
* Most setters of a **error (such as g_set_error()
and g_propagate_error() require and check that the
GError pointer is NULL before setting).
* Fix cases where a GError pointer was not initialized
to NULL, and instead relied on the stack value that
happened to be present.
https://bugzilla.gnome.org/show_bug.cgi?id=681972
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This drops automatic VT allocation schemes for the initial display in
favour of a compile time hardcoded VT assignment. The automatic
allocation schemes are inherently racy since a simpler output to the
console might already influence it and result in gdm running on another
than the intended VT.
This patch adds a --with-initial-vt= switch to configure which may be
used to set the VT gdm will run the initial server on. It defaults to 1.
https://fedoraproject.org/wiki/Features/DisplayManagerRework
https://bugzilla.gnome.org/show_bug.cgi?id=511168
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This commit adds reauthentication support for
screensavers and user switching to use.
1) It adds a "verification mode" argument to the GdmSession constructor
that tweaks the behavior of how the session worker acts to fit login or
unlock scenarios better.
2) It adds a way for programs to open a communication channel for user
verification to already runnings sessions (so reauthentication happens
in the context of the session).
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
One goal for GNOME 3.6, is to replace the screen locking functionality
provided by gnome-screensaver with redesigned functionality provided
by gnome-shell.
At the same time, it makes sense to consolidate the yucky PAM
authentication code to one place (GDM).
Right now only greeters can talk to GDM. At the time the greeter is
started, the slave sets up a private communication channel which the
greeter then connects to for initiating communication.
This commit adds a new method to the org.gnome.DisplayManager.Manager
interface that allows opening a private connection to the slave that
is associated with the currently running session. That slave exports
the session object over the bus that greeters can interact with the
session as appropriate. This interface replaces the
GDM_GREETER_DBUS_ADDRESS environment variable that used to to be used
for connecting the greeter to the slave.
This commit also drops gdm-greeter-server and gdm-chooser-server which
don't fit the new model, and are really just thin middle men that don't do
anything important.
Furthermore, this commit splits GdmSession interfaces 3 orthogonal parts
up into 3 separate interfaces on the session object.
A future commit will make this interface work for screensavers/reauthentication.
Based on work by Giovanni Campagna <gcampagna@src.gnome.org>
https://bugzilla.gnome.org/show_bug.cgi?id=676381
|
|
|
|
|
|
|
|
| |
If a slave goes away for whatever reason, we need to
make sure we clean up the display associated with it.
This commit changes the display code to watch its associated
slave on the bus and automatically finish if the slave goes away.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The GdmManager object controls the GdmLocalDisplayFactory and
GdmXdmcpDisplayFactory singleton objects, which manage displays on local
VTs and displays on remote machines respectively.
Another role of the GdmManager object is to aggregate and export the
displays currently being managed by those display factories over the
system bus.
This commit moves GdmManager over to using GDBus and the
GDBusObjectManager interface for display enumeration.
https://bugzilla.gnome.org/show_bug.cgi?id=622888
|
|
|
|
|
|
|
|
| |
This is one big commit because it uses generated code both
in the daemon and in the slaves, so we need to port both at the
same time.
https://bugzilla.gnome.org/show_bug.cgi?id=622888
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The X11 cookie is used as a shared secret between X clients
and the X server. This cookie is written into an Xauthority
file pointed to by the XAUTHORITY environment variable. In the
event standard peer-credential based access isn't available, clients
read this file and gain authorization to use the X server by
presenting the cookie to the X server.
This cookie is passed from the gdm daemon to the slave over the bus
as an array of bytes. GDBus expects bytes strings to be NUL terminated.
This commit NUL terminates the cookie, so that it will be compatible
with GDBus's generated code.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
If the XDMCP chooser exits enough times,
the whole daemon eventually tanks when
the child watch function tries to access
freed memory.
This commit takes the hammer approach of
adding a reference to the slave from
the child watch func.
It also makes sure that there isn't ever
two slaves running for one display at the
same time.
|
|
|
|
|
|
|
|
| |
commit b436764275e513ebd5b0546ab047f0fce2f34b35 tried to prevent
autologin on auxilliary seats, but the conditional was inverted,
so it ended up preventing autologin on the primary seat.
https://bugzilla.gnome.org/show_bug.cgi?id=672773
|
|
|
|
|
| |
Supporting other seats makes sense for kiosk type
set ups eventually, but not without more thought.
|
|
|
|
|
|
|
|
|
|
|
|
| |
I had some inprogress changes in my local tree when when
git bz applying the patches on bug 618047.
Those unfinished changes got interleaved into the commits,
creating a bit of a mess.
Also, bug 618047 has been reopened.
This commit reverts those changes for now until.
|
|
|
|
|
|
|
| |
There's a bit of needless boilerplate and dead code
just sort of sitting around in various places.
This commit cleans things up a bit.
|