summaryrefslogtreecommitdiff
path: root/daemon/gdm-display-store.c
Commit message (Collapse)AuthorAgeFilesLines
* gdm-display-store: Add missing guards in public functionsAlessandro Bono2022-10-291-8/+8
|
* gdm-display-store: Use G_DECLARE_FINAL_TYPEAlessandro Bono2022-09-271-21/+17
|
* gdm-display-store: Replace deprecated g_type_class_add_private()Robert Mader2019-08-131-6/+2
|
* display-store: make foreach ignore callback return valuexiaoguang wang2019-02-211-3/+13
| | | | | | | | | | | | | gdm_display_store_foreach is designed to iterate through all displays in the display store. Under the hood, it currently uses gdm_display_store_find, though, so will prematurely stop it's loop if a callback returns TRUE. Callers are getting this wrong. Some return TRUE with the expectation it goes on, and some fail to return a value at all. This commit changes gdm_display_store_foreach to use g_hash_table_foreach instead, so the callback return values no longer matter.
* display-store: Pass the display object rather than the id in the removed signalChris Coulson2018-08-131-8/+3
| | | | | | | | | | | | | By the time GdmDisplayStore emits the "display-removed" signal, the display is no longer in the store and gdm_display_store_lookup will not work in signal handlers. Change the "display-removed" parameter from the display id to the GdmDisplay object, so that signal handers can perform any cleanup they need to do CVE-2018-14424 Closes: https://gitlab.gnome.org/GNOME/gdm/issues/401
* Trivial: Update FSF Address.Dominique Leuenberger2012-09-061-1/+1
| | | | Fix bug 683383.
* daemon: Fix added/remove signal emission in display codeRay Strode2012-07-171-21/+112
| | | | | | | | | | | | | | | | | | The display store is a small container object meant to track currently known about displays. It has two signals, "display-added" and "display-removed" that are supposed to get emitted any time a display gets added or removed from the store. Likewise, the GdmManager object has two similar signals that are supposed to be emitted under similar circumstances. These signals in GdmDisplayStore and GdmManager were never actually hooked up to fire at the appropriate times. This commit changes GdmDisplayStore and GdmManager to properly fire these signals.
* Add quick death and looping detection for displays.William Jon McCann2008-02-211-1/+14
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-02-21 William Jon McCann <jmccann@redhat.com> * daemon/gdm-display-store.c: (remove_display), (gdm_display_store_remove): * daemon/gdm-display.c: (gdm_display_add_user_authorization), (gdm_display_set_slave_bus_name), (gdm_display_remove_user_authorization), (finish_idle), (slave_exited), (slave_died), (_gdm_display_set_status), (gdm_display_real_manage), (gdm_display_manage), (gdm_display_real_finish), (gdm_display_finish), (gdm_display_real_unmanage), (gdm_display_set_property), (gdm_display_get_property), (gdm_display_dispose), (gdm_display_class_init), (gdm_display_init), (gdm_display_finalize): * daemon/gdm-display.h: * daemon/gdm-local-display-factory.c: (take_next_display_number), (on_display_disposed), (on_static_display_status_changed), (create_display): * daemon/gdm-manager.c: (remove_display_for_connection): * daemon/gdm-static-display.c: (gdm_static_display_finish): Add quick death and looping detection for displays. svn path=/trunk/; revision=5838
* Use the LocalDisplayFactory to assign X11 Display numbers to all localWilliam Jon McCann2008-01-251-4/+9
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-24 William Jon McCann <mccann@jhu.edu> * daemon/Makefile.am: * daemon/gdm-display-store.c: (gdm_display_store_clear), (gdm_display_store_remove), (gdm_display_store_finalize): * daemon/gdm-factory-slave.c: (create_product_display), (gdm_factory_slave_stop): * daemon/gdm-local-display-factory.c: (listify_hash), (sort_nums), (take_next_display_number), (on_display_disposed), (store_display), (gdm_local_display_factory_create_transient_display), (gdm_local_display_factory_create_product_display), (create_display_for_device), (register_factory), (connect_to_hal), (gdm_local_display_factory_constructor), (gdm_local_display_factory_class_init), (gdm_local_display_factory_init), (gdm_local_display_factory_finalize): * daemon/gdm-local-display-factory.h: * daemon/gdm-local-display-factory.xml: * daemon/gdm-static-factory-display.c: (gdm_static_factory_display_set_property), (gdm_static_factory_display_get_property), (gdm_static_factory_display_class_init), (gdm_static_factory_display_new): * daemon/gdm-static-factory-display.h: * daemon/gdm-static-factory-display.xml: * daemon/gdm-transient-display.c: (gdm_transient_display_create_authority), (gdm_transient_display_add_user_authorization), (gdm_transient_display_remove_user_authorization), (gdm_transient_display_manage), (gdm_transient_display_finish), (gdm_transient_display_unmanage), (gdm_transient_display_set_property), (gdm_transient_display_get_property), (gdm_transient_display_class_init), (gdm_transient_display_init), (gdm_transient_display_finalize), (gdm_transient_display_new): * daemon/gdm-transient-display.h: * daemon/gdm-transient-display.xml: Use the LocalDisplayFactory to assign X11 Display numbers to all local displays. Try to assign the lowest available. Add a stub for a TransientDisplay that can be used to do FUS logins. svn path=/trunk/; revision=5632
* Prefix debug messages with class name to make output easier to read.William Jon McCann2007-10-301-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-10-30 William Jon McCann <mccann@jhu.edu> * common/gdm-signal-handler.c: (signal_io_watch), (catch_signal), (uncatch_signal), (gdm_signal_handler_add), (gdm_signal_handler_remove_and_free_data), (gdm_signal_handler_finalize): * daemon/gdm-display-store.c: (gdm_display_store_clear), (gdm_display_store_remove), (gdm_display_store_add), (display_unref): * daemon/gdm-factory-slave.c: (on_greeter_start), (on_greeter_stop), (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_connected), (run_greeter), (idle_connect_to_display), (server_ready_cb), (gdm_factory_slave_run), (gdm_factory_slave_start), (gdm_factory_slave_stop), (gdm_factory_slave_finalize): * daemon/gdm-greeter-server.c: (send_dbus_message), (send_dbus_string_signal), (send_dbus_void_signal), (handle_begin_verification), (handle_begin_verification_for_user), (handle_answer_query), (handle_select_session), (handle_select_hostname), (handle_select_language), (handle_select_user), (do_introspect), (connection_filter_function), (handle_connection), (gdm_greeter_server_start), (gdm_greeter_server_stop): * daemon/gdm-greeter-session.c: (listify_hash), (open_greeter_session), (greeter_session_child_watch), (spawn_child_setup), (start_dbus_daemon), (gdm_greeter_session_spawn), (gdm_greeter_session_start), (wait_on_child), (greeter_session_died), (gdm_greeter_session_stop): * daemon/gdm-local-display-factory.c: (create_display_for_device), (create_displays_for_pci_devices): * daemon/gdm-manager.c: (gdm_manager_start), (gdm_manager_set_wait_for_go), (remove_displays_for_connection), (bus_name_owner_changed): * daemon/gdm-product-display.c: (gdm_product_display_get_relay_address): * daemon/gdm-product-slave.c: (on_session_opened), (on_session_started), (on_session_exited), (on_session_died), (gdm_product_slave_create_server), (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), (on_relay_session_selected), (on_relay_language_selected), (on_relay_user_selected), (create_new_session), (on_relay_cancelled), (session_relay_proxy_destroyed), (get_relay_address), (connect_to_session_relay), (gdm_product_slave_stop): * daemon/gdm-server.c: (_gdm_server_query_ck_for_display_device), (emit_ready_idle), (connect_to_parent), (change_user), (server_child_setup), (server_child_watch), (gdm_server_spawn), (wait_on_child), (server_died), (gdm_server_stop): * daemon/gdm-session-direct.c: (send_dbus_string_signal), (gdm_session_direct_handle_verified), (gdm_session_direct_handle_verification_failed), (gdm_session_direct_handle_username_changed), (cancel_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), (do_introspect), (session_message_handler), (allow_user_function), (handle_connection), (setup_server), (worker_stopped), (worker_started), (worker_exited), (worker_died), (gdm_session_direct_open), (send_begin_verification), (send_begin_verification_for_user), (send_environment_variable), (get_session_command_for_file), (gdm_session_direct_close), (_gdm_session_direct_set_display_device), (gdm_session_direct_dispose): * daemon/gdm-session-relay.c: (send_dbus_message), (send_dbus_string_signal), (send_dbus_void_signal), (gdm_session_relay_begin_verification), (gdm_session_relay_begin_verification_for_user), (gdm_session_relay_answer_query), (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), (session_relay_message_handler), (connection_filter_function), (handle_connection), (gdm_session_relay_start), (gdm_session_relay_stop): * daemon/gdm-session-worker-job.c: (session_worker_job_child_watch), (gdm_session_worker_job_spawn), (gdm_session_worker_job_start), (wait_on_child), (session_worker_job_died), (gdm_session_worker_job_stop): * daemon/gdm-session-worker.c: (send_dbus_string_method), (send_dbus_int_method), (send_user_verified), (gdm_session_worker_get_username), (gdm_session_worker_update_username), (send_question_method), (gdm_session_worker_process_pam_message), (gdm_session_worker_pam_new_messages_handler), (gdm_session_worker_uninitialize_pam), (gdm_session_worker_initialize_pam), (gdm_session_worker_authenticate_user), (gdm_session_worker_authorize_user), (gdm_session_worker_verify_user), (session_worker_child_watch), (gdm_session_worker_open_user_session), (gdm_session_worker_open), (on_set_environment_variable), (on_start_program), (open_idle), (on_begin_verification), (on_begin_verification_for_user), (worker_dbus_filter_function), (gdm_session_worker_constructor): * daemon/gdm-simple-slave.c: (on_session_started), (on_session_exited), (on_session_died), (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_start), (on_greeter_stop), (on_greeter_begin_verification), (on_greeter_begin_verification_for_user), (on_greeter_user_selected), (on_greeter_cancel), (on_greeter_connected), (run_greeter), (gdm_simple_slave_run), (gdm_simple_slave_stop): * daemon/gdm-slave-proxy.c: (child_watch), (spawn_slave), (gdm_slave_proxy_stop), (gdm_slave_proxy_dispose): * daemon/gdm-slave.c: (listify_hash), (gdm_slave_run_script), (set_local_auth), (gdm_slave_connect_to_x11_display), (display_proxy_destroyed_cb), (gdm_slave_real_start), (gdm_slave_real_stop), (gdm_slave_start), (gdm_slave_stop), (gdm_slave_constructor): * daemon/gdm-static-factory-display.c: (gdm_static_factory_display_create_product_display): * daemon/gdm-xdmcp-display-factory.c: (debug_addrinfo), (do_bind), (setup_multicast), (open_port), (gdm_xdmcp_send_willing), (gdm_xdmcp_send_unwilling), (gdm_xdmcp_send_forward_query), (gdm_forward_query_dispose), (gdm_forward_query_lookup), (gdm_xdmcp_handle_forward_query), (gdm_xdmcp_really_send_managed_forward), (gdm_xdmcp_send_got_managed_forward), (display_dispose_check), (gdm_xdmcp_send_decline), (gdm_xdmcp_display_alloc), (gdm_xdmcp_send_accept), (gdm_xdmcp_handle_request), (gdm_xdmcp_send_failed), (gdm_xdmcp_send_refuse), (gdm_xdmcp_handle_manage), (gdm_xdmcp_handle_managed_forward), (gdm_xdmcp_handle_got_managed_forward), (gdm_xdmcp_send_alive), (gdm_xdmcp_handle_keepalive), (decode_packet), (gdm_xdmcp_display_factory_start): * daemon/gdm-xdmcp-display.c: (gdm_xdmcp_display_create_authority), (gdm_xdmcp_display_add_user_authorization): Prefix debug messages with class name to make output easier to read. svn path=/trunk/; revision=5456
* 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
* Fix signal handling and refcounting so all slaves and servers exit on signal.:wqWilliam Jon McCann2007-07-111-1/+1
| | | | svn path=/branches/mccann-gobject/; revision=5054
* Add some basic signal handling. Make sure we clean up child processes.William Jon McCann2007-05-141-1/+3
| | | | svn path=/branches/mccann-gobject/; revision=4931
* Add skeleton for gobject redesign. Doesn't really work but should compile.William Jon McCann2007-05-101-0/+219
svn path=/branches/mccann-gobject/; revision=4911