diff options
author | William Jon McCann <jmccann@redhat.com> | 2008-02-20 18:41:49 +0000 |
---|---|---|
committer | William Jon McCann <mccann@src.gnome.org> | 2008-02-20 18:41:49 +0000 |
commit | 9400160560215c509759efca6fb365f12e4a8bc5 (patch) | |
tree | 3653a68ebba12afe5864ddc8737fd1f491bda275 /daemon | |
parent | 7ded9b2049a472b9fb5f6f2f70e270e14fcee656 (diff) | |
download | gdm-9400160560215c509759efca6fb365f12e4a8bc5.tar.gz |
Add initial support for timed login.
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
Diffstat (limited to 'daemon')
-rw-r--r-- | daemon/gdm-factory-slave.c | 4 | ||||
-rw-r--r-- | daemon/gdm-greeter-server.c | 31 | ||||
-rw-r--r-- | daemon/gdm-greeter-server.h | 3 | ||||
-rw-r--r-- | daemon/gdm-product-slave.c | 33 | ||||
-rw-r--r-- | daemon/gdm-session-direct.c | 53 | ||||
-rw-r--r-- | daemon/gdm-session-relay.c | 44 | ||||
-rw-r--r-- | daemon/gdm-session.c | 8 | ||||
-rw-r--r-- | daemon/gdm-session.h | 8 | ||||
-rw-r--r-- | daemon/gdm-simple-slave.c | 40 | ||||
-rw-r--r-- | daemon/simple-slave-main.c | 7 | ||||
-rw-r--r-- | daemon/test-session.c | 2 |
11 files changed, 173 insertions, 60 deletions
diff --git a/daemon/gdm-factory-slave.c b/daemon/gdm-factory-slave.c index 8791d5b7..14a1a689 100644 --- a/daemon/gdm-factory-slave.c +++ b/daemon/gdm-factory-slave.c @@ -375,7 +375,8 @@ on_greeter_begin_verification (GdmGreeterServer *greeter_server, GdmFactorySlave *slave) { g_debug ("GdmFactorySlave: begin verification"); - gdm_session_setup (GDM_SESSION (slave->priv->session)); + gdm_session_setup (GDM_SESSION (slave->priv->session), + "gdm"); } static void @@ -385,6 +386,7 @@ on_greeter_begin_verification_for_user (GdmGreeterServer *greeter_server, { g_debug ("GdmFactorySlave: begin verification for user"); gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), + "gdm", username); } diff --git a/daemon/gdm-greeter-server.c b/daemon/gdm-greeter-server.c index e1f672c3..b3ab8bf8 100644 --- a/daemon/gdm-greeter-server.c +++ b/daemon/gdm-greeter-server.c @@ -69,6 +69,7 @@ enum { }; enum { + BEGIN_TIMED_LOGIN, BEGIN_VERIFICATION, BEGIN_VERIFICATION_FOR_USER, QUERY_ANSWER, @@ -281,6 +282,23 @@ handle_begin_verification (GdmGreeterServer *greeter_server, return DBUS_HANDLER_RESULT_HANDLED; } +static DBusHandlerResult +handle_begin_timed_login (GdmGreeterServer *greeter_server, + DBusConnection *connection, + DBusMessage *message) +{ + DBusMessage *reply; + + g_debug ("GreeterServer: BeginTimedLogin"); + + reply = dbus_message_new_method_return (message); + dbus_connection_send (connection, reply, NULL); + dbus_message_unref (reply); + + g_signal_emit (greeter_server, signals [BEGIN_TIMED_LOGIN], 0); + + return DBUS_HANDLER_RESULT_HANDLED; +} static DBusHandlerResult handle_begin_verification_for_user (GdmGreeterServer *greeter_server, @@ -504,6 +522,8 @@ greeter_handle_child_message (DBusConnection *connection, return handle_begin_verification (greeter_server, connection, message); } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "BeginVerificationForUser")) { return handle_begin_verification_for_user (greeter_server, connection, message); + } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "BeginTimedLogin")) { + return handle_begin_timed_login (greeter_server, connection, message); } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "AnswerQuery")) { return handle_answer_query (greeter_server, connection, message); } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "SelectSession")) { @@ -549,6 +569,7 @@ do_introspect (DBusConnection *connection, xml = g_string_append (xml, " <interface name=\"org.gnome.DisplayManager.GreeterServer\">\n" " <method name=\"BeginVerification\">\n" + " <method name=\"BeginTimedLogin\">\n" " </method>\n" " <method name=\"BeginVerificationForUser\">\n" " <arg name=\"username\" direction=\"in\" type=\"s\"/>\n" @@ -967,6 +988,16 @@ gdm_greeter_server_class_init (GdmGreeterServerClass *klass) g_cclosure_marshal_VOID__VOID, G_TYPE_NONE, 0); + signals [BEGIN_TIMED_LOGIN] = + g_signal_new ("begin-timed-login", + G_OBJECT_CLASS_TYPE (object_class), + G_SIGNAL_RUN_FIRST, + G_STRUCT_OFFSET (GdmGreeterServerClass, begin_timed_login), + NULL, + NULL, + g_cclosure_marshal_VOID__VOID, + G_TYPE_NONE, + 0); signals [BEGIN_VERIFICATION_FOR_USER] = g_signal_new ("begin-verification-for-user", G_OBJECT_CLASS_TYPE (object_class), diff --git a/daemon/gdm-greeter-server.h b/daemon/gdm-greeter-server.h index c37a43ab..7432df40 100644 --- a/daemon/gdm-greeter-server.h +++ b/daemon/gdm-greeter-server.h @@ -45,9 +45,10 @@ typedef struct { GObjectClass parent_class; + void (* begin_timed_login) (GdmGreeterServer *greeter_server); + void (* begin_verification) (GdmGreeterServer *greeter_server); void (* begin_verification_for_user)(GdmGreeterServer *greeter_server, const char *username); - void (* begin_verification) (GdmGreeterServer *greeter_server); void (* query_answer) (GdmGreeterServer *greeter_server, const char *text); void (* session_selected) (GdmGreeterServer *greeter_server, diff --git a/daemon/gdm-product-slave.c b/daemon/gdm-product-slave.c index f7991c2f..0430e059 100644 --- a/daemon/gdm-product-slave.c +++ b/daemon/gdm-product-slave.c @@ -547,9 +547,25 @@ static void on_relay_setup (GdmProductSlave *slave, DBusMessage *message) { - g_debug ("GdmProductSlave: Relay Setup"); + DBusError error; + const char *service_name; + dbus_bool_t res; - gdm_session_setup (GDM_SESSION (slave->priv->session)); + service_name = NULL; + + dbus_error_init (&error); + res = dbus_message_get_args (message, + &error, + DBUS_TYPE_STRING, &service_name, + DBUS_TYPE_INVALID); + if (res) { + g_debug ("GdmProductSlave: Relay Setup"); + gdm_session_setup (GDM_SESSION (slave->priv->session), + service_name); + } else { + g_warning ("Unable to get arguments: %s", error.message); + dbus_error_free (&error); + } } static void @@ -557,17 +573,24 @@ on_relay_setup_for_user (GdmProductSlave *slave, DBusMessage *message) { DBusError error; - const char *text; + const char *service_name; + const char *username; dbus_bool_t res; + username = NULL; + service_name = NULL; + dbus_error_init (&error); res = dbus_message_get_args (message, &error, - DBUS_TYPE_STRING, &text, + DBUS_TYPE_STRING, &service_name, + DBUS_TYPE_STRING, &username, DBUS_TYPE_INVALID); if (res) { g_debug ("GdmProductSlave: Relay SetupForUser"); - gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), text); + gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), + service_name, + username); } else { g_warning ("Unable to get arguments: %s", error.message); dbus_error_free (&error); diff --git a/daemon/gdm-session-direct.c b/daemon/gdm-session-direct.c index 2488668b..c16554ef 100644 --- a/daemon/gdm-session-direct.c +++ b/daemon/gdm-session-direct.c @@ -78,7 +78,6 @@ struct _GdmSessionDirectPrivate guint32 is_running : 1; /* object lifetime scope */ - char *service_name; char *display_name; char *display_hostname; char *display_device; @@ -92,7 +91,6 @@ struct _GdmSessionDirectPrivate enum { PROP_0, - PROP_SERVICE_NAME, PROP_DISPLAY_NAME, PROP_DISPLAY_HOSTNAME, PROP_DISPLAY_IS_LOCAL, @@ -1227,7 +1225,6 @@ gdm_session_direct_init (GdmSessionDirect *session) session->priv->session_pid = -1; session->priv->selected_session = g_strdup ("gnome.desktop"); - session->priv->service_name = g_strdup ("gdm"); session->priv->environment = g_hash_table_new_full (g_str_hash, g_str_equal, @@ -1343,7 +1340,8 @@ gdm_session_direct_open (GdmSession *session) } static void -send_setup (GdmSessionDirect *session) +send_setup (GdmSessionDirect *session, + const char *service_name) { DBusMessage *message; DBusMessageIter iter; @@ -1352,6 +1350,8 @@ send_setup (GdmSessionDirect *session) const char *display_hostname; const char *display_x11_authority_file; + g_assert (service_name != NULL); + if (session->priv->display_name != NULL) { display_name = session->priv->display_name; } else { @@ -1380,7 +1380,7 @@ send_setup (GdmSessionDirect *session) "Setup"); dbus_message_iter_init_append (message, &iter); - dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &session->priv->service_name); + dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &service_name); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_name); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_device); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_hostname); @@ -1394,7 +1394,8 @@ send_setup (GdmSessionDirect *session) } static void -send_setup_for_user (GdmSessionDirect *session) +send_setup_for_user (GdmSessionDirect *session, + const char *service_name) { DBusMessage *message; DBusMessageIter iter; @@ -1404,6 +1405,8 @@ send_setup_for_user (GdmSessionDirect *session) const char *display_x11_authority_file; const char *selected_user; + g_assert (service_name != NULL); + if (session->priv->display_name != NULL) { display_name = session->priv->display_name; } else { @@ -1437,7 +1440,7 @@ send_setup_for_user (GdmSessionDirect *session) "SetupForUser"); dbus_message_iter_init_append (message, &iter); - dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &session->priv->service_name); + dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &service_name); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_name); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_device); dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &display_hostname); @@ -1452,19 +1455,21 @@ send_setup_for_user (GdmSessionDirect *session) } static void -gdm_session_direct_setup (GdmSession *session) +gdm_session_direct_setup (GdmSession *session, + const char *service_name) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); g_return_if_fail (session != NULL); g_return_if_fail (dbus_connection_get_is_connected (impl->priv->worker_connection)); - send_setup (impl); + send_setup (impl, service_name); } static void -gdm_session_direct_setup_for_user (GdmSession *session, - const char *username) +gdm_session_direct_setup_for_user (GdmSession *session, + const char *service_name, + const char *username) { GdmSessionDirect *impl = GDM_SESSION_DIRECT (session); @@ -1474,7 +1479,7 @@ gdm_session_direct_setup_for_user (GdmSession *session, gdm_session_direct_select_user (session, username); - send_setup_for_user (impl); + send_setup_for_user (impl, service_name); } static void @@ -1921,14 +1926,6 @@ gdm_session_direct_select_language (GdmSession *session, impl->priv->selected_language = g_strdup (text); } -static void -_gdm_session_direct_set_service_name (GdmSessionDirect *session, - const char *name) -{ - g_free (session->priv->service_name); - session->priv->service_name = g_strdup (name); -} - /* At some point we may want to read these right from * the slave but for now I don't want the dependency */ static void @@ -1990,9 +1987,6 @@ gdm_session_direct_set_property (GObject *object, self = GDM_SESSION_DIRECT (object); switch (prop_id) { - case PROP_SERVICE_NAME: - _gdm_session_direct_set_service_name (self, g_value_get_string (value)); - break; case PROP_DISPLAY_NAME: _gdm_session_direct_set_display_name (self, g_value_get_string (value)); break; @@ -2028,9 +2022,6 @@ gdm_session_direct_get_property (GObject *object, self = GDM_SESSION_DIRECT (object); switch (prop_id) { - case PROP_SERVICE_NAME: - g_value_set_string (value, self->priv->service_name); - break; case PROP_DISPLAY_NAME: g_value_set_string (value, self->priv->display_name); break; @@ -2066,9 +2057,6 @@ gdm_session_direct_dispose (GObject *object) gdm_session_direct_close (GDM_SESSION (session)); - g_free (session->priv->service_name); - session->priv->service_name = NULL; - g_free (session->priv->display_name); session->priv->display_name = NULL; @@ -2148,13 +2136,6 @@ gdm_session_direct_class_init (GdmSessionDirectClass *session_class) g_type_class_add_private (session_class, sizeof (GdmSessionDirectPrivate)); g_object_class_install_property (object_class, - PROP_SERVICE_NAME, - g_param_spec_string ("service-name", - "service name", - "service name", - "gdm", - G_PARAM_READWRITE | G_PARAM_CONSTRUCT)); - g_object_class_install_property (object_class, PROP_DISPLAY_NAME, g_param_spec_string ("display-name", "display name", diff --git a/daemon/gdm-session-relay.c b/daemon/gdm-session-relay.c index bdce1603..7e7d3547 100644 --- a/daemon/gdm-session-relay.c +++ b/daemon/gdm-session-relay.c @@ -132,8 +132,36 @@ send_dbus_string_signal (GdmSessionRelay *session_relay, } static void +send_dbus_string_string_signal (GdmSessionRelay *session_relay, + const char *name, + const char *text1, + const char *text2) +{ + DBusMessage *message; + DBusMessageIter iter; + + g_return_if_fail (session_relay != NULL); + + g_debug ("GdmSessionRelay: sending signal %s", name); + message = dbus_message_new_signal (GDM_SESSION_RELAY_DBUS_PATH, + GDM_SESSION_RELAY_DBUS_INTERFACE, + name); + + dbus_message_iter_init_append (message, &iter); + dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &text1); + dbus_message_iter_init_append (message, &iter); + dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &text2); + + if (! send_dbus_message (session_relay->priv->session_connection, message)) { + g_debug ("GdmSessionRelay: Could not send %s signal", name); + } + + dbus_message_unref (message); +} + +static void send_dbus_void_signal (GdmSessionRelay *session_relay, - const char *name) + const char *name) { DBusMessage *message; @@ -166,18 +194,20 @@ gdm_session_relay_close (GdmSession *session) } static void -gdm_session_relay_setup (GdmSession *session) +gdm_session_relay_setup (GdmSession *session, + const char *service_name) { GdmSessionRelay *impl = GDM_SESSION_RELAY (session); - send_dbus_void_signal (impl, "Setup"); + send_dbus_string_signal (impl, "Setup", service_name); } static void gdm_session_relay_setup_for_user (GdmSession *session, + const char *service_name, const char *username) { GdmSessionRelay *impl = GDM_SESSION_RELAY (session); - send_dbus_string_signal (impl, "SetupForUser", username); + send_dbus_string_string_signal (impl, "SetupForUser", service_name, username); } static void @@ -742,15 +772,9 @@ do_introspect (DBusConnection *connection, " </signal>\n" " <signal name=\"Setup\">\n" " <arg name=\"service_name\" type=\"s\"/>\n" - " <arg name=\"x11_display_name\" type=\"s\"/>\n" - " <arg name=\"display_device\" type=\"s\"/>\n" - " <arg name=\"hostname\" type=\"s\"/>\n" " </signal>\n" " <signal name=\"SetupForUser\">\n" " <arg name=\"service_name\" type=\"s\"/>\n" - " <arg name=\"x11_display_name\" type=\"s\"/>\n" - " <arg name=\"display_device\" type=\"s\"/>\n" - " <arg name=\"hostname\" type=\"s\"/>\n" " <arg name=\"username\" type=\"s\"/>\n" " </signal>\n" " <signal name=\"Authenticate\">\n" diff --git a/daemon/gdm-session.c b/daemon/gdm-session.c index 34ae9392..9834e7cf 100644 --- a/daemon/gdm-session.c +++ b/daemon/gdm-session.c @@ -93,20 +93,22 @@ gdm_session_close (GdmSession *session) } void -gdm_session_setup (GdmSession *session) +gdm_session_setup (GdmSession *session, + const char *service_name) { g_return_if_fail (GDM_IS_SESSION (session)); - GDM_SESSION_GET_IFACE (session)->setup (session); + GDM_SESSION_GET_IFACE (session)->setup (session, service_name); } void gdm_session_setup_for_user (GdmSession *session, + const char *service_name, const char *username) { g_return_if_fail (GDM_IS_SESSION (session)); - GDM_SESSION_GET_IFACE (session)->setup_for_user (session, username); + GDM_SESSION_GET_IFACE (session)->setup_for_user (session, service_name, username); } void diff --git a/daemon/gdm-session.h b/daemon/gdm-session.h index 579f2590..b8168c34 100644 --- a/daemon/gdm-session.h +++ b/daemon/gdm-session.h @@ -46,8 +46,10 @@ struct _GdmSessionIface /* Methods */ void (* open) (GdmSession *session); - void (* setup) (GdmSession *session); + void (* setup) (GdmSession *session, + const char *service_name); void (* setup_for_user) (GdmSession *session, + const char *service_name, const char *username); void (* reset) (GdmSession *session); void (* authenticate) (GdmSession *session); @@ -111,8 +113,10 @@ struct _GdmSessionIface GType gdm_session_get_type (void) G_GNUC_CONST; void gdm_session_open (GdmSession *session); -void gdm_session_setup (GdmSession *session); +void gdm_session_setup (GdmSession *session, + const char *service_name); void gdm_session_setup_for_user (GdmSession *session, + const char *service_name, const char *username); void gdm_session_reset (GdmSession *session); void gdm_session_authenticate (GdmSession *session); diff --git a/daemon/gdm-simple-slave.c b/daemon/gdm-simple-slave.c index bb85ad91..20813f85 100644 --- a/daemon/gdm-simple-slave.c +++ b/daemon/gdm-simple-slave.c @@ -42,6 +42,9 @@ #include "gdm-common.h" +#include "gdm-settings-client.h" +#include "gdm-settings-keys.h" + #include "gdm-simple-slave.h" #include "gdm-simple-slave-glue.h" @@ -557,7 +560,37 @@ on_greeter_begin_verification (GdmGreeterServer *greeter_server, GdmSimpleSlave *slave) { g_debug ("GdmSimpleSlave: begin verification"); - gdm_session_setup (GDM_SESSION (slave->priv->session)); + gdm_session_setup (GDM_SESSION (slave->priv->session), + "gdm"); +} + +static void +on_greeter_begin_timed_login (GdmGreeterServer *greeter_server, + GdmSimpleSlave *slave) +{ + char *username; + gboolean enabled; + gboolean res; + + g_debug ("GdmSimpleSlave: begin timed login"); + + enabled = FALSE; + res = gdm_settings_client_get_boolean (GDM_KEY_TIMED_LOGIN_ENABLE, &enabled); + if (! enabled) { + g_warning ("GdmSimpleSlave: timed login requested but disabled in configuration"); + return; + } + + username = NULL; + res = gdm_settings_client_get_string (GDM_KEY_TIMED_LOGIN_USER, &username); + if (username == NULL) { + g_warning ("GdmSimpleSlave: timed login requested but username not specified in configuration"); + return; + } + + gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), + "gdm-autologin", + username); } static void @@ -567,6 +600,7 @@ on_greeter_begin_verification_for_user (GdmGreeterServer *greeter_server, { g_debug ("GdmSimpleSlave: begin verification"); gdm_session_setup_for_user (GDM_SESSION (slave->priv->session), + "gdm", username); } @@ -693,6 +727,10 @@ run_greeter (GdmSimpleSlave *slave) slave->priv->greeter_server = gdm_greeter_server_new (display_id); g_signal_connect (slave->priv->greeter_server, + "begin-timed-login", + G_CALLBACK (on_greeter_begin_timed_login), + slave); + g_signal_connect (slave->priv->greeter_server, "begin-verification", G_CALLBACK (on_greeter_begin_verification), slave); diff --git a/daemon/simple-slave-main.c b/daemon/simple-slave-main.c index 952b2275..cf0e9a34 100644 --- a/daemon/simple-slave-main.c +++ b/daemon/simple-slave-main.c @@ -44,6 +44,8 @@ #include "gdm-common.h" #include "gdm-simple-slave.h" +#include "gdm-settings-client.h" + static int gdm_return_code = 0; static DBusGConnection * @@ -188,6 +190,11 @@ main (int argc, exit (1); } + if (! gdm_settings_client_init (GDMCONFDIR "/gdm.schemas", "/")) { + g_critical ("Unable to initialize settings client"); + exit (1); + } + main_loop = g_main_loop_new (NULL, FALSE); signal_handler = gdm_signal_handler_new (); diff --git a/daemon/test-session.c b/daemon/test-session.c index d9dff3ec..fd927e76 100644 --- a/daemon/test-session.c +++ b/daemon/test-session.c @@ -38,7 +38,7 @@ on_open (GdmSession *session, { g_debug ("Got opened: calling setup..."); - gdm_session_setup (session); + gdm_session_setup (session, "gdm"); } static void |