summaryrefslogtreecommitdiff
path: root/daemon/gdm-xdmcp-display-factory.c
Commit message (Collapse)AuthorAgeFilesLines
* gdm-xdmcp-display-factory: Use g_clear_handle_idAlessandro Bono2022-10-271-7/+2
|
* xdmcp-display-factory: Set supported session types for XDMCP displaysfix-xdmcpRay Strode2021-09-291-0/+6
| | | | | | | The lower levels of GDM now expect the session types supported by a display to be specified up front. This commit makes sure XDMCP displays do that.
* xdmcp-display-factory: Clear launch environment when done with itRay Strode2020-11-021-0/+2
| | | | | | | | | | The XDMCP disply factory examines the sessions of its displays' launch environments when the displays change status. Unfortunately it leaks a reference to the launch environment when doing that. This commit fixes the reference leak which leads to an fd leak.
* xdmcp-display-factory: don't return value from foreach funcsRay Strode2019-02-211-6/+2
| | | | | | | | The xdmcp code is returning TRUE from its display store foreach functions, which is useless since commit 47d01abe and wrong before that. This commit makes it return void instead.
* Use G_PARAM_STATIC_STRIGS on propertiesNiels De Graef2019-01-071-10/+10
| | | | This prevents strings from being unnecessarily copied.
* xdmcp-display-factory: use G_DECLARE_FINAL_TYPENiels De Graef2018-12-231-197/+193
|
* display-factory: avoid removing a display from store while iterating itLubomir Rintel2018-07-171-5/+2
|
* xdmcp-display-factory: more signal prototype fixingRay Strode2017-09-211-4/+3
| | | | | | | | | | | | | | | | | | | commit 2a3d5a7c402534c3611956fed930394a51cb00c5 attempted to fix the signal prototype of on_client_disconnected to match the marshalled arguments. Unfortunately, the handler is used for two different signals: 1) when a user chooses "Disconnect" from the chooser menu 2) when a user closes the Xephyr window (or turns off the thin client or whatever) The signals have slightly different prototypes, so commit 2a3d5a7c fixed 2), but broke 1). This commit massages the signal connections and handler signature to work for both cases. https://bugzilla.gnome.org/show_bug.cgi?id=787987
* xdmcp-display-factory: explicitly stop greeter session on disconnectRay Strode2017-03-311-0/+1
| | | | | | If the client disconnects, we should kill off the necessary processes. https://bugzilla.gnome.org/show_bug.cgi?id=780787
* xdmcp-display-factory: fix signal prototypeRay Strode2017-03-311-1/+2
| | | | | | | The callback was getting called with the wrong arguments leading to spew in the logs and necessary code not getting run! https://bugzilla.gnome.org/show_bug.cgi?id=780787
* xdmcp-display-factory: notify remote display when session endedRay Strode2016-12-131-1/+14
| | | | | | | | | | | | gnome-shell and the session dbus daemon don't automatically exit when gnome-session does. They, instead, wait for the display to exit or regenerate. If the display is remote, that won't happen until the keep alive timeout. This commit changes GDM to explicitly notify the remote display when the session is over, so that it can regenerate immediately. https://bugzilla.gnome.org/show_bug.cgi?id=776059
* display: start greeter/chooser session from display objectRay Strode2015-02-181-0/+36
| | | | | | | | | | | 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
* xdmcp-factory: handle display status changes after managerRay Strode2015-02-181-4/+4
| | | | | | | | The factory removes the display from the display store, so it should run last. Furthermore the manager, sets up the greeter session, so it should run first. https://bugzilla.gnome.org/show_bug.cgi?id=744764
* xdmcp-greeter-display: drop classRay Strode2015-02-181-5/+4
| | | | | | | | | | | GdmXdmcpGreeterDisplay doesn't do anything that it's parent class does (except call unmanage from finalize which is strange and probably wrong). This commit drops the file and instead just uses GdmXdmcpDisplay directly, instead. https://bugzilla.gnome.org/show_bug.cgi?id=744764
* Integrate the slaves into the main daemon processJasper St. Pierre2014-03-171-9/+9
| | | | | | | | | | 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
* xdmcp: unbreak build on OpenBSDAntoine Jacoutot2014-03-031-0/+8
| | | | | | | OpenBSD has no support for IPv4 to IPv6 mapping, so make check for the required definitions before using them. https://bugzilla.gnome.org/show_bug.cgi?id=725554
* 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
* Trivial: Update FSF Address.Dominique Leuenberger2012-09-061-1/+1
| | | | Fix bug 683383.
* xdmcp: fix indirect queriesOlivier Fourdan2012-06-251-2/+6
| | | | | | | | | | | | | | | | | | | The XDMCP indirect query is supposed to be forwarded to the remote host by gdm_xdmcp_send_forward_query() from daemon/gdm-xdmcp-display-factory.c However, checking the return value of XdmcpFlush() we can see the call fails with "Invalid Argument". Looking at the gdm debug logs, the address (ic->chosen_address) used there is correct but the port is 0 instead of 177, so the indirect query is never forwarded to the selected host. The address is set in on_hostname_selected() from daemon/gdm-xdmcp-display-factory.c via getaddrinfo() but the service field passed to getaddrinfo() is NULL, while using the actual XDMCP port ("177") fixes the issue and the indirect connection is successful. committe://bugzilla.gnome.org/show_bug.cgi?id=665296
* xdmcp: fix a compile warningRay Strode2011-12-221-2/+2
|
* daemon: correct XDMCP misspellingRay Strode2011-11-031-2/+2
| | | | | | It's spelled XDMCP not XMDCP https://bugzilla.gnome.org/show_bug.cgi?id=663338
* daemon: remove translation markers from xdmcp warningsRay Strode2011-11-031-34/+34
| | | | | | They're warnings the user won't see without snooping. They are hardly intelligible as it is and shouldn't be translated, so they're easy to google.
* daemon: drop some fluff codeRay Strode2011-06-151-20/+24
| | | | | | | 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.
* Don't pass random value to XdmcpFillRay Strode2010-08-271-1/+1
| | | | | | | | | | | | | | | | | | | | commit e533f4b72568cdc3d7f7ec6cec09d9392b11d54c (combined with commit f7a7158efcaa3e113a02dd0f0bfdf22a253928e5 and commit 86ac166294f0fc8f662031167066acf1928cf139) changed the length passed to XdmcpFill to use gdm_sockaddr_len, macro. This macro is being called on an uninitialized structure, so it returns the wrong value. I think commit e533f4b72568cdc3d7f7ec6cec09d9392b11d54c was a bit too liberal in its gdm_sockaddr_len changes. While I can believe some Solaris and FreeBSD networking calls require the exact socket address structure length to be passed in, I doubt the call used by XdmcpFill (recvfrom) is one of them. It would be impossible for recvfrom to work for connection of different address families if that were true. This commit just reverts gdm_sockaddr_len-ification of those the two places where XdmcpFill is called.
* g_array_free doesn't allow NULLsWilliam Jon McCann2010-06-161-0/+2
| | | | https://bugzilla.gnome.org/show_bug.cgi?id=589536
* xdmcp: disable IPV6_V6ONLY for ipv6 listening socketsJulien Cristau2010-06-161-0/+8
| | | | | | | This allows ipv4 connections mapped to ipv6, in case the system default is backwards. https://bugzilla.gnome.org/show_bug.cgi?id=544730
* Call XdmcpFill with properly initialized lengthRay Strode2010-06-161-1/+2
| | | | | | | | | commit e533f4b72568cdc3d7f7ec6cec09d9392b11d54c cleaned up various XDMCP issues, but it unfortunately also created a bug making XDMCP fail a high percentage of the time. XdmcpFill takes an in-out length argument. This argument was getting passed an uninitialized variable.
* Fix XDMCP show it shows the greeter again after logout. Patch by Halton Huo.Brian Cameron2010-04-221-0/+37
| | | | Part of the fix for #606724.
* Fix up XDMCP for SolarisBrian Cameron2010-01-131-5/+10
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | After doing further testing, I notice that XDMCP still does not work on Solaris. This commit fixes: - In gdm-address.c, there was a problem where a failure in gdm_address_get_hostname could cause an infinite loop since it would call gdm_address_debug, which would then call gdm_address_get_hostname again. I fixed this by making gdm_address_debug call a private _gdm_address_debug function and gdm_address_get_hostname calls _gdm_adress_debug rather than gdm_address_debug. - Two calls in gdm-address.c were using "sizeof (struct sockaddr_storage)" and changing this to "(int) gdm_sockaddr_len (address->ss)" works better. This is the same issue as fixed in the previous patch. I just missed these spots before. - In daemon/gdm-xdmcp-display-factory.c in the on_hostname_selected() function it is necessary to set hints.ai_socktype to "SOCK_DGRAM" or else I would get this error: WARNING: Unable get address: service name not available for the specified socket type - In daemon/gdm-xdmcp-display-factory.c in the decode_packet() function and in gui/simple-chooser/gdm-host-chooser-widget.c it is necessary to set ss_len to "gdm_sockaddr_len (&clnt_ss)" instead of "sizeof (clnt_ss)". - In gui/simple-chooser/gdm-host-chooser-widget.c in find_broacast_address it is also necessary to check for "(errno != ENXIO)". See https://bugzilla.gnome.org/show_bug.cgi?id=494817
* Don't try to print NULL valuesBrian Cameron2010-01-131-44/+64
| | | | | | This causes crashes on Solaris. See https://bugzilla.gnome.org/show_bug.cgi?id=494817
* Improve strings for translation. Partially fix bug #582891.Brian Cameron2009-10-301-2/+2
|
* Port fix for bug #494817 to the new GDM rewrite. This fixes the code soBrian Cameron2009-10-281-10/+10
| | | | | | | that the length of the sockaddr is set to the correct length for IPv4 or IPv6. This problem affects Solaris and FreeBSD. Linux only require that the length be greater or equal to the expected length, so you would not see this problem on Linux.
* Fix "Nested extern declaration" warningDaniel Macks2009-07-171-3/+5
| | | | | | | Move an extern declaration out of a function definition to silence gcc warnings. See http://bugzilla.gnome.org/show_bug.cgi?id=568516
* Fix an obvious use-after-free in the XDMCP codeMatthias Clasen2009-04-281-2/+2
| | | | The patch was provided by Michael Young in rhbz#496882.
* Fix the GetX11Cookie dbus method Send the cookie as a byte array insteadRay Strode2009-03-161-7/+7
| | | | | | | | | | | | | | | | | | | | 2009-03-16 Ray Strode <rstrode@redhat.com> Fix the GetX11Cookie dbus method * daemon/gdm-display.xml: Send the cookie as a byte array instead of utf-8 string * daemon/gdm-display.[ch] (gdm_display_get_x11_cookie): pass in a GArray instead of the more natural char array and size pointers to make dbus-glib happy. * daemon/gdm-xdmcp-display-factory.c (gdm_xdmcp_handle_request): Update to use new get_x11_cookie signature. svn path=/trunk/; revision=6781
* Enable XDMCP configuration so it works. Previously only xdmcp/Enable wasBrian Cameron2009-02-171-3/+55
| | | | | | | | | | | | | | | | | 2009-02-17 Brian Cameron <brian.cameron@sun.com> * common/gdm-settings-direct.[ch], common/gdm-settings-keys.h, daemon/gdm-simple-slave.c, daemon/gdm-xdmcp-chooser-slave.c, daemon/gdm-xdmcp-display-factory.c, data/gdm.schemas.in.in, docs/C/gdm.xml: Enable XDMCP configuration so it works. Previously only xdmcp/Enable was being used in the code. Also add support for chooser/Multicast and chooser/MulticastAddr configuration options. Now set the default values of MAX_DISPLAY_PER_HOST to 1 and MAX_WAIT to 30 as specified in the docs. Add a gdm_settings_direct_get_uint function to get unsigned integer configuration values more cleanly without the need to cast. Fixes bug #569876. svn path=/trunk/; revision=6715
* Remove double free. Fixes bug #565018. Patch by William Jan PalenstijnBrian Cameron2009-02-171-1/+0
| | | | | | | | | 2009-02-17 Brian Cameron <brian.cameron@sun.com> * daemon/gdm-xdmcp-display-factory.c: Remove double free. Fixes bug #565018. Patch by William Jan Palenstijn <wjp@usecode.org>. svn path=/trunk/; revision=6714
* Correctly handle changes in the xdmcp enabled property. Add a displayWilliam Jon McCann2008-12-031-1/+8
| | | | | | | | | | | | | | | | | | | | | | | | 2008-12-02 William Jon McCann <jmccann@redhat.com> * daemon/gdm-display.c (gdm_display_real_prepare), (gdm_display_prepare), (gdm_display_real_manage), (gdm_display_class_init): * daemon/gdm-display.h: * daemon/gdm-local-display-factory.c (on_static_display_status_changed): * daemon/gdm-manager.c (gdm_manager_stop), (gdm_manager_start), (gdm_manager_set_xdmcp_enabled): * daemon/gdm-manager.h: * daemon/gdm-xdmcp-display-factory.c (gdm_xdmcp_display_create), (gdm_xdmcp_handle_manage): Correctly handle changes in the xdmcp enabled property. Add a display state called prepared that sets up the display before actually managing (starting) it. This is required for the XDMCP Request phase to work. Fixes #561396 svn path=/trunk/; revision=6610
* don't call create_authority here anymore, since it's handled byRay Strode2008-02-201-6/+0
| | | | | | | | | | | | | 2008-02-20 Ray Strode <rstrode@redhat.com> * daemon/gdm-local-display-factory.c (gdm_local_display_factory_create_transient_display): * daemon/gdm-xdmcp-display-factory.c: (gdm_xdmcp_display_create): don't call create_authority here anymore, since it's handled by gdm_display_manage now. svn path=/trunk/; revision=5822
* Fix a bunch of compiler warnings and remove unused code. Patch from:William Jon McCann2008-02-191-9/+5
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-02-19 William Jon McCann <jmccann@redhat.com> * common/gdm-settings-client.c: (gdm_settings_client_get_locale_string), (gdm_settings_client_init): * common/gdm-settings-desktop-backend.c: (save_settings): * common/gdm-settings-direct.c: (gdm_settings_direct_init): * common/test-log.c: (test_log): * common/test-settings-client.c: (test_settings_client): * daemon/gdm-chooser-server.c: (gdm_chooser_server_constructor): * daemon/gdm-chooser-session.c: (gdm_chooser_session_set_property), (gdm_chooser_session_get_property), (gdm_chooser_session_constructor): * daemon/gdm-display-access-file.c: * daemon/gdm-display.c: (_create_access_file_for_user), (gdm_display_constructor): * daemon/gdm-factory-slave.c: (gdm_factory_slave_start), (gdm_factory_slave_stop), (gdm_factory_slave_set_property), (gdm_factory_slave_get_property), (gdm_factory_slave_constructor): * daemon/gdm-greeter-server.c: (gdm_greeter_server_constructor): * daemon/gdm-greeter-session.c: (gdm_greeter_session_set_property), (gdm_greeter_session_get_property): * daemon/gdm-local-display-factory.c: (gdm_local_display_factory_set_property), (gdm_local_display_factory_get_property), (gdm_local_display_factory_constructor): * daemon/gdm-manager.c: (gdm_manager_constructor): * daemon/gdm-product-display.c: (gdm_product_display_constructor): * daemon/gdm-product-slave.c: (gdm_product_slave_start), (gdm_product_slave_stop), (gdm_product_slave_set_property), (gdm_product_slave_get_property), (gdm_product_slave_constructor): * daemon/gdm-server.c: (gdm_server_constructor): * daemon/gdm-session-auditor.c: * daemon/gdm-session-direct.c: (gdm_session_direct_open): * daemon/gdm-session-linux-auditor.c: * daemon/gdm-session-relay.c: (gdm_session_relay_set_property), (gdm_session_relay_get_property), (gdm_session_relay_constructor): * daemon/gdm-session-settings.c: * daemon/gdm-session-worker-job.c: (gdm_session_worker_job_constructor): * daemon/gdm-session-worker.c: (gdm_session_worker_constructor): * daemon/gdm-simple-slave.c: (gdm_simple_slave_start), (gdm_simple_slave_stop), (gdm_simple_slave_set_property), (gdm_simple_slave_get_property), (gdm_simple_slave_constructor): * daemon/gdm-slave.c: (gdm_slave_run_script), (_get_primary_user_session_id), (gdm_slave_constructor): * daemon/gdm-static-display.c: (gdm_static_display_set_property), (gdm_static_display_get_property): * daemon/gdm-static-factory-display.c: (gdm_static_factory_display_set_property), (gdm_static_factory_display_get_property), (gdm_static_factory_display_constructor): * daemon/gdm-transient-display.c: (gdm_transient_display_set_property), (gdm_transient_display_get_property): * daemon/gdm-welcome-session.c: (parse_dbus_launch_output), (gdm_welcome_session_constructor): * daemon/gdm-xdmcp-chooser-slave.c: (gdm_xdmcp_chooser_slave_start), (gdm_xdmcp_chooser_slave_stop), (gdm_xdmcp_chooser_slave_set_property), (gdm_xdmcp_chooser_slave_get_property), (gdm_xdmcp_chooser_slave_constructor): * daemon/gdm-xdmcp-display-factory.c: (do_bind), (indirect_client_create), (gdm_xdmcp_handle_forward_query): * daemon/test-session.c: (main): * gui/simple-chooser/gdm-chooser-client.c: (gdm_chooser_client_set_property), (gdm_chooser_client_get_property), (gdm_chooser_client_constructor), (gdm_chooser_client_dispose): * gui/simple-chooser/gdm-chooser-session.c: (gdm_chooser_session_set_property), (gdm_chooser_session_get_property), (gdm_chooser_session_constructor), (gdm_chooser_session_dispose): * gui/simple-chooser/gdm-host-chooser-dialog.c: (gdm_host_chooser_dialog_set_property), (gdm_host_chooser_dialog_get_property), (gdm_host_chooser_dialog_constructor), (gdm_host_chooser_dialog_dispose): * gui/simple-chooser/gdm-host-chooser-widget.c: (gdm_host_chooser_widget_set_property), (gdm_host_chooser_widget_get_property), (gdm_host_chooser_widget_constructor): * gui/simple-greeter/gdm-a11y-preferences-dialog.c: (gdm_a11y_preferences_dialog_set_property), (gdm_a11y_preferences_dialog_get_property), (gdm_a11y_preferences_dialog_constructor), (gdm_a11y_preferences_dialog_dispose): * gui/simple-greeter/gdm-chooser-widget.c: (shrink_edge_toward_active_row), (gdm_chooser_widget_constructor): * gui/simple-greeter/gdm-greeter-client.c: (gdm_greeter_client_set_property), (gdm_greeter_client_get_property), (gdm_greeter_client_constructor), (gdm_greeter_client_dispose): * gui/simple-greeter/gdm-greeter-login-window.c: (gdm_greeter_login_window_constructor): * gui/simple-greeter/gdm-greeter-panel.c: (gdm_greeter_panel_set_property), (gdm_greeter_panel_get_property), (gdm_greeter_panel_constructor), (gdm_greeter_panel_dispose): * gui/simple-greeter/gdm-greeter-session.c: (gdm_greeter_session_set_property), (gdm_greeter_session_get_property), (gdm_greeter_session_constructor), (gdm_greeter_session_dispose): * gui/simple-greeter/gdm-language-chooser-widget.c: (gdm_language_chooser_widget_dispose): * gui/simple-greeter/gdm-option-widget.c: (activate_from_item_id), (gdm_option_widget_constructor): * gui/simple-greeter/gdm-recent-option-widget.c: (gdm_recent_option_widget_dispose): * gui/simple-greeter/gdm-remote-login-window.c: (gdm_remote_login_window_set_property), (gdm_remote_login_window_get_property), (gdm_remote_login_window_constructor): * gui/simple-greeter/gdm-session-client.c: (gdm_session_client_constructor), (gdm_session_client_dispose): * gui/simple-greeter/gdm-session-manager.c: (gdm_session_manager_set_property), (gdm_session_manager_get_property), (gdm_session_manager_constructor), (gdm_session_manager_dispose): * gui/simple-greeter/gdm-user-chooser-dialog.c: (gdm_user_chooser_dialog_set_property), (gdm_user_chooser_dialog_get_property), (gdm_user_chooser_dialog_constructor), (gdm_user_chooser_dialog_dispose): * gui/simple-greeter/gdm-user-chooser-widget.c: (gdm_user_chooser_widget_set_property), (gdm_user_chooser_widget_get_property), (gdm_user_chooser_widget_constructor): * gui/simple-greeter/gdm-user-manager.c: (_get_primary_user_session_id), (_get_login_window_session_id): * gui/simple-greeter/gdm-user.c: * gui/simple-greeter/libnotificationarea/na-tray-manager.c: (na_tray_manager_handle_begin_message): * gui/simple-greeter/libnotificationarea/na-tray.c: * gui/user-switch-applet/applet.c: (prefs_cb), (switch_to_user_session), (display_key_changed), (applet_fill_cb): * gui/user-switch-applet/gdm-user-menu-item.c: * tests/s-common-address.c: (START_TEST): * utils/gdmflexiserver.c: (get_login_window_session_id): Fix a bunch of compiler warnings and remove unused code. Patch from: Kjartan Maraas <kmaraas@broadpark.no> svn path=/trunk/; revision=5800
* Initial support for XDMCP IndirectQuery choosers. Also fix brokenWilliam Jon McCann2008-01-311-105/+333
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-30 William Jon McCann <mccann@jhu.edu> * common/gdm-address.c: (add_local_siocgifconf), (add_local_addrinfo), (gdm_address_peek_local_list): * daemon/Makefile.am: * daemon/gdm-chooser-server.c: (generate_address), (handle_select_hostname), (handle_disconnect), (chooser_handle_child_message), (do_introspect), (chooser_server_message_handler), (chooser_server_unregister_handler), (connection_filter_function), (allow_user_function), (handle_connection), (gdm_chooser_server_start), (gdm_chooser_server_stop), (gdm_chooser_server_get_address), (_gdm_chooser_server_set_display_id), (_gdm_chooser_server_set_user_name), (_gdm_chooser_server_set_group_name), (gdm_chooser_server_set_property), (gdm_chooser_server_get_property), (gdm_chooser_server_constructor), (gdm_chooser_server_class_init), (gdm_chooser_server_init), (gdm_chooser_server_finalize), (gdm_chooser_server_new): * daemon/gdm-chooser-server.h: * daemon/gdm-chooser-session.c: (listify_hash), (get_chooser_environment), (chooser_session_child_watch), (spawn_child_setup), (spawn_command_line_sync_as_user), (spawn_command_line_async_as_user), (parse_value_as_integer), (parse_dbus_launch_output), (start_dbus_daemon), (stop_dbus_daemon), (gdm_chooser_session_spawn), (gdm_chooser_session_start), (wait_on_child), (chooser_session_died), (gdm_chooser_session_stop), (gdm_chooser_session_set_server_address), (_gdm_chooser_session_set_x11_display_name), (_gdm_chooser_session_set_x11_display_hostname), (_gdm_chooser_session_set_x11_display_device), (_gdm_chooser_session_set_x11_authority_file), (_gdm_chooser_session_set_user_name), (_gdm_chooser_session_set_group_name), (gdm_chooser_session_set_property), (gdm_chooser_session_get_property), (gdm_chooser_session_constructor), (gdm_chooser_session_class_init), (gdm_chooser_session_init), (gdm_chooser_session_finalize), (gdm_chooser_session_new): * daemon/gdm-chooser-session.h: * daemon/gdm-display.c: (gdm_display_real_set_slave_bus_name), (gdm_display_set_slave_bus_name), (gdm_display_class_init): * daemon/gdm-display.h: * daemon/gdm-display.xml: * daemon/gdm-factory-slave.c: * daemon/gdm-greeter-server.c: * daemon/gdm-greeter-session.c: (gdm_greeter_session_init): * daemon/gdm-product-slave.c: * daemon/gdm-simple-slave.c: * daemon/gdm-slave.c: (gdm_slave_set_slave_bus_name), (gdm_slave_real_start), (register_slave), (gdm_slave_constructor): * daemon/gdm-xdmcp-chooser-display.c: (on_hostname_selected), (gdm_xdmcp_chooser_display_set_slave_bus_name), (gdm_xdmcp_chooser_display_manage), (gdm_xdmcp_chooser_display_class_init), (gdm_xdmcp_chooser_display_init), (gdm_xdmcp_chooser_display_finalize), (gdm_xdmcp_chooser_display_new): * daemon/gdm-xdmcp-chooser-display.h: * daemon/gdm-xdmcp-chooser-display.xml: * daemon/gdm-xdmcp-chooser-slave.c: (on_chooser_session_start), (on_chooser_session_stop), (on_chooser_session_exited), (on_chooser_session_died), (on_chooser_hostname_selected), (on_chooser_disconnected), (on_chooser_connected), (setup_server), (run_chooser), (idle_connect_to_display), (gdm_xdmcp_chooser_slave_run), (gdm_xdmcp_chooser_slave_start), (gdm_xdmcp_chooser_slave_stop), (gdm_xdmcp_chooser_slave_set_property), (gdm_xdmcp_chooser_slave_get_property), (gdm_xdmcp_chooser_slave_constructor), (gdm_xdmcp_chooser_slave_class_init), (gdm_xdmcp_chooser_slave_init), (gdm_xdmcp_chooser_slave_finalize), (gdm_xdmcp_chooser_slave_new): * daemon/gdm-xdmcp-chooser-slave.h: * daemon/gdm-xdmcp-display-factory.c: (set_port_for_request), (gdm_xdmcp_send_forward_query), (indirect_client_create), (indirect_client_destroy), (indirect_client_lookup_by_chosen), (indirect_client_lookup), (gdm_xdmcp_handle_indirect_query), (forward_query_destroy), (remove_oldest_forward), (forward_query_create), (forward_query_lookup), (gdm_xdmcp_handle_forward_query), (gdm_xdmcp_send_decline), (on_hostname_selected), (gdm_xdmcp_display_create), (gdm_xdmcp_handle_request), (gdm_xdmcp_send_refuse), (gdm_xdmcp_handle_manage), (gdm_xdmcp_handle_managed_forward): * daemon/gdm-xdmcp-display.c: (gdm_xdmcp_display_class_init), (gdm_xdmcp_display_finalize): * daemon/gdm-xdmcp-display.h: * daemon/gdm-xdmcp-display.xml: * daemon/gdm-xdmcp-greeter-display.c: (gdm_xdmcp_greeter_display_class_init), (gdm_xdmcp_greeter_display_init), (gdm_xdmcp_greeter_display_finalize), (gdm_xdmcp_greeter_display_new): * daemon/gdm-xdmcp-greeter-display.h: * daemon/xdmcp-chooser-slave-main.c: (get_system_bus), (signal_cb), (on_slave_stopped), (main): * data/gdm.conf: * gui/simple-chooser/Makefile.am: * gui/simple-chooser/chooser-main.c: (assistive_registry_launch), (filter_watch), (filter_timeout), (assistive_registry_start), (at_set_gtk_modules), (load_a11y), (main): * gui/simple-chooser/gdm-chooser-client.c: (gdm_chooser_client_error_quark), (send_dbus_string_method), (send_dbus_void_method), (gdm_chooser_client_call_select_hostname), (gdm_chooser_client_call_disconnect), (client_dbus_handle_message), (client_dbus_filter_function), (gdm_chooser_client_start), (gdm_chooser_client_stop), (gdm_chooser_client_set_property), (gdm_chooser_client_get_property), (gdm_chooser_client_constructor), (gdm_chooser_client_dispose), (gdm_chooser_client_class_init), (gdm_chooser_client_init), (gdm_chooser_client_finalize), (gdm_chooser_client_new): * gui/simple-chooser/gdm-chooser-client.h: * gui/simple-chooser/gdm-chooser-session.c: (launch_compiz), (launch_metacity), (start_window_manager), (start_settings_daemon), (on_dialog_response), (gdm_chooser_session_start), (gdm_chooser_session_stop), (gdm_chooser_session_set_property), (gdm_chooser_session_get_property), (gdm_chooser_session_constructor), (gdm_chooser_session_dispose), (gdm_chooser_session_class_init), (gdm_chooser_session_init), (gdm_chooser_session_finalize), (gdm_chooser_session_new): * gui/simple-chooser/gdm-chooser-session.h: * gui/simple-chooser/test-host-chooser.c: (assistive_registry_launch), (filter_watch), (filter_timeout), (assistive_registry_start), (at_set_gtk_modules), (load_a11y), (main): * gui/simple-greeter/greeter-main.c: (load_a11y), (main): Initial support for XDMCP IndirectQuery choosers. Also fix broken gdm_address_is_local. svn path=/trunk/; revision=5645
* Fix up spacing.William Jon McCann2008-01-291-53/+53
| | | | | | | | | | | 2008-01-29 William Jon McCann <mccann@jhu.edu> * daemon/gdm-xdmcp-display-factory.c: (gdm_xdmcp_handle_managed_forward): Fix up spacing. svn path=/trunk/; revision=5643
* Merge a few changes from the 2.20 branch.William Jon McCann2008-01-211-2/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | 2008-01-21 William Jon McCann <mccann@jhu.edu> * common/gdm-address.c: (gdm_address_peek_local_list): * daemon/gdm-xdmcp-display-factory.c: (gdm_xdmcp_display_factory_class_init), (gdm_xdmcp_display_factory_finalize): Merge a few changes from the 2.20 branch. * gui/simple-chooser/chooser-main.c: (main): * gui/simple-greeter/Makefile.am: * gui/simple-greeter/gdm-remote-login-window.c: (start_xephyr), (gdm_remote_login_window_connect), (gdm_remote_login_window_set_property), (gdm_remote_login_window_get_property), (gdm_remote_login_window_constructor), (gdm_remote_login_window_class_init), (gdm_remote_login_window_init), (gdm_remote_login_window_finalize), (gdm_remote_login_window_new): * gui/simple-greeter/gdm-remote-login-window.h: * gui/simple-greeter/test-remote-login-window.c: (main): Add initial remote login (xdmcp) client window. svn path=/trunk/; revision=5621
* With this patch we now invoke the X server with the -auth argument andWilliam Jon McCann2007-11-091-51/+18
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 2007-11-09 William Jon McCann <mccann@jhu.edu> * common/gdm-common.c: (gdm_string_hex_decode): * common/gdm-common.h: * daemon/Makefile.am: * daemon/auth.c: * daemon/auth.h: * daemon/gdm-display.c: (_create_access_file_for_user), (gdm_display_real_create_authority), (gdm_display_real_add_user_authorization), (gdm_display_real_remove_user_authorization), (gdm_display_get_x11_cookie), (gdm_display_get_x11_authority_file), (gdm_display_real_unmanage), (gdm_display_set_property), (gdm_display_get_property), (gdm_display_class_init), (gdm_display_finalize): * daemon/gdm-display.h: * daemon/gdm-factory-slave.c: (gdm_factory_slave_run): * daemon/gdm-local-display-factory.c: (create_display_for_device): * daemon/gdm-manager.c: (gdm_manager_init), (gdm_manager_finalize): * daemon/gdm-product-slave.c: (gdm_product_slave_create_server): * daemon/gdm-server.c: (_gdm_server_set_auth_file), (gdm_server_set_property), (gdm_server_get_property), (gdm_server_class_init), (gdm_server_new): * daemon/gdm-server.h: * daemon/gdm-simple-slave.c: (gdm_simple_slave_run): * daemon/gdm-slave.c: (gdm_slave_connect_to_x11_display), (gdm_slave_real_start), (gdm_slave_set_property), (gdm_slave_get_property), (gdm_slave_class_init): * daemon/gdm-static-display.c: (gdm_static_display_add_user_authorization), (gdm_static_display_remove_user_authorization): * daemon/gdm-xdmcp-display-factory.c: (gdm_xdmcp_handle_request): * daemon/gdm-xdmcp-display.c: (gdm_xdmcp_display_create_authority), (gdm_xdmcp_display_add_user_authorization), (gdm_xdmcp_display_remove_user_authorization), (gdm_xdmcp_display_unmanage): * daemon/gdm-display-access-file.c: * daemon/gdm-display-access-file.h: With this patch we now invoke the X server with the -auth argument and disable machine wide access to the X server. This patch also drops the md5 hashing of random bytes to create cookies and instead just creates cookies directly (like the X server would if we asked the X server to generate the cookies for us). Patch from: Ray Strode <rstrode@redhat.com> svn path=/trunk/; revision=5499
* Prefix debug messages with class name to make output easier to read.William Jon McCann2007-10-301-45/+45
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* Don't handle object messages in filter func.William Jon McCann2007-10-291-1/+5
| | | | | | | | | | | | | | | | | | | | | | 2007-10-29 William Jon McCann <mccann@jhu.edu> * daemon/gdm-greeter-server.c: (connection_filter_function): Don't handle object messages in filter func. * daemon/gdm-xdmcp-display-factory.c: (gdm_xdmcp_handle_request): Add debug for cookie. * gui/simple-greeter/gdm-greeter-login-window.c: (gdm_greeter_login_window_constructor), (gdm_greeter_login_window_class_init), (gdm_greeter_login_window_init): Load theme in constructor so we get properties. * gui/simple-greeter/gdm-greeter-session.c: (toggle_login_window): Add debug. svn path=/trunk/; revision=5448
* cast size_t values to int before passing to g_debug, to stop warnings onRay Strode2007-10-241-2/+2
| | | | | | | | | | | 2007-10-24 Ray Strode <rstrode@redhat.com> * daemon/gdm-slave.c: * daemon/gdm-session-record.c: * daemon/gdm-xdmcp-display-factory.c: cast size_t values to int before passing to g_debug, to stop warnings on 64-bit svn path=/trunk/; revision=5404
* Fix a bunch of compiler warnings. Add Werror for now to warning flags.William Jon McCann2007-10-161-0/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | 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
* The function gdm_address_new_from_sockaddr_storage gets called in a fewPOST_SWITCH_TO_GOBJECT_BRANCHWilliam Jon McCann2007-10-151-3/+3
| | | | | | | | | | | | | | | | | | | | | 2007-10-15 William Jon McCann <mccann@jhu.edu> * common/gdm-address.c: (gdm_address_new_from_sockaddr), (gdm_address_peek_local_list): * common/gdm-address.h: * daemon/gdm-xdmcp-display-factory.c: (do_bind), (create_address_from_request), (decode_packet): * gui/simple-chooser/gdm-host-chooser-widget.c: (decode_packet), (find_broadcast_addresses), (add_hosts): The function gdm_address_new_from_sockaddr_storage gets called in a few places with socket addresses that aren't necessary sockaddr_storage bytes big (all the places that call getaddrinfo). This results in the memdup call in that function potentially copying out of bounds bytes. Patch from: Ray Strode <halfline@gmail.com> svn path=/branches/mccann-gobject/; revision=5360
* Remove some more obsolete stuff. Make distcheck happy.William Jon McCann2007-10-041-3/+7
| | | | | | | | | | | | | | | | | | | | 2007-10-04 William Jon McCann <mccann@jhu.edu> * common/gdm-common-unknown-origin.c: (gdm_safe_fopen_w): * common/gdm-common-unknown-origin.h: * common/gdm-common.c: * configure.ac: * daemon/gdm-slave.c: (gdm_slave_connect_to_x11_display): * daemon/gdm-xdmcp-display-factory.c: (gdm_xdmcp_handle_indirect_query), (gdm_xdmcp_handle_managed_forward): * daemon/main.c: (main_restoreenv), (gdm_restart_now), (check_logdir), (check_servauthdir), (set_effective_user_group), (gdm_daemon_check_permissions), (gdm_daemon_change_user), (main): Remove some more obsolete stuff. Make distcheck happy. svn path=/branches/mccann-gobject/; revision=5342