summaryrefslogtreecommitdiff
path: root/daemon/session-worker-main.c
Commit message (Collapse)AuthorAgeFilesLines
* added sighup handler for session-worker-maingangmo seong2023-03-031-0/+8
|
* session-worker: kill user sessions when stopping gdm serviceXiaoguang Wang2019-06-271-0/+33
| | | | | | | | | | | | | | | | | At the moment the session worker exits as soon as it gets SIGTERM. That means it may fail to stop the user session (which only happens in the orderly shutdown path). This commit sets up a SIGTERM handler that integrates with and quits the main loop after the session is started. It still retains the _exit-on-SIGTERM behavior before the session is started, to ensure a stuck pam module doesn't prevent the process from dying. Some small changes to commit by Ray Strode. Closes #400
* Use standard exit codes.Robert Ancell2017-10-031-4/+4
| | | | | | | | | Use EXIT_ defines for readibility. There were some exit codes > 1, but they don't seem to be checked by any of the parent process code. This does mean that the logs might have changed, but modern logging techniques have probably made this obsolete. https://bugzilla.gnome.org/show_bug.cgi?id=788307
* session-worker: drop SIGINT and rework SIGTERM handlerVasily Khoruzhick2016-01-211-12/+9
| | | | | | | | | | | | | | | | The gdm session worker sets up main loop dispatched signal handlers for SIGINT and SIGTERM. These handlers won't run if the pam module is blocking, since the main loop isn't iterating. This commit drops the SIGINT handler, and changes the SIGTERM handler to exit with a successful exit code, which gives us the same effective behavior as before but will work even if the pam module is blocked. Small changes by Ray Strode https://bugzilla.gnome.org/show_bug.cgi?id=755291
* Don't enable debugging by default if the version is "unstable"Colin Walters2013-11-221-7/+1
| | | | | | | | | | | | | | | | | I'm open to negotiation for this, but basically...gdm is at present second only to the kernel in the sheer amount of spew it emits - when the version is "unstable". But it always will be for Continuous. Nowadays of course, I think Continuous helps act as a testing system for GDM that obviates a lot of the need for lots of debugging info for gdm during "unstable" cycles. I suspect that we will over time add other informational messages at strategic points by default; this patch is not the end of the story. It's a new beginning. https://bugzilla.gnome.org/show_bug.cgi?id=715037
* Port to g_unix_signal_add(), drop GdmSignalHandlerColin Walters2013-01-221-53/+14
| | | | | | | | | | | The level of copy/paste going on here before is rather astonishing. For example, in some cases, I dropped spurious handling of SIGHUP, when the code didn't have any settings to reread. Anyways, the code is now clearer, and we get to drop all the bits of gdm-signal-handler.[ch] for the integrated GLib handling. https://bugzilla.gnome.org/show_bug.cgi?id=676181
* Remove handling of SIGSEGV/SIGFPE/SIGILL etc.Colin Walters2013-01-221-22/+0
| | | | | | | | | | | | | | | | Modern operating systems have "crash catching" functionality; for example, systemd comes with "systemd-coredump" which collects cores automatically. Attempting to handle these kinds of fatal signals internally is now much worse, because the original source of the problem will be masked. systemd won't collect a core file that would include a backtrace, for example. Also, with these removed, we can move forward porting to g_unix_signal_add(). https://bugzilla.gnome.org/show_bug.cgi?id=676181
* Drop calls to g_type_init()/g_thread_init()Colin Walters2012-12-031-2/+0
| | | | | | Both are deprecated and no longer necessary. https://bugzilla.gnome.org/show_bug.cgi?id=689569
* Trivial: Update FSF Address.Dominique Leuenberger2012-09-061-1/+1
| | | | Fix bug 683383.
* daemon: Replace old method/signal-based API with async method callsJasper St. Pierre2012-08-011-3/+0
| | | | | | | | | | | | | 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. https://bugzilla.gnome.org/show_bug.cgi?id=678057
* worker: add reauthentication supportRay Strode2012-07-171-1/+4
| | | | | | | | | | | | | 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).
* worker: Port to GDBusGiovanni Campagna2012-07-171-4/+0
| | | | | | | | | | | | 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. https://bugzilla.gnome.org/show_bug.cgi?id=622888
* worker: don't block SIGTERMRay Strode2011-10-241-1/+0
| | | | | | If the slave tells us to go away, we should go away, not wait a PAM module decides to let us get back to the main loop.
* common: don't tank on criticalsRay Strode2011-06-281-2/+0
| | | | | | | | | | | | | | Tiny (or not so tiny) bugs in components below GDM in the stack can lead to critical warnings. In development releases, GDM by default will crash when encountering a critical warning. Losing the login screen is a big deal. We shouldn't automatically subject our users to "can't log in" in order to highlight bugs in development releases. This commit removes fatal criticals by default.
* Put the schemas in /usrJosselin Mouette2010-09-151-1/+1
| | | | The gdm.schemas file is not configurable. It has nothing to do in /etc.
* Add translator comment for WorkerWilliam Jon McCann2010-06-191-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=515855
* Fix GDM debugging so that it works. Now debugging is enabled via theBrian Cameron2009-11-091-5/+24
| | | | debug/Enable key in the custom.conf file. See bug #596831.
* Use a callback for the fatal handler instead of supplying the main_loop.William Jon McCann2008-08-151-1/+3
| | | | | | | | | | | | | | | | | | | | | 2008-08-15 William Jon McCann <jmccann@redhat.com> * common/gdm-signal-handler.c (signal_io_watch), (gdm_signal_handler_set_fatal_func): * common/gdm-signal-handler.h: * daemon/factory-slave-main.c (main): * daemon/gdm-session-direct.c (stop_worker): * daemon/gdm-session-worker-job.c (session_worker_job_child_watch): * daemon/main.c (main): * daemon/product-slave-main.c (main): * daemon/session-worker-main.c (main): * daemon/simple-slave-main.c (main): * daemon/xdmcp-chooser-slave-main.c (main): Use a callback for the fatal handler instead of supplying the main_loop. svn path=/trunk/; revision=6382
* Don't unconditionally enable debugging.William Jon McCann2008-05-061-1/+16
| | | | | | | | | | | | | | | | | 2008-05-06 William Jon McCann <jmccann@redhat.com> * common/gdm-log.c (log_level_to_priority_and_prefix), (gdm_log_set_debug): * daemon/factory-slave-main.c (signal_cb), (is_debug_set), (main): * daemon/product-slave-main.c (signal_cb), (is_debug_set), (main): * daemon/session-worker-main.c (signal_cb), (is_debug_set), (main): * daemon/simple-slave-main.c (signal_cb), (is_debug_set), (main): * daemon/xdmcp-chooser-slave-main.c (signal_cb), (is_debug_set), (main): Don't unconditionally enable debugging. svn path=/trunk/; revision=6220
* Make a stop_worker function for symmetry.William Jon McCann2007-10-301-0/+3
| | | | | | | | | | | | | | 2007-10-30 William Jon McCann <mccann@jhu.edu> * daemon/gdm-session-direct.c: (stop_worker), (gdm_session_direct_close): Make a stop_worker function for symmetry. * daemon/session-worker-main.c: (main): Add gdm_set_fatal_warnings_if_unstable svn path=/trunk/; revision=5455
* Make the authentication cancellation much more robust. Remove dbus-glibWilliam Jon McCann2007-10-271-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-10-27 William Jon McCann <mccann@jhu.edu> * daemon/gdm-session-worker.c: (send_dbus_string_method), (send_dbus_int_method), (send_user_verified), (send_startup_failed), (send_session_exited), (send_session_died), (send_username_changed), (send_user_verification_error), (send_session_started), (send_question_method), (gdm_session_worker_ask_question), (gdm_session_worker_ask_for_secret), (gdm_session_worker_report_info), (gdm_session_worker_report_problem), (gdm_session_worker_process_pam_message), (gdm_session_worker_pam_new_messages_handler), (on_set_environment_variable), (on_start_program), (on_begin_verification), (on_begin_verification_for_user), (worker_dbus_handle_message), (worker_dbus_filter_function), (gdm_session_worker_constructor): * daemon/gdm-session.c: (cancel_pending_query), (handle_connection), (gdm_session_close): * daemon/session-worker-main.c: (signal_cb): Make the authentication cancellation much more robust. Remove dbus-glib from session-worker. Fix some problems with message handling in the session server. svn path=/trunk/; revision=5430
* Fix a bunch of compiler warnings. Add Werror for now to warning flags.William Jon McCann2007-10-161-1/+0
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-10-15 William Jon McCann <mccann@jhu.edu> * common/gdm-md5.c: (gdm_md5_final): * common/gdm-settings-backend.c: * common/gdm-signal-handler.c: (gdm_signal_handler_init): * common/test-settings-client.c: (test_settings_client): * configure.ac: * daemon/gdm-factory-slave.c: * daemon/gdm-greeter-session.c: (gdm_greeter_session_spawn): * daemon/gdm-local-display-factory.c: * daemon/gdm-manager.c: * daemon/gdm-product-slave.c: * daemon/gdm-session-relay.c: (session_handle_child_message): * daemon/gdm-session.c: (handle_connection): * daemon/gdm-simple-slave.c: * daemon/gdm-xdmcp-display-factory.c: * daemon/main.c: (main): * daemon/session-worker-main.c: (main): * gui/simple-chooser/gdm-host-chooser-dialog.c: (on_response): * gui/simple-chooser/gdm-host-chooser-widget.c: * gui/simple-greeter/gdm-language-chooser-widget.c: (languages_parse_start_tag), (territories_parse_start_tag): * gui/simple-greeter/gdm-simple-greeter.c: * gui/simple-greeter/gdm-user-chooser-widget.c: (gdm_user_chooser_widget_init): * gui/simple-greeter/greeter-main.c: (activate_power_manager): * gui/simple-greeter/test-user-manager.c: (main): Fix a bunch of compiler warnings. Add Werror for now to warning flags. svn path=/trunk/; revision=5371
* Mass change tabs to spaces. Tabs suck.William Jon McCann2007-08-281-91/+91
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Some Solaris build fixes. Patch from Brian Cameron <brian.cameron@sun.com>William Jon McCann2007-08-211-0/+1
| | | | | | | | | | | | | | | | | | | | | | 2007-08-21 William Jon McCann <mccann@jhu.edu> * acconfig.h: * acinclude.m4: * common/gdm-address.c: * configure.ac: * daemon/Makefile.am: * daemon/factory-slave-main.c: * daemon/gdm-server.c: (server_child_setup): * daemon/main.c: (main): * daemon/product-slave-main.c: * daemon/session-worker-main.c: * daemon/simple-slave-main.c: * daemon/test-session.c: (on_secret_info_query): Some Solaris build fixes. Patch from Brian Cameron <brian.cameron@sun.com> svn path=/branches/mccann-gobject/; revision=5174
* Split the session code up into two parts that talk dbusWilliam Jon McCann2007-06-201-0/+179
svn path=/branches/mccann-gobject/; revision=5009