1. 20 Oct, 2017 1 commit
    • Ray Strode's avatar
      daemon: introduce pam extension mechanism · d5280a38
      Ray Strode authored
      This abuses PAM_BINARY_PROMPT for our own nefarious purposes.
      The way it works is GDM advertises what "extensions" it supports
      with the environment variable, GDM_SUPPORTED_PAM_EXTENSIONS (a space
      separated list of reverse dns notation names). PAM services that
      support this protocol, will read the environment variable, and
      check for extension strings they support. They then know that sending
      PAM_BINARY_PROMPT won't blow up, and know what format to use for the
      binary data.  The type field of the structure is the index of the
      string from the environment variable.
      This commit is just foundation work. It doesn't actually add any
  2. 28 Sep, 2017 1 commit
  3. 12 Jun, 2015 1 commit
  4. 18 Feb, 2015 6 commits
  5. 22 Apr, 2014 1 commit
  6. 10 Apr, 2014 1 commit
  7. 19 Mar, 2014 1 commit
  8. 17 Mar, 2014 1 commit
  9. 25 Feb, 2014 1 commit
    • Allison Karlitskaya's avatar
      Stop using LDFLAGS for libraries · 9a23fcc8
      Allison Karlitskaya authored
      Originally, EXTRA_*_LIBS was introduced as a way to get certain
      libraries to the front of the line when invoking the linker in order to
      control which version of a library we got.  See bug 85785 for the
      history there.
      This is probably no longer needed, so officially declare that the only
      thing that the EXTRA_ variables mean is "not from pkg-config".
      Move all of the EXTRA_*_LIBS from LDFLAGS to _LDADD, along with some
      other things that were improperly in LDFLAGS.
  10. 13 Feb, 2014 1 commit
  11. 07 Feb, 2014 2 commits
  12. 28 Aug, 2013 1 commit
    • Ray Strode's avatar
      drop authdir · 16bd10ca
      Ray Strode authored
      <Black_Prince> halfline: what's the point of authdir in gdm? (/var/gdm)
      <Black_Prince> it doesn't appear to be used anywere
      <halfline> no point
      <Black_Prince> there are some references in daemon/main.c, but nothing
      ever gets stored in there
      <Black_Prince> instead, xauthdir is used
  13. 20 Feb, 2013 1 commit
  14. 05 Feb, 2013 1 commit
  15. 22 Jan, 2013 1 commit
  16. 06 Sep, 2012 1 commit
    • Ray Strode's avatar
      daemon: reset exec context after fork() · d4dbdc8c
      Ray Strode authored
      When pam_open_session finishes, the session worker
      is set up such that the next fork()/exec() may transition the
      user to a user specific context (such as staff_t).
      This makes sense for the first fork()/exec() (which is the user
      login), but the worker may fork()/exec() other workers after login
      for unlock operations.  These workers need to run in a gdm context
      not a user context.
      This commit changes gdm-session-worker to manually reset the exec()
      context after the first fork().
  17. 04 Sep, 2012 1 commit
    • Ray Strode's avatar
      drop libxklavier dependency · b17ceeb8
      Ray Strode authored
      Keyboard handling is now done without libxklavier, everywhere
      else in gnome. Drop the dependency here, too.
      We may have to add a patch to gnome-shell to give preference to
      latin layouts at the login screen.
  18. 27 Aug, 2012 1 commit
  19. 01 Aug, 2012 3 commits
    • Jasper St. Pierre's avatar
      daemon: Add initial setup integration · 4e2a75a1
      Jasper St. Pierre authored
      When a system boots for the first time, we want to show a special
      tool that will allow the user to set up their system the way they
      want to. This will be triggered by a special file:
      The responsibilities of this tool include creating the user's
      account, so we have to create a special user account to run the
      tool under.
      Administrators are given the ability to turn this off in a GDM
      setting if they want to.
    • Jasper St. Pierre's avatar
      daemon: Rename GdmWelcomeSession to GdmLaunchEnvironment · 2ebfa918
      Jasper St. Pierre authored
      "GdmWelcomeSession" was always a sort of bad name, as it is not a
      GdmSession, itself (it has-a GdmSession), and it's unnecessarily generic;
      it doesn't really have anything to do with "Welcome" or "Session"
      itself. It managed a non-user GdmSession, spawned the process in the
      correct environment (spawning a DBus daemon if need be) and made sure to
      keep track of it until it died. I think "GdmLaunchEnvironment" is an
      appropriate name for this.
    • Jasper St. Pierre's avatar
      daemon: Replace old method/signal-based API with async method calls · 2672f6a1
      Jasper St. Pierre authored
      Before, the session worker and session communicated by a series of signals
      and methods... but backwards. The session worker would listen for a series
      of signals sent out by the session, and respond back by calling methods on
      it. This requires a lot of annoying, silly manual labor when trying to add
      another method to the API.
      So, reverse the API so that the worker manager calls async methods on the
      worker itself.
  20. 19 Jul, 2012 1 commit
  21. 17 Jul, 2012 10 commits
    • Ray Strode's avatar
      daemon: distcheck fixes · 14064ad5
      Ray Strode authored
    • Giovanni Campagna's avatar
      daemon: add greeter test program · 00c37b0c
      Giovanni Campagna authored
      This commit adds a small test program that excerises
      the new interface for connecting to GDM.
    • Ray Strode's avatar
      worker: add reauthentication support · 2853ce58
      Ray Strode authored
      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).
    • Ray Strode's avatar
      daemon: Add an interface for communicating with GDM via D-Bus · e0a3c565
      Ray Strode authored
      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>
    • Giovanni Campagna's avatar
      worker: Port to GDBus · 5d319617
      Giovanni Campagna authored
      The gdm-session-worker is a process used for managing interaction
      with PAM. PAM modules can do weird things to the process they run
      in, so GDM segregrates all PAM conversations in their own independent
      "worker" subprocesses.
      This commit moves gdm-session-worker away from using dbus-glib
      to using gdbus instead.
    • Giovanni Campagna's avatar
      daemon: Port GdmSession to use GDBus · 53e24b49
      Giovanni Campagna authored
      GdmSession is an object in the slave that manages
      the various session worker processes.  Each session
      worker process talks to PAM to perform authentication
      for the user. For instance, if the user has a fingerprint
      reader, then there will normally be two worker processes,
      one for handling fingerprint auth, and one for handling
      password auth.  GdmSession is the interface layer in the
      slave to talking to those running worker processes.
      This commit ports GdmSession over to GDBus from dbus-glib.
    • Giovanni Campagna's avatar
      daemon: Port GdmChooserServer to GDBus · 3eeec6ee
      Giovanni Campagna authored
      GdmChooserServer is the slave-side object that handles communication
      with choosers. The chooser talks over a private peer-to-peer dbus
      connection to its slave via GdmChooserServer.
      A chooser is like a greeter, but instead of presenting a login screen
      it presents a list of hosts on the network that will offer login screens
      if asked.  The user picks one of these hosts and their display is
      redirected to it.
      This commit makes GdmChooserServer use GDBus.
      This gets us one step closer to GDM running without dbus-glib.
    • Giovanni Campagna's avatar
      daemon: Port GdmManager to GDBus · 36588274
      Giovanni Campagna authored
      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.
    • Giovanni Campagna's avatar
      daemon: Port display handling to GDBus · dddeab1c
      Giovanni Campagna authored
      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.
    • Giovanni Campagna's avatar
      daemon: Port GdmGreeterServer to GDBus · c417ebc2
      Giovanni Campagna authored
      GdmGreeterServer is the slave-side object that handles communication
      with greeters. The greeter talks over a private peer-to-peer dbus
      connection to its slave via GdmGreeterServer.
      This commit makes GdmGreeterServer use GDBus.
      This gets us one step closer to GDM running without dbus-glib.
  22. 13 Jul, 2012 2 commits