summaryrefslogtreecommitdiff
path: root/daemon/gdm-session.h
Commit message (Collapse)AuthorAgeFilesLines
* gdm-session: Remove leftoversAlessandro Bono2022-09-081-5/+0
| | | | | | This function doesn't exist. Fixes: 04853a3b8c17712cc7f74c3c405ef47af53151c1
* Allow sessions to register with GDMIain Lane2019-05-291-0/+1
| | | | | | | | | | | | | | | | | | | | | | Recording when sessions start, for Wayland → Xorg fallback or transitioning to the user session, is currently done with timeouts. This isn't ideal, because on some very slow machines the timeout can be hit before the session has had a chance to fail: if gnome-session takes more than 3 seconds to fail then the session will be considered to have exited rather than failed, and so we don't do Xorg fallback. We can do this more reliably if we allow sessions to optionally register themselves with GDM. Then we will know when they've started, so can shut down the greeter or fall back to Xorg as appropriate. The mechanism is that they specify X-GDM-SessionRegisters=true in their file, and then call RegsterSession on the DisplayManager interface on the bus (added in the previous commit) to say that they've started up. If X-GDM-SessionRegisters is missing or false, GDM will call the same method for them after 10 seconds. Closes: #483
* session: use G_DECLARE_FINAL_TYPENiels De Graef2018-12-251-60/+1
|
* session: add property for ignoring wayland sessionsRay Strode2015-11-061-0/+4
| | | | | | | | | | | We're going to want to be able to exclude wayland sessions from the search path if the manager deems it necessary. This commit adds a property to GdmSession to give the manager that ability. https://bugzilla.gnome.org/show_bug.cgi?id=757715
* session: drop session-type propertyRay Strode2015-06-121-2/+0
| | | | | | | | It was used by ConsoleKit to set the "LoginWindow" property on login screen sessions. it's not used by logind and ConsoleKit is gone now, so drop it. https://bugzilla.gnome.org/show_bug.cgi?id=743940
* session: add way to get session id for specific conversationRay Strode2015-02-181-0/+2
| | | | | | | | | | | | Right now, the only way to find out the session id of an opened (but not started) session is a parameter in the session-opened handler. This commit adds a new function gdm_session_get_conversation_session_id that returns the session-id for a specified opened conversation. https://bugzilla.gnome.org/show_bug.cgi?id=744764
* session: add authentication-failed signalRay Strode2015-02-181-0/+3
| | | | | | | | | This signal records when a user tried to log in but typed the wrong password (or whatever). We'll need this to move session recording up to GdmManager. https://bugzilla.gnome.org/show_bug.cgi?id=744764
* session: add session pid getterRay Strode2015-02-181-0/+1
| | | | | | | We're going to move wtmp recording to GdmManager, and for that we'll need the pid of the session. https://bugzilla.gnome.org/show_bug.cgi?id=744764
* session: detect when conversation is started more than once and error outRay Strode2015-02-181-1/+1
| | | | | | | It's a bug when it happens but this makes the failure happen right away instead of leading to a dbus timeout. https://bugzilla.gnome.org/show_bug.cgi?id=744764
* manager: close up timed login raceRay Strode2014-06-051-1/+1
| | | | | | | | | | | | Previously we would emit the timed-login-requested signal after the client connects, which might be before it was listening for the signal. Now we only emit the signal in direct response to a GetTimedLoginDetails call, which we make implicitly when the appropiate proxy interface is set up. https://bugzilla.gnome.org/show_bug.cgi?id=680348
* session: introduce new client-rejected signalRay Strode2014-04-101-0/+1
| | | | | | | | | If a client gets rejected because it's not allowed to connect to a particular session, we really need to inform the owner of the session object so it can do any clean up it needs to do, if necessary. https://bugzilla.gnome.org/show_bug.cgi?id=727982
* session-worker: Implement support for the different display server modesJasper St. Pierre2014-03-181-0/+3
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=726380
* session: Introduce the concept of the "session display mode"Jasper St. Pierre2014-03-181-0/+18
| | | | | | | | The session display mode describes exactly how the worker environment will set up VTs, and whether the greeter X server will be reused for the user session. https://bugzilla.gnome.org/show_bug.cgi?id=726380
* Revert "manager: Don't reuse the same X server when we have a display server"Jasper St. Pierre2014-03-181-1/+0
| | | | | | This reverts commit 72ccb27377886b9998ad8b5b7a3b3070474f90f3. We're going to take a different approach for this.
* manager: Don't reuse the same X server when we have a display serverJasper St. Pierre2014-03-171-0/+1
| | | | | | | | | | | | | | GNOME is going to need a mode of operation in GDM where it manages its own display. In this mode of operation, we won't morph the login screen into a user session by reusing the same X server. Instead, we reset the login screen to prepare it for a future login, and then let GNOME activate its session on its own. This commit adds the prerequisite work needed to gdm-manager.c, but only as dead code, since the way to "turn it on" is stubbed out to always return FALSE. https://bugzilla.gnome.org/show_bug.cgi?id=726380
* session: Remove a duplicate definitionJasper St. Pierre2014-03-141-2/+1
| | | | | | And move gdm_session_cancel(); somewhere a bit related. https://bugzilla.gnome.org/show_bug.cgi?id=726380
* session: Prevent memory leaks by removing strdup accessorsJasper St. Pierre2014-02-141-5/+5
| | | | | | | gdm_session_get_* dup the strings they return, but not a lot of code frees the resulting strings. It's a lot easier to not dup the return values and make them const char *, as they won't ever change while some code holds onto them...
* daemon: add new gdm_session_is_running methodRay Strode2014-02-141-0/+1
| | | | | | | GdmSession emits when a session is started or stopped, but doesn't let a caller query if a session is on-going. This commit adds API for that.
* Fix build problem on FreeBSDTing-Wei Lan2014-02-131-0/+1
| | | | | | | | 1. gdm-session-worker needs -lutil. 2. #include <sys/types.h> is needed to get uid_t. 3. #include <netinet/in.h> is needed to get several struct. https://bugzilla.gnome.org/show_bug.cgi?id=722594
* daemon: get rid of greeter language selectionRay Strode2013-12-161-2/+0
| | | | | | | These days the greeter doesn't let you pick a language at log in time. This commit drops the interface, since it's unused, and we don't have any API guarantees in libgdm.
* worker: Copy environment from login session to reauth sessionsRay Strode2012-09-171-7/+10
| | | | | | | | | | | | | Reauthentication sessions depend on having the same environment as the session they were initiated from. This is important to make sure login prompts are in the right language, to make sure the kerberos credentials cache is looked up, and for various other reasons. This commit copies the environment from the login session to any new reauthentication sessions that get started after login. https://bugzilla.gnome.org/show_bug.cgi?id=684241
* Trivial: Update FSF Address.Dominique Leuenberger2012-09-061-2/+2
| | | | Fix bug 683383.
* daemon: Allow passing a username to SetupForProgramJasper St. Pierre2012-07-191-0/+1
| | | | | | This allows the setup session to pass the gdm-initial-setup user. https://bugzilla.gnome.org/show_bug.cgi?id=678057
* worker: add reauthentication supportRay Strode2012-07-171-1/+13
| | | | | | | | | | | | | 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).
* daemon: Add an interface for communicating with GDM via D-BusRay Strode2012-07-171-50/+27
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* daemon: Port GdmSession to use GDBusGiovanni Campagna2012-07-171-13/+0
| | | | | | | | | | | | | | | 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. https://bugzilla.gnome.org/show_bug.cgi?id=622888
* daemon: drop display-id arg to GdmSessionDirectRay Strode2012-07-131-108/+89
| | | | It's not used anywhere, and so there's no reason to pass it along.
* daemon: drop CLOSED signalRay Strode2012-07-131-1/+0
| | | | It was only used by now-removed code.
* daemon: run greeter in its own distinct sessionRay Strode2011-08-301-0/+20
| | | | | | | | | | | | | | Right now before launching the greeter, we create this little ad hoc session that only runs through some of the OS machinery for session registration. This means not only is there duplicate code with GDMs real session handling functions, but the greeter is potentially running in an incomplete session. This commit, inspired by the work of Lennart and Kay, changes GDM to run its greeter session through a session worker just like any other session.
* daemon: Distinguish "pam module failed" from "authentication failed"Ray Strode2011-06-131-0/+2
| | | | | | | | If pam_start() fails, that suggests the configured service stack is failing independent of the user account. This commit exposes that failure as "service unavailable" instead of "authentication failed".
* daemon: Store multiple conversations in the sessionRay Strode2011-06-131-13/+47
| | | | | | We keep multiple conversations in the session now, keyed off of which PAM service is at the other end. Much of the guts still only operate on the first conversation added though.
* daemon: Make current pam conversation explicit throughout codeRay Strode2011-06-131-3/+6
| | | | | | | | | | | | | | We want to eventually support having multiple simultaneous PAM conversations in one login screen (so, e.g., username/password, smart card, and fingerprint all work at the same time). This commit refactors the session code to be in terms of a conversation object. With this change, it should be easier later to have multiple conversation objects. The conversation is named by the pam service the login screen is talking to.
* daemon,greeter: drop support for keyboard layout selectionRay Strode2011-01-311-6/+0
| | | | | It's no longer exposed in the UI, and it never really worked well, so drop it for now.
* Don't tear down greeter until pam_open_session finishesRay Strode2010-02-081-0/+5
| | | | | | Some PAM modules ask questions at that late stage of the game, and so we need a greeter to forward the questions on to the user.
* Rename session "Open" method to "StartConversation"Ray Strode2010-02-081-3/+3
| | | | | | | Open is very general. If we rename it, then we can use the term "open" for the state after PAM finishes checking identity, authorizing, and giving out credentials, before a session is started.
* Add a keyboard chooserMatthias Clasen2008-05-051-0/+6
| | | | svn path=/trunk/; revision=6212
* Refactor things a little. Rename renew to refresh. Add a pid to theWilliam Jon McCann2008-03-141-2/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-03-14 William Jon McCann <jmccann@redhat.com> * daemon/gdm-manager.c: (bus_name_owner_changed): * daemon/gdm-product-slave.c: (send_dbus_string_method), (send_dbus_void_method), (send_dbus_int_method), (relay_session_started), (on_session_started), (on_relay_refresh_credentials), (relay_dbus_handle_message): * daemon/gdm-session-direct.c: (gdm_session_direct_handle_session_started), (do_introspect), (gdm_session_direct_accredit): * daemon/gdm-session-private.h: * daemon/gdm-session-relay.c: (gdm_session_relay_accredit), (handle_secret_info_query), (handle_info), (handle_problem), (handle_session_started), (do_introspect), (gdm_session_iface_init): * daemon/gdm-session-worker.c: (gdm_session_worker_update_environment_from_passwd_info), (_change_user), (_lookup_passwd_info), (gdm_session_worker_accredit_user), (on_refresh_credentials), (worker_dbus_handle_message): * daemon/gdm-session.c: (gdm_session_class_init), (_gdm_session_session_started): * daemon/gdm-session.h: * daemon/gdm-simple-slave.c: (on_session_started), (gdm_simple_slave_accredit_when_ready), (on_greeter_connected): * daemon/gdm-slave.c: (gdm_slave_get_primary_session_id_for_user), (gdm_slave_switch_to_user_session): * daemon/gdm-slave.h: Refactor things a little. Rename renew to refresh. Add a pid to the session started signal. svn path=/trunk/; revision=6018
* Change "SavedLanguageNameRead"/"SavedSessionNameRead" toRay Strode2008-02-251-4/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-02-25 Ray Strode <rstrode@redhat.com> * daemon/gdm-session-private.h: * daemon/gdm-session.h: * daemon/gdm-session.c: (gdm_session_class_init), (_gdm_session_default_language_name_changed), (_gdm_session_default_session_name_changed), (_gdm_session_default_session_name_changed), * daemon/gdm-session-direct.c: (get_default_language_name), (get_default_session_name), (gdm_session_direct_defaults_changed), (gdm_session_direct_select_user), (gdm_session_direct_handle_username_changed), (gdm_session_direct_handle_saved_language), (gdm_session_direct_setup), (gdm_session_direct_setup_for_user), (get_language_name), (get_session_name): * daemon/gdm-simple-slave: (on_default_language_name_changed): (on_default_session_name_changed): (create_new_session): * daemon/gdm-greeter-server.[ch]: (gdm_greeter_server_default_language_name_changed), (gdm_greeter_server_default_session_name_changed), (do_introspect): Change "SavedLanguageNameRead"/"SavedSessionNameRead" to "DefaultLanguageNameChanged"/"DefaultSessionNameChanged" and call it with system fallbacks whenever a new user is authenticating before ~/.dmrc is read. svn path=/trunk/; revision=5847
* Add initial support for timed login.William Jon McCann2008-02-201-2/+6
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-02-20 William Jon McCann <jmccann@redhat.com> * common/gdm-settings-client.c: (gdm_settings_client_get_string): * common/gdm-settings-keys.h: * daemon/gdm-factory-slave.c: (on_greeter_begin_verification), (on_greeter_begin_verification_for_user): * daemon/gdm-greeter-server.c: (handle_begin_timed_login), (greeter_handle_child_message), (do_introspect), (gdm_greeter_server_class_init): * daemon/gdm-greeter-server.h: * daemon/gdm-product-slave.c: (on_relay_setup), (on_relay_setup_for_user): * daemon/gdm-session-direct.c: (gdm_session_direct_init), (send_setup), (send_setup_for_user), (gdm_session_direct_setup), (gdm_session_direct_setup_for_user), (gdm_session_direct_set_property), (gdm_session_direct_get_property), (gdm_session_direct_dispose), (gdm_session_direct_class_init): * daemon/gdm-session-relay.c: (send_dbus_string_string_signal), (gdm_session_relay_setup), (gdm_session_relay_setup_for_user), (do_introspect): * daemon/gdm-session.c: (gdm_session_setup), (gdm_session_setup_for_user): * daemon/gdm-session.h: * daemon/gdm-simple-slave.c: (on_greeter_begin_verification), (on_greeter_begin_timed_login), (on_greeter_begin_verification_for_user), (run_greeter): * daemon/simple-slave-main.c: (main): * daemon/test-session.c: (on_open): * gui/simple-greeter/gdm-greeter-client.c: (emit_string_signal_for_message), (gdm_greeter_client_call_begin_timed_login): * gui/simple-greeter/gdm-greeter-client.h: * gui/simple-greeter/gdm-greeter-login-window.c: (remove_timed_login_timeout), (timed_login_timer), (restart_timed_login_timeout), (on_login_button_clicked_answer_query), (on_login_button_clicked_timed_login), (set_log_in_button_mode), (switch_mode), (do_cancel), (reset_dialog), (gdm_greeter_login_window_info_query), (gdm_greeter_login_window_secret_info_query), (on_user_chosen), (load_theme), (read_configuration), (gdm_greeter_login_window_constructor), (gdm_greeter_login_window_class_init), (gdm_greeter_login_window_init): * gui/simple-greeter/gdm-greeter-login-window.h: * gui/simple-greeter/gdm-greeter-session.c: (on_begin_timed_login), (toggle_login_window): * gui/simple-greeter/gdm-user-chooser-dialog.c: (gdm_user_chooser_dialog_set_show_other_user), (gdm_user_chooser_dialog_set_show_guest_user), (gdm_user_chooser_dialog_set_show_auto_user), (gdm_user_chooser_dialog_init): * gui/simple-greeter/gdm-user-chooser-dialog.h: * gui/simple-greeter/gdm-user-chooser-widget.c: (add_user_other), (add_user_guest), (add_user_auto), (remove_user_other), (remove_user_guest), (remove_user_auto), (gdm_user_chooser_widget_set_show_other_user), (gdm_user_chooser_widget_set_show_guest_user), (gdm_user_chooser_widget_set_show_auto_user), (gdm_user_chooser_widget_constructor), (gdm_user_chooser_widget_init): * gui/simple-greeter/gdm-user-chooser-widget.h: * gui/simple-greeter/greeter-main.c: (main): * gui/simple-greeter/test-greeter-login-window.c: (main): * gui/simple-greeter/test-user-chooser.c: (main): Add initial support for timed login. svn path=/trunk/; revision=5820
* Read ~/.dmrc when available, and bubble the results up to the greeterRay Strode2008-02-181-1/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-02-18 Ray Strode <rstrode@redhat.com> Read ~/.dmrc when available, and bubble the results up to the greeter * daemon/Makefile.am: add gdm-session-settings.[ch] to worker sources * daemon/gdm-session-private.h: * daemon/gdm-session.[ch]: (_gdm_session_saved_language_name_read), (_gdm_session_saved_session_name_read), (gdm_session_class_init): Add two new signals: "saved-language-name-read" and "saved-session-name-read" * daemon/gdm-session-worker.c (GdmSessionWorkerPrivate): session settings object to hold ~/.dmrc info. (attempt_to_load_user_settings_as_root): new function to switch from root to user, load settings, and switch back (do_setup), (gdm_session_worker_update_username): Create session settings object, and try to load ~/.dmrc in to object at various points in the pam conversation. (on_saved_language_name_read), (on_saved_session_name_read): report session settings changes from worker to slave * daemon/gdm-greeter-server.[ch]: (gdm_greeter_server_saved_language_name_read), (gdm_greeter_server_saved_session_name_read), (do_introspect): send language and session name to greeter svn path=/trunk/; revision=5789
* Split up the Verification step in the GdmSession interface into componentWilliam Jon McCann2007-11-071-12/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-11-07 William Jon McCann <mccann@jhu.edu> * daemon/gdm-factory-slave.c: (greeter_reset_timeout), (queue_greeter_reset), (on_session_setup_complete), (on_session_setup_failed), (on_session_reset_complete), (on_session_reset_failed), (on_session_authenticated), (on_session_authentication_failed), (on_session_authorized), (on_session_authorization_failed), (on_session_accredited), (on_session_accreditation_failed), (on_greeter_begin_verification), (on_greeter_begin_verification_for_user), (gdm_factory_slave_start): * daemon/gdm-product-slave.c: (on_session_setup_complete), (on_session_setup_failed), (on_session_reset_complete), (on_session_reset_failed), (on_session_authenticated), (on_session_authentication_failed), (on_session_authorized), (on_session_authorization_failed), (on_session_accredited), (on_session_accreditation_failed), (on_relay_setup), (on_relay_setup_for_user), (on_relay_authenticate), (on_relay_authorize), (on_relay_establish_credentials), (on_relay_renew_credentials), (create_new_session), (relay_dbus_handle_message): * daemon/gdm-session-direct.c: (send_dbus_void_signal), (on_authentication_failed), (on_session_start_failed), (gdm_session_direct_handle_setup_complete), (gdm_session_direct_handle_setup_failed), (gdm_session_direct_handle_reset_complete), (gdm_session_direct_handle_reset_failed), (gdm_session_direct_handle_authenticated), (gdm_session_direct_handle_authentication_failed), (gdm_session_direct_handle_authorized), (gdm_session_direct_handle_authorization_failed), (gdm_session_direct_handle_accredited), (gdm_session_direct_handle_accreditation_failed), (gdm_session_direct_handle_start_failed), (session_worker_message), (do_introspect), (gdm_session_direct_init), (worker_exited), (worker_died), (gdm_session_direct_open), (send_setup), (send_setup_for_user), (gdm_session_direct_setup), (gdm_session_direct_setup_for_user), (gdm_session_direct_authenticate), (gdm_session_direct_authorize), (gdm_session_direct_accredit), (gdm_session_direct_close), (gdm_session_iface_init): * daemon/gdm-session-direct.h: * daemon/gdm-session-private.h: * daemon/gdm-session-relay.c: (send_dbus_string_signal), (send_dbus_void_signal), (gdm_session_relay_setup), (gdm_session_relay_setup_for_user), (gdm_session_relay_authenticate), (gdm_session_relay_authorize), (gdm_session_relay_accredit), (gdm_session_relay_answer_query), (handle_setup_complete), (handle_setup_failed), (handle_authenticated), (handle_authentication_failed), (handle_authorized), (handle_authorization_failed), (handle_accredited), (handle_accreditation_failed), (handle_session_started), (handle_session_stopped), (handle_opened), (session_handle_child_message), (do_introspect), (gdm_session_iface_init): * daemon/gdm-session-worker.c: (gdm_session_execute), (gdm_session_worker_update_username), (gdm_session_worker_initialize_pam), (gdm_session_worker_accredit_user), (session_worker_child_watch), (gdm_session_worker_start_user_session), (do_setup), (do_authenticate), (do_authorize), (do_accredit), (do_open_session), (do_start_session), (state_change_idle), (on_setup), (on_setup_for_user), (on_authenticate), (on_authorize), (on_establish_credentials), (on_renew_credentials), (worker_dbus_handle_message): * daemon/gdm-session.c: (gdm_session_setup), (gdm_session_setup_for_user), (gdm_session_authenticate), (gdm_session_authorize), (gdm_session_accredit), (gdm_session_class_init), (_gdm_session_setup_complete), (_gdm_session_setup_failed), (_gdm_session_reset_complete), (_gdm_session_reset_failed), (_gdm_session_authenticated), (_gdm_session_authentication_failed), (_gdm_session_authorized), (_gdm_session_authorization_failed), (_gdm_session_accredited), (_gdm_session_accreditation_failed), (_gdm_session_session_start_failed): * daemon/gdm-session.h: * daemon/gdm-simple-slave.c: (greeter_reset_timeout), (queue_greeter_reset), (on_session_setup_complete), (on_session_setup_failed), (on_session_reset_complete), (on_session_reset_failed), (on_session_authenticated), (on_session_authentication_failed), (on_session_authorized), (on_session_authorization_failed), (on_session_accredited), (on_session_accreditation_failed), (create_new_session), (on_greeter_begin_verification), (on_greeter_begin_verification_for_user): * daemon/test-session.c: (on_open), (on_session_setup_complete), (on_session_setup_failed), (on_session_reset_complete), (on_session_reset_failed), (on_session_authenticated), (on_session_authentication_failed), (on_session_authorized), (on_session_authorization_failed), (on_session_accredited), (on_session_accreditation_failed), (on_session_started), (on_session_exited), (on_session_died), (main): Split up the Verification step in the GdmSession interface into component parts: setup, authenticate, authorize, accredit. svn path=/trunk/; revision=5496
* Make SessionRelay and SessionDirect (was Session) implement a commonWilliam Jon McCann2007-10-301-0/+105
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-10-29 William Jon McCann <mccann@jhu.edu> * daemon/Makefile.am: * daemon/gdm-factory-slave.c: (on_session_info), (on_session_problem), (on_session_info_query), (on_session_secret_info_query), (on_session_opened), (on_session_user_verified), (on_session_user_verification_error), (on_session_session_started), (create_product_display), (on_session_relay_disconnected), (on_session_relay_connected), (on_greeter_begin_verification), (on_greeter_begin_verification_for_user), (on_greeter_answer), (on_greeter_session_selected), (on_greeter_language_selected), (on_greeter_user_selected), (on_greeter_cancel), (gdm_factory_slave_start), (gdm_factory_slave_stop): * daemon/gdm-product-slave.c: (setup_server), (add_user_authorization), (setup_session), (on_session_user_verified), (on_relay_start_session), (on_relay_begin_verification), (on_relay_begin_verification_for_user), (on_relay_answer), (reset_session), (on_relay_open), (create_new_session), (on_relay_cancelled), (connect_to_session_relay), (gdm_product_slave_stop): * daemon/gdm-session-direct.c: (on_user_verification_error), (on_session_started), (on_session_startup_error), (on_session_exited), (gdm_session_direct_handle_verified), (gdm_session_direct_handle_verification_failed), (gdm_session_direct_handle_username_changed), (gdm_session_direct_handle_info_query), (gdm_session_direct_handle_secret_info_query), (gdm_session_direct_handle_info), (gdm_session_direct_handle_problem), (gdm_session_direct_handle_session_started), (gdm_session_direct_handle_startup_failed), (gdm_session_direct_handle_session_exited), (gdm_session_direct_handle_session_died), (handle_connection), (gdm_session_direct_init), (worker_exited), (worker_died), (gdm_session_direct_open), (send_begin_verification), (send_begin_verification_for_user), (gdm_session_direct_begin_verification), (gdm_session_direct_begin_verification_for_user), (is_prog_in_path), (get_session_command_for_file), (get_session_command), (open_ck_session), (setup_session_environment), (gdm_session_direct_start_session), (gdm_session_direct_close), (gdm_session_direct_answer_query), (gdm_session_direct_cancel), (gdm_session_direct_get_username), (gdm_session_direct_select_session), (gdm_session_direct_select_language), (gdm_session_direct_select_user), (_gdm_session_direct_set_display_name), (_gdm_session_direct_set_display_hostname), (_gdm_session_direct_set_display_device), (_gdm_session_direct_set_user_x11_authority_file), (_gdm_session_direct_set_display_is_local), (gdm_session_direct_set_property), (gdm_session_direct_get_property), (gdm_session_direct_dispose), (gdm_session_direct_finalize), (gdm_session_iface_init), (gdm_session_direct_class_init), (gdm_session_direct_new): * daemon/gdm-session-direct.h: * daemon/gdm-session-private.h: * daemon/gdm-session-relay.c: (gdm_session_relay_open), (gdm_session_relay_close), (gdm_session_relay_begin_verification), (gdm_session_relay_begin_verification_for_user), (gdm_session_relay_answer_query), (gdm_session_relay_select_session), (gdm_session_relay_select_language), (gdm_session_relay_select_user), (gdm_session_relay_cancel), (gdm_session_relay_start_session), (handle_info_query), (handle_secret_info_query), (handle_info), (handle_problem), (handle_user_verified), (handle_user_verification_error), (handle_session_started), (handle_session_stopped), (handle_opened), (handle_reset), (do_introspect), (handle_connection), (gdm_session_iface_init), (gdm_session_relay_class_init): * daemon/gdm-session-relay.h: * daemon/gdm-session.c: (gdm_session_get_type), (gdm_session_open), (gdm_session_close), (gdm_session_begin_verification), (gdm_session_begin_verification_for_user), (gdm_session_answer_query), (gdm_session_select_session), (gdm_session_select_language), (gdm_session_select_user), (gdm_session_cancel), (gdm_session_start_session), (gdm_session_class_init), (_gdm_session_user_verified), (_gdm_session_user_verification_error), (_gdm_session_info_query), (_gdm_session_secret_info_query), (_gdm_session_info), (_gdm_session_problem), (_gdm_session_session_started), (_gdm_session_session_startup_error), (_gdm_session_session_exited), (_gdm_session_session_died), (_gdm_session_opened), (_gdm_session_closed), (_gdm_session_selected_user_changed): * daemon/gdm-session.h: * daemon/gdm-simple-slave.c: (on_session_started), (on_session_exited), (on_session_died), (on_session_user_verified), (on_session_user_verification_error), (on_session_info), (on_session_problem), (on_session_info_query), (on_session_secret_info_query), (on_session_opened), (on_session_selected_user_changed), (create_new_session), (on_greeter_begin_verification), (on_greeter_begin_verification_for_user), (on_greeter_answer), (on_greeter_session_selected), (on_greeter_language_selected), (on_greeter_cancel), (on_greeter_connected), (gdm_simple_slave_stop), (gdm_simple_slave_init): * daemon/test-session.c: (on_open), (on_session_started), (on_session_exited), (on_session_died), (on_user_verified), (on_user_verification_error), (on_info_query), (on_info), (on_problem), (on_secret_info_query), (import_environment), (main): Make SessionRelay and SessionDirect (was Session) implement a common interface GdmSession. Push some code that lived in the simple and product slaves into the SessionDirect class. Using an interface has a few advantages besides ensuring consistency: makes it easier to do some abstraction in the slave classes, makes it possible to more easily implement other non-pam backends. Add a stub for a selected-user-changed signal from the session interface. This will be used to update the user selection in the greeter when the user is set from the backend. svn path=/trunk/; revision=5452
* Rename GdmSession to GdmSessionDirect in preparation for adding aWilliam Jon McCann2007-10-291-127/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-10-29 William Jon McCann <mccann@jhu.edu> * daemon/Makefile.am: * daemon/gdm-product-slave.c: (on_session_opened), (on_session_started), (on_session_exited), (on_session_died), (slave_open_ck_session), (setup_session_environment), (setup_session), (on_session_user_verified), (on_session_user_verification_error), (on_session_info), (on_session_problem), (on_session_info_query), (on_session_secret_info_query), (on_relay_begin_verification), (on_relay_begin_verification_for_user), (on_relay_answer), (reset_session), (on_relay_open), (create_new_session), (on_relay_cancelled), (gdm_product_slave_stop): * daemon/gdm-session-direct.c: (gdm_session_direct_error_quark), (send_dbus_string_signal), (gdm_session_direct_user_verification_error_handler), (gdm_session_direct_started_handler), (gdm_session_direct_startup_error_handler), (gdm_session_direct_exited_handler), (gdm_session_direct_class_install_signals), (gdm_session_direct_finalize), (gdm_session_direct_class_init), (gdm_session_direct_handle_verified), (gdm_session_direct_handle_verification_failed), (gdm_session_direct_handle_username_changed), (cancel_pending_query), (answer_pending_query), (set_pending_query), (gdm_session_direct_handle_info_query), (gdm_session_direct_handle_secret_info_query), (gdm_session_direct_handle_info), (gdm_session_direct_handle_problem), (gdm_session_direct_handle_session_started), (gdm_session_direct_handle_startup_failed), (gdm_session_direct_handle_session_exited), (gdm_session_direct_handle_session_died), (session_worker_message), (handle_connection), (setup_server), (gdm_session_direct_init), (gdm_session_direct_new), (worker_stopped), (worker_started), (worker_exited), (worker_died), (start_worker), (gdm_session_direct_open), (send_begin_verification), (send_begin_verification_for_user), (gdm_session_direct_begin_verification), (send_environment_variable), (send_environment), (gdm_session_direct_start_program), (gdm_session_direct_close), (gdm_session_direct_is_running), (gdm_session_direct_set_environment_variable), (gdm_session_direct_answer_query), (gdm_session_direct_get_username): * daemon/gdm-session-direct.h: * daemon/gdm-session-relay.h: * daemon/gdm-session.c: * daemon/gdm-session.h: * daemon/gdm-simple-slave.c: (on_session_started), (on_session_exited), (on_session_died), (add_user_authorization), (slave_open_ck_session), (setup_session_environment), (on_session_user_verified), (on_session_user_verification_error), (on_session_info), (on_session_problem), (on_session_info_query), (on_session_secret_info_query), (on_session_opened), (create_new_session), (on_greeter_begin_verification), (on_greeter_begin_verification_for_user), (on_greeter_answer), (on_greeter_cancel), (on_greeter_connected), (gdm_simple_slave_stop): * daemon/gdm-slave.c: * daemon/test-session.c: (on_open), (on_session_started), (on_session_exited), (on_session_died), (on_user_verified), (on_user_verification_error), (on_info_query), (on_info), (on_problem), (on_secret_info_query), (import_environment), (main): Rename GdmSession to GdmSessionDirect in preparation for adding a GdmSession interface. Naming is hard. svn path=/trunk/; revision=5451
* Also pass x11-display when opening the session. Patch from Brian CameronWilliam Jon McCann2007-10-111-0/+1
| | | | | | | | | | | | | | | | | | | | | | | 2007-10-11 William Jon McCann <mccann@jhu.edu> * common/gdm-marshal.list: * daemon/gdm-product-slave.c: (reset_session), (on_relay_open): * daemon/gdm-session-worker.c: (gdm_session_worker_initialize_pam), (gdm_session_worker_verify_user), (gdm_session_worker_open), (open_idle), (queue_open), (on_begin_verification), (on_begin_verification_for_user), (gdm_session_worker_constructor): * daemon/gdm-session.c: (gdm_session_write_record), (do_introspect), (gdm_session_open), (send_begin_verification), (send_begin_verification_for_user): * daemon/gdm-session.h: * daemon/gdm-simple-slave.c: (on_greeter_cancel), (on_greeter_connected): * daemon/test-session.c: (main): Also pass x11-display when opening the session. Patch from Brian Cameron <brian.cameron@sun.com> svn path=/branches/mccann-gobject/; revision=5358
* reviewed by: <delete if not using a buddy>William Jon McCann2007-10-041-2/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | 2007-10-04 William Jon McCann <mccann@jhu.edu> reviewed by: <delete if not using a buddy> * AUTHORS: Add myself. * AUTHORS.pre-3.0: * ChangeLog.pre-3.0: * HACKING.pre-3.0: * MAINTAINERS.pre-3.0: * NEWS.pre-3.0: * README.pre-3.0: * TODO.pre-3.0: Remove obsolete files. * daemon/gdm-session.c: * daemon/gdm-session.h: * daemon/gdm-xdmcp-display-factory.h: Update copyright notices. svn path=/branches/mccann-gobject/; revision=5343
* Mass change tabs to spaces. Tabs suck.William Jon McCann2007-08-281-47/+47
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-08-28 William Jon McCann <mccann@jhu.edu> * common/gdm-address.c: * common/gdm-address.h: * common/gdm-common.c: * common/gdm-common.h: * common/gdm-log.c: * common/gdm-log.h: * common/gdm-md5.c: * common/gdm-md5.h: * common/gdm-settings-backend.c: * common/gdm-settings-backend.h: * common/gdm-settings-client.c: * common/gdm-settings-client.h: * common/gdm-settings-desktop-backend.c: * common/gdm-settings-desktop-backend.h: * common/gdm-settings-direct.c: * common/gdm-settings-direct.h: * common/gdm-settings-keys.h: * common/gdm-settings-utils.c: * common/gdm-settings-utils.h: * common/gdm-settings.c: * common/gdm-settings.h: * common/gdm-signal-handler.c: * common/gdm-signal-handler.h: * common/ve-signal.c: * common/ve-signal.h: * daemon/auth.c: * daemon/choose.c: * daemon/choose.h: * daemon/factory-slave-main.c: * daemon/filecheck.c: * daemon/gdm-display-factory.c: * daemon/gdm-display-factory.h: * daemon/gdm-display-store.c: * daemon/gdm-display-store.h: * daemon/gdm-display.c: * daemon/gdm-display.h: * daemon/gdm-factory-slave.c: * daemon/gdm-factory-slave.h: * daemon/gdm-greeter-proxy.c: * daemon/gdm-greeter-proxy.h: * daemon/gdm-greeter-server.c: * daemon/gdm-greeter-server.h: * daemon/gdm-local-display-factory.c: * daemon/gdm-local-display-factory.h: * daemon/gdm-manager.c: * daemon/gdm-manager.h: * daemon/gdm-product-display.c: * daemon/gdm-product-display.h: * daemon/gdm-product-slave.c: * daemon/gdm-product-slave.h: * daemon/gdm-server.c: * daemon/gdm-server.h: * daemon/gdm-session-relay.c: * daemon/gdm-session-relay.h: * daemon/gdm-session-worker-job.c: * daemon/gdm-session-worker-job.h: * daemon/gdm-session-worker.c: * daemon/gdm-session-worker.h: * daemon/gdm-session.c: * daemon/gdm-session.h: * daemon/gdm-simple-slave.c: * daemon/gdm-simple-slave.h: * daemon/gdm-slave-proxy.c: * daemon/gdm-slave-proxy.h: * daemon/gdm-slave.c: * daemon/gdm-slave.h: * daemon/gdm-static-display.c: * daemon/gdm-static-display.h: * daemon/gdm-static-factory-display.c: * daemon/gdm-static-factory-display.h: * daemon/gdm-xdmcp-display-factory.c: * daemon/gdm-xdmcp-display-factory.h: * daemon/gdm-xdmcp-display.c: * daemon/gdm-xdmcp-display.h: * daemon/main.c: * daemon/product-slave-main.c: * daemon/session-worker-main.c: * daemon/simple-slave-main.c: * daemon/test-hal-seats.c: * daemon/test-session.c: * gui/simple-greeter/gdm-simple-greeter.c: * gui/simple-greeter/gdm-simple-greeter.h: * gui/simple-greeter/greeter-main.c: * libgreeter/gdm-greeter.c: * libgreeter/gdm-greeter.h: * libgreeter/gdmlanguages.c: * libgreeter/gdmsession.c: Mass change tabs to spaces. Tabs suck. svn path=/branches/mccann-gobject/; revision=5196
* Split the session code up into two parts that talk dbusWilliam Jon McCann2007-06-201-14/+6
| | | | svn path=/branches/mccann-gobject/; revision=5009
* Fix session selection. Search path for session binary. Bump glib ↵William Jon McCann2007-06-111-30/+31
| | | | | | requirement to 2.13 for new key file API. Set more session environment variables. Login now mostly works. svn path=/branches/mccann-gobject/; revision=4980
* Make the session object talk to the greeter!William Jon McCann2007-06-081-18/+16
| | | | svn path=/branches/mccann-gobject/; revision=4973
* Add test for session codeWilliam Jon McCann2007-06-051-3/+2
| | | | svn path=/branches/mccann-gobject/; revision=4969