summaryrefslogtreecommitdiff
path: root/daemon/gdm-greeter-server.c
diff options
context:
space:
mode:
authorWilliam Jon McCann <mccann@jhu.edu>2007-08-28 20:06:58 +0000
committerWilliam Jon McCann <mccann@src.gnome.org>2007-08-28 20:06:58 +0000
commit77b6d6f45367ebf5e0a045a0a7ec7efadd3eb5fa (patch)
treeadeadb2ab532f60cf2952584935f4088b7569dd5 /daemon/gdm-greeter-server.c
parentaf364b9934700cc5641717dfa97ecd40e0657944 (diff)
downloadgdm-77b6d6f45367ebf5e0a045a0a7ec7efadd3eb5fa.tar.gz
Mass change tabs to spaces. Tabs suck.
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
Diffstat (limited to 'daemon/gdm-greeter-server.c')
-rw-r--r--daemon/gdm-greeter-server.c1006
1 files changed, 503 insertions, 503 deletions
diff --git a/daemon/gdm-greeter-server.c b/daemon/gdm-greeter-server.c
index 9556a13a..d9094a99 100644
--- a/daemon/gdm-greeter-server.c
+++ b/daemon/gdm-greeter-server.c
@@ -1,4 +1,4 @@
-/* -*- Mode: C; tab-width: 8; indent-tabs-mode: t; c-basic-offset: 8 -*-
+/* -*- Mode: C; tab-width: 8; indent-tabs-mode: nil; c-basic-offset: 8 -*-
*
* Copyright (C) 2007 William Jon McCann <mccann@jhu.edu>
*
@@ -52,148 +52,148 @@
struct GdmGreeterServerPrivate
{
- char *user_name;
- char *group_name;
+ char *user_name;
+ char *group_name;
- gboolean interrupted;
- gboolean always_restart_greeter;
+ gboolean interrupted;
+ gboolean always_restart_greeter;
- DBusServer *server;
- char *server_address;
- DBusConnection *greeter_connection;
+ DBusServer *server;
+ char *server_address;
+ DBusConnection *greeter_connection;
};
enum {
- PROP_0,
- PROP_USER_NAME,
- PROP_GROUP_NAME,
+ PROP_0,
+ PROP_USER_NAME,
+ PROP_GROUP_NAME,
};
enum {
- QUERY_ANSWER,
- SESSION_SELECTED,
- LANGUAGE_SELECTED,
- USER_SELECTED,
- CANCELLED,
- CONNECTED,
- DISCONNECTED,
- LAST_SIGNAL
+ QUERY_ANSWER,
+ SESSION_SELECTED,
+ LANGUAGE_SELECTED,
+ USER_SELECTED,
+ CANCELLED,
+ CONNECTED,
+ DISCONNECTED,
+ LAST_SIGNAL
};
static guint signals [LAST_SIGNAL] = { 0, };
-static void gdm_greeter_server_class_init (GdmGreeterServerClass *klass);
-static void gdm_greeter_server_init (GdmGreeterServer *greeter_server);
-static void gdm_greeter_server_finalize (GObject *object);
+static void gdm_greeter_server_class_init (GdmGreeterServerClass *klass);
+static void gdm_greeter_server_init (GdmGreeterServer *greeter_server);
+static void gdm_greeter_server_finalize (GObject *object);
G_DEFINE_TYPE (GdmGreeterServer, gdm_greeter_server, G_TYPE_OBJECT)
static gboolean
send_dbus_message (DBusConnection *connection,
- DBusMessage *message)
+ DBusMessage *message)
{
- gboolean is_connected;
- gboolean sent;
+ gboolean is_connected;
+ gboolean sent;
- g_return_val_if_fail (message != NULL, FALSE);
+ g_return_val_if_fail (message != NULL, FALSE);
- if (connection == NULL) {
- g_debug ("There is no valid connection");
- return FALSE;
- }
+ if (connection == NULL) {
+ g_debug ("There is no valid connection");
+ return FALSE;
+ }
- is_connected = dbus_connection_get_is_connected (connection);
- if (! is_connected) {
- g_warning ("Not connected!");
- return FALSE;
- }
+ is_connected = dbus_connection_get_is_connected (connection);
+ if (! is_connected) {
+ g_warning ("Not connected!");
+ return FALSE;
+ }
- sent = dbus_connection_send (connection, message, NULL);
+ sent = dbus_connection_send (connection, message, NULL);
- return sent;
+ return sent;
}
static void
send_dbus_string_signal (GdmGreeterServer *greeter_server,
- const char *name,
- const char *text)
+ const char *name,
+ const char *text)
{
- DBusMessage *message;
- DBusMessageIter iter;
+ DBusMessage *message;
+ DBusMessageIter iter;
- g_return_if_fail (greeter_server != NULL);
+ g_return_if_fail (greeter_server != NULL);
- message = dbus_message_new_signal (GDM_GREETER_SERVER_DBUS_PATH,
- GDM_GREETER_SERVER_DBUS_INTERFACE,
- name);
+ message = dbus_message_new_signal (GDM_GREETER_SERVER_DBUS_PATH,
+ GDM_GREETER_SERVER_DBUS_INTERFACE,
+ name);
- dbus_message_iter_init_append (message, &iter);
- dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &text);
+ dbus_message_iter_init_append (message, &iter);
+ dbus_message_iter_append_basic (&iter, DBUS_TYPE_STRING, &text);
- if (! send_dbus_message (greeter_server->priv->greeter_connection, message)) {
- g_debug ("Could not send %s signal", name);
- }
+ if (! send_dbus_message (greeter_server->priv->greeter_connection, message)) {
+ g_debug ("Could not send %s signal", name);
+ }
- dbus_message_unref (message);
+ dbus_message_unref (message);
}
static void
send_dbus_void_signal (GdmGreeterServer *greeter_server,
- const char *name)
+ const char *name)
{
- DBusMessage *message;
+ DBusMessage *message;
- g_return_if_fail (greeter_server != NULL);
+ g_return_if_fail (greeter_server != NULL);
- message = dbus_message_new_signal (GDM_GREETER_SERVER_DBUS_PATH,
- GDM_GREETER_SERVER_DBUS_INTERFACE,
- name);
+ message = dbus_message_new_signal (GDM_GREETER_SERVER_DBUS_PATH,
+ GDM_GREETER_SERVER_DBUS_INTERFACE,
+ name);
- if (! send_dbus_message (greeter_server->priv->greeter_connection, message)) {
- g_debug ("Could not send %s signal", name);
- }
+ if (! send_dbus_message (greeter_server->priv->greeter_connection, message)) {
+ g_debug ("Could not send %s signal", name);
+ }
- dbus_message_unref (message);
+ dbus_message_unref (message);
}
gboolean
gdm_greeter_server_info_query (GdmGreeterServer *greeter_server,
- const char *text)
+ const char *text)
{
send_dbus_string_signal (greeter_server, "InfoQuery", text);
- return TRUE;
+ return TRUE;
}
gboolean
gdm_greeter_server_secret_info_query (GdmGreeterServer *greeter_server,
- const char *text)
+ const char *text)
{
send_dbus_string_signal (greeter_server, "SecretInfoQuery", text);
- return TRUE;
+ return TRUE;
}
gboolean
gdm_greeter_server_info (GdmGreeterServer *greeter_server,
- const char *text)
+ const char *text)
{
send_dbus_string_signal (greeter_server, "Info", text);
- return TRUE;
+ return TRUE;
}
gboolean
gdm_greeter_server_problem (GdmGreeterServer *greeter_server,
- const char *text)
+ const char *text)
{
send_dbus_string_signal (greeter_server, "Problem", text);
- return TRUE;
+ return TRUE;
}
gboolean
gdm_greeter_server_reset (GdmGreeterServer *greeter_server)
{
send_dbus_void_signal (greeter_server, "Reset");
- return TRUE;
+ return TRUE;
}
/* Note: Use abstract sockets like dbus does by default on Linux. Abstract
@@ -202,261 +202,261 @@ gdm_greeter_server_reset (GdmGreeterServer *greeter_server)
static char *
generate_address (void)
{
- char *path;
+ char *path;
#if defined (__linux__)
- int i;
- char tmp[9];
-
- for (i = 0; i < 8; i++) {
- if (g_random_int_range (0, 2) == 0) {
- tmp[i] = g_random_int_range ('a', 'z' + 1);
- } else {
- tmp[i] = g_random_int_range ('A', 'Z' + 1);
- }
- }
- tmp[8] = '\0';
-
- path = g_strdup_printf ("unix:abstract=/tmp/gdm-greeter-%s", tmp);
+ int i;
+ char tmp[9];
+
+ for (i = 0; i < 8; i++) {
+ if (g_random_int_range (0, 2) == 0) {
+ tmp[i] = g_random_int_range ('a', 'z' + 1);
+ } else {
+ tmp[i] = g_random_int_range ('A', 'Z' + 1);
+ }
+ }
+ tmp[8] = '\0';
+
+ path = g_strdup_printf ("unix:abstract=/tmp/gdm-greeter-%s", tmp);
#else
- path = g_strdup ("unix:tmpdir=/tmp/gdm-greeter");
+ path = g_strdup ("unix:tmpdir=/tmp/gdm-greeter");
#endif
- return path;
+ return path;
}
static DBusHandlerResult
handle_answer_query (GdmGreeterServer *greeter_server,
- DBusConnection *connection,
- DBusMessage *message)
-{
- DBusMessage *reply;
- DBusError error;
- const char *text;
-
- dbus_error_init (&error);
- if (! dbus_message_get_args (message, &error,
- DBUS_TYPE_STRING, &text,
- DBUS_TYPE_INVALID)) {
- g_warning ("ERROR: %s", error.message);
- }
+ DBusConnection *connection,
+ DBusMessage *message)
+{
+ DBusMessage *reply;
+ DBusError error;
+ const char *text;
+
+ dbus_error_init (&error);
+ if (! dbus_message_get_args (message, &error,
+ DBUS_TYPE_STRING, &text,
+ DBUS_TYPE_INVALID)) {
+ g_warning ("ERROR: %s", error.message);
+ }
- g_debug ("AnswerQuery");
+ g_debug ("AnswerQuery");
- reply = dbus_message_new_method_return (message);
- dbus_connection_send (connection, reply, NULL);
- dbus_message_unref (reply);
+ reply = dbus_message_new_method_return (message);
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
- g_signal_emit (greeter_server, signals [QUERY_ANSWER], 0, text);
+ g_signal_emit (greeter_server, signals [QUERY_ANSWER], 0, text);
- return DBUS_HANDLER_RESULT_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
}
static DBusHandlerResult
handle_select_session (GdmGreeterServer *greeter_server,
- DBusConnection *connection,
- DBusMessage *message)
-{
- DBusMessage *reply;
- DBusError error;
- const char *text;
-
- dbus_error_init (&error);
- if (! dbus_message_get_args (message, &error,
- DBUS_TYPE_STRING, &text,
- DBUS_TYPE_INVALID)) {
- g_warning ("ERROR: %s", error.message);
- }
+ DBusConnection *connection,
+ DBusMessage *message)
+{
+ DBusMessage *reply;
+ DBusError error;
+ const char *text;
+
+ dbus_error_init (&error);
+ if (! dbus_message_get_args (message, &error,
+ DBUS_TYPE_STRING, &text,
+ DBUS_TYPE_INVALID)) {
+ g_warning ("ERROR: %s", error.message);
+ }
- g_debug ("SelectSession: %s", text);
+ g_debug ("SelectSession: %s", text);
- reply = dbus_message_new_method_return (message);
- dbus_connection_send (connection, reply, NULL);
- dbus_message_unref (reply);
+ reply = dbus_message_new_method_return (message);
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
- g_signal_emit (greeter_server, signals [SESSION_SELECTED], 0, text);
+ g_signal_emit (greeter_server, signals [SESSION_SELECTED], 0, text);
- return DBUS_HANDLER_RESULT_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
}
static DBusHandlerResult
handle_select_language (GdmGreeterServer *greeter_server,
- DBusConnection *connection,
- DBusMessage *message)
-{
- DBusMessage *reply;
- DBusError error;
- const char *text;
-
- dbus_error_init (&error);
- if (! dbus_message_get_args (message, &error,
- DBUS_TYPE_STRING, &text,
- DBUS_TYPE_INVALID)) {
- g_warning ("ERROR: %s", error.message);
- }
+ DBusConnection *connection,
+ DBusMessage *message)
+{
+ DBusMessage *reply;
+ DBusError error;
+ const char *text;
+
+ dbus_error_init (&error);
+ if (! dbus_message_get_args (message, &error,
+ DBUS_TYPE_STRING, &text,
+ DBUS_TYPE_INVALID)) {
+ g_warning ("ERROR: %s", error.message);
+ }
- g_debug ("SelectLanguage: %s", text);
+ g_debug ("SelectLanguage: %s", text);
- reply = dbus_message_new_method_return (message);
- dbus_connection_send (connection, reply, NULL);
- dbus_message_unref (reply);
+ reply = dbus_message_new_method_return (message);
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
- g_signal_emit (greeter_server, signals [LANGUAGE_SELECTED], 0, text);
+ g_signal_emit (greeter_server, signals [LANGUAGE_SELECTED], 0, text);
- return DBUS_HANDLER_RESULT_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
}
static DBusHandlerResult
handle_select_user (GdmGreeterServer *greeter_server,
- DBusConnection *connection,
- DBusMessage *message)
-{
- DBusMessage *reply;
- DBusError error;
- const char *text;
-
- dbus_error_init (&error);
- if (! dbus_message_get_args (message, &error,
- DBUS_TYPE_STRING, &text,
- DBUS_TYPE_INVALID)) {
- g_warning ("ERROR: %s", error.message);
- }
+ DBusConnection *connection,
+ DBusMessage *message)
+{
+ DBusMessage *reply;
+ DBusError error;
+ const char *text;
+
+ dbus_error_init (&error);
+ if (! dbus_message_get_args (message, &error,
+ DBUS_TYPE_STRING, &text,
+ DBUS_TYPE_INVALID)) {
+ g_warning ("ERROR: %s", error.message);
+ }
- g_debug ("SelectUser: %s", text);
+ g_debug ("SelectUser: %s", text);
- reply = dbus_message_new_method_return (message);
- dbus_connection_send (connection, reply, NULL);
- dbus_message_unref (reply);
+ reply = dbus_message_new_method_return (message);
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
- g_signal_emit (greeter_server, signals [USER_SELECTED], 0, text);
+ g_signal_emit (greeter_server, signals [USER_SELECTED], 0, text);
- return DBUS_HANDLER_RESULT_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
}
static DBusHandlerResult
handle_cancel (GdmGreeterServer *greeter_server,
- DBusConnection *connection,
- DBusMessage *message)
+ DBusConnection *connection,
+ DBusMessage *message)
{
- DBusMessage *reply;
+ DBusMessage *reply;
- reply = dbus_message_new_method_return (message);
- dbus_connection_send (connection, reply, NULL);
- dbus_message_unref (reply);
+ reply = dbus_message_new_method_return (message);
+ dbus_connection_send (connection, reply, NULL);
+ dbus_message_unref (reply);
- g_signal_emit (greeter_server, signals [CANCELLED], 0);
+ g_signal_emit (greeter_server, signals [CANCELLED], 0);
- return DBUS_HANDLER_RESULT_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
}
static DBusHandlerResult
greeter_handle_child_message (DBusConnection *connection,
- DBusMessage *message,
- void *user_data)
+ DBusMessage *message,
+ void *user_data)
{
GdmGreeterServer *greeter_server = GDM_GREETER_SERVER (user_data);
- 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")) {
- return handle_select_session (greeter_server, connection, message);
- } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "SelectSession")) {
- return handle_select_language (greeter_server, connection, message);
- } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "SelectUser")) {
- return handle_select_user (greeter_server, connection, message);
- } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "Cancel")) {
- return handle_cancel (greeter_server, connection, message);
- }
+ 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")) {
+ return handle_select_session (greeter_server, connection, message);
+ } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "SelectSession")) {
+ return handle_select_language (greeter_server, connection, message);
+ } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "SelectUser")) {
+ return handle_select_user (greeter_server, connection, message);
+ } else if (dbus_message_is_method_call (message, GDM_GREETER_SERVER_DBUS_INTERFACE, "Cancel")) {
+ return handle_cancel (greeter_server, connection, message);
+ }
return DBUS_HANDLER_RESULT_NOT_YET_HANDLED;
}
static DBusHandlerResult
do_introspect (DBusConnection *connection,
- DBusMessage *message)
-{
- DBusMessage *reply;
- GString *xml;
- char *xml_string;
-
- g_debug ("Do introspect");
-
- /* standard header */
- xml = g_string_new ("<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n"
- "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n"
- "<node>\n"
- " <interface name=\"org.freedesktop.DBus.Introspectable\">\n"
- " <method name=\"Introspect\">\n"
- " <arg name=\"data\" direction=\"out\" type=\"s\"/>\n"
- " </method>\n"
- " </interface>\n");
-
- /* interface */
- xml = g_string_append (xml,
- " <interface name=\"org.gnome.DisplayManager.GreeterServer\">\n"
- " <method name=\"AnswerQuery\">\n"
- " <arg name=\"text\" direction=\"in\" type=\"s\"/>\n"
- " </method>\n"
- " <method name=\"SelectSession\">\n"
- " <arg name=\"text\" direction=\"in\" type=\"s\"/>\n"
- " </method>\n"
- " <method name=\"SelectLanguage\">\n"
- " <arg name=\"text\" direction=\"in\" type=\"s\"/>\n"
- " </method>\n"
- " <method name=\"SelectUser\">\n"
- " <arg name=\"text\" direction=\"in\" type=\"s\"/>\n"
- " </method>\n"
- " <method name=\"Cancel\">\n"
- " </method>\n"
- " <signal name=\"Info\">\n"
- " <arg name=\"text\" type=\"s\"/>\n"
- " </signal>\n"
- " <signal name=\"Problem\">\n"
- " <arg name=\"text\" type=\"s\"/>\n"
- " </signal>\n"
- " <signal name=\"InfoQuery\">\n"
- " <arg name=\"text\" type=\"s\"/>\n"
- " </signal>\n"
- " <signal name=\"SecretInfoQuery\">\n"
- " <arg name=\"text\" type=\"s\"/>\n"
- " </signal>\n"
- " <signal name=\"Reset\">\n"
- " </signal>\n"
- " </interface>\n");
-
- reply = dbus_message_new_method_return (message);
-
- xml = g_string_append (xml, "</node>\n");
- xml_string = g_string_free (xml, FALSE);
-
- dbus_message_append_args (reply,
- DBUS_TYPE_STRING, &xml_string,
- DBUS_TYPE_INVALID);
-
- g_free (xml_string);
-
- if (reply == NULL) {
- g_error ("No memory");
- }
-
- if (! dbus_connection_send (connection, reply, NULL)) {
- g_error ("No memory");
- }
-
- dbus_message_unref (reply);
-
- return DBUS_HANDLER_RESULT_HANDLED;
+ DBusMessage *message)
+{
+ DBusMessage *reply;
+ GString *xml;
+ char *xml_string;
+
+ g_debug ("Do introspect");
+
+ /* standard header */
+ xml = g_string_new ("<!DOCTYPE node PUBLIC \"-//freedesktop//DTD D-BUS Object Introspection 1.0//EN\"\n"
+ "\"http://www.freedesktop.org/standards/dbus/1.0/introspect.dtd\">\n"
+ "<node>\n"
+ " <interface name=\"org.freedesktop.DBus.Introspectable\">\n"
+ " <method name=\"Introspect\">\n"
+ " <arg name=\"data\" direction=\"out\" type=\"s\"/>\n"
+ " </method>\n"
+ " </interface>\n");
+
+ /* interface */
+ xml = g_string_append (xml,
+ " <interface name=\"org.gnome.DisplayManager.GreeterServer\">\n"
+ " <method name=\"AnswerQuery\">\n"
+ " <arg name=\"text\" direction=\"in\" type=\"s\"/>\n"
+ " </method>\n"
+ " <method name=\"SelectSession\">\n"
+ " <arg name=\"text\" direction=\"in\" type=\"s\"/>\n"
+ " </method>\n"
+ " <method name=\"SelectLanguage\">\n"
+ " <arg name=\"text\" direction=\"in\" type=\"s\"/>\n"
+ " </method>\n"
+ " <method name=\"SelectUser\">\n"
+ " <arg name=\"text\" direction=\"in\" type=\"s\"/>\n"
+ " </method>\n"
+ " <method name=\"Cancel\">\n"
+ " </method>\n"
+ " <signal name=\"Info\">\n"
+ " <arg name=\"text\" type=\"s\"/>\n"
+ " </signal>\n"
+ " <signal name=\"Problem\">\n"
+ " <arg name=\"text\" type=\"s\"/>\n"
+ " </signal>\n"
+ " <signal name=\"InfoQuery\">\n"
+ " <arg name=\"text\" type=\"s\"/>\n"
+ " </signal>\n"
+ " <signal name=\"SecretInfoQuery\">\n"
+ " <arg name=\"text\" type=\"s\"/>\n"
+ " </signal>\n"
+ " <signal name=\"Reset\">\n"
+ " </signal>\n"
+ " </interface>\n");
+
+ reply = dbus_message_new_method_return (message);
+
+ xml = g_string_append (xml, "</node>\n");
+ xml_string = g_string_free (xml, FALSE);
+
+ dbus_message_append_args (reply,
+ DBUS_TYPE_STRING, &xml_string,
+ DBUS_TYPE_INVALID);
+
+ g_free (xml_string);
+
+ if (reply == NULL) {
+ g_error ("No memory");
+ }
+
+ if (! dbus_connection_send (connection, reply, NULL)) {
+ g_error ("No memory");
+ }
+
+ dbus_message_unref (reply);
+
+ return DBUS_HANDLER_RESULT_HANDLED;
}
static DBusHandlerResult
greeter_server_message_handler (DBusConnection *connection,
- DBusMessage *message,
- void *user_data)
+ DBusMessage *message,
+ void *user_data)
{
- g_debug ("greeter_server_message_handler: destination=%s obj_path=%s interface=%s method=%s",
- dbus_message_get_destination (message),
- dbus_message_get_path (message),
- dbus_message_get_interface (message),
- dbus_message_get_member (message));
+ g_debug ("greeter_server_message_handler: destination=%s obj_path=%s interface=%s method=%s",
+ dbus_message_get_destination (message),
+ dbus_message_get_path (message),
+ dbus_message_get_interface (message),
+ dbus_message_get_member (message));
if (dbus_message_is_method_call (message, "org.freedesktop.DBus", "AddMatch")) {
@@ -481,8 +481,8 @@ greeter_server_message_handler (DBusConnection *connection,
/*dbus_connection_unref (connection);*/
return DBUS_HANDLER_RESULT_HANDLED;
- } else if (dbus_message_is_method_call (message, "org.freedesktop.DBus.Introspectable", "Introspect")) {
- return do_introspect (connection, message);
+ } else if (dbus_message_is_method_call (message, "org.freedesktop.DBus.Introspectable", "Introspect")) {
+ return do_introspect (connection, message);
} else {
return greeter_handle_child_message (connection, message, user_data);
}
@@ -492,41 +492,41 @@ greeter_server_message_handler (DBusConnection *connection,
static void
greeter_server_unregister_handler (DBusConnection *connection,
- void *user_data)
+ void *user_data)
{
- g_debug ("greeter_server_unregister_handler");
+ g_debug ("greeter_server_unregister_handler");
}
static DBusHandlerResult
connection_filter_function (DBusConnection *connection,
- DBusMessage *message,
- void *user_data)
+ DBusMessage *message,
+ void *user_data)
{
GdmGreeterServer *greeter_server = GDM_GREETER_SERVER (user_data);
- const char *path;
+ const char *path;
- path = dbus_message_get_path (message);
+ path = dbus_message_get_path (message);
- g_debug ("obj_path=%s interface=%s method=%s",
- dbus_message_get_path (message),
- dbus_message_get_interface (message),
- dbus_message_get_member (message));
+ g_debug ("obj_path=%s interface=%s method=%s",
+ dbus_message_get_path (message),
+ dbus_message_get_interface (message),
+ dbus_message_get_member (message));
- if (dbus_message_is_signal (message, DBUS_INTERFACE_LOCAL, "Disconnected")
- && strcmp (path, DBUS_PATH_LOCAL) == 0) {
+ if (dbus_message_is_signal (message, DBUS_INTERFACE_LOCAL, "Disconnected")
+ && strcmp (path, DBUS_PATH_LOCAL) == 0) {
- g_debug ("Disconnected");
+ g_debug ("Disconnected");
- dbus_connection_unref (connection);
- greeter_server->priv->greeter_connection = NULL;
- } else if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) {
+ dbus_connection_unref (connection);
+ greeter_server->priv->greeter_connection = NULL;
+ } else if (dbus_message_is_signal (message, DBUS_INTERFACE_DBUS, "NameOwnerChanged")) {
- } else {
- return greeter_server_message_handler (connection, message, user_data);
- }
+ } else {
+ return greeter_server_message_handler (connection, message, user_data);
+ }
- return DBUS_HANDLER_RESULT_HANDLED;
+ return DBUS_HANDLER_RESULT_HANDLED;
}
static dbus_bool_t
@@ -535,116 +535,116 @@ allow_user_function (DBusConnection *connection,
void *data)
{
GdmGreeterServer *greeter_server = GDM_GREETER_SERVER (data);
- struct passwd *pwent;
+ struct passwd *pwent;
- if (greeter_server->priv->user_name == NULL) {
- return FALSE;
- }
+ if (greeter_server->priv->user_name == NULL) {
+ return FALSE;
+ }
- pwent = getpwnam (greeter_server->priv->user_name);
- if (pwent == NULL) {
- return FALSE;
- }
+ pwent = getpwnam (greeter_server->priv->user_name);
+ if (pwent == NULL) {
+ return FALSE;
+ }
- if (pwent->pw_uid == uid) {
- return TRUE;
- }
+ if (pwent->pw_uid == uid) {
+ return TRUE;
+ }
- return FALSE;
+ return FALSE;
}
static void
handle_connection (DBusServer *server,
- DBusConnection *new_connection,
- void *user_data)
+ DBusConnection *new_connection,
+ void *user_data)
{
GdmGreeterServer *greeter_server = GDM_GREETER_SERVER (user_data);
- g_debug ("Handing new connection");
+ g_debug ("Handing new connection");
- if (greeter_server->priv->greeter_connection == NULL) {
- DBusObjectPathVTable vtable = { &greeter_server_unregister_handler,
- &greeter_server_message_handler,
- NULL, NULL, NULL, NULL
- };
+ if (greeter_server->priv->greeter_connection == NULL) {
+ DBusObjectPathVTable vtable = { &greeter_server_unregister_handler,
+ &greeter_server_message_handler,
+ NULL, NULL, NULL, NULL
+ };
- greeter_server->priv->greeter_connection = new_connection;
- dbus_connection_ref (new_connection);
- dbus_connection_setup_with_g_main (new_connection, NULL);
+ greeter_server->priv->greeter_connection = new_connection;
+ dbus_connection_ref (new_connection);
+ dbus_connection_setup_with_g_main (new_connection, NULL);
- g_debug ("greeter connection is %p", new_connection);
+ g_debug ("greeter connection is %p", new_connection);
- dbus_connection_add_filter (new_connection,
- connection_filter_function,
- greeter_server,
- NULL);
+ dbus_connection_add_filter (new_connection,
+ connection_filter_function,
+ greeter_server,
+ NULL);
- dbus_connection_set_unix_user_function (new_connection,
- allow_user_function,
- greeter_server,
- NULL);
+ dbus_connection_set_unix_user_function (new_connection,
+ allow_user_function,
+ greeter_server,
+ NULL);
- dbus_connection_register_object_path (new_connection,
- GDM_GREETER_SERVER_DBUS_PATH,
- &vtable,
- greeter_server);
+ dbus_connection_register_object_path (new_connection,
+ GDM_GREETER_SERVER_DBUS_PATH,
+ &vtable,
+ greeter_server);
- g_signal_emit (greeter_server, signals[CONNECTED], 0);
+ g_signal_emit (greeter_server, signals[CONNECTED], 0);
- }
+ }
}
gboolean
gdm_greeter_server_start (GdmGreeterServer *greeter_server)
{
- DBusError error;
- gboolean ret;
- char *address;
- const char *auth_mechanisms[] = {"EXTERNAL", NULL};
+ DBusError error;
+ gboolean ret;
+ char *address;
+ const char *auth_mechanisms[] = {"EXTERNAL", NULL};
- ret = FALSE;
+ ret = FALSE;
- g_debug ("Creating D-Bus server for greeter");
+ g_debug ("Creating D-Bus server for greeter");
- address = generate_address ();
+ address = generate_address ();
- dbus_error_init (&error);
- greeter_server->priv->server = dbus_server_listen (address, &error);
- g_free (address);
+ dbus_error_init (&error);
+ greeter_server->priv->server = dbus_server_listen (address, &error);
+ g_free (address);
- if (greeter_server->priv->server == NULL) {
- g_warning ("Cannot create D-BUS server for the greeter: %s", error.message);
- goto out;
- }
+ if (greeter_server->priv->server == NULL) {
+ g_warning ("Cannot create D-BUS server for the greeter: %s", error.message);
+ goto out;
+ }
- dbus_server_setup_with_g_main (greeter_server->priv->server, NULL);
- dbus_server_set_auth_mechanisms (greeter_server->priv->server, auth_mechanisms);
- dbus_server_set_new_connection_function (greeter_server->priv->server,
- handle_connection,
- greeter_server,
- NULL);
- ret = TRUE;
+ dbus_server_setup_with_g_main (greeter_server->priv->server, NULL);
+ dbus_server_set_auth_mechanisms (greeter_server->priv->server, auth_mechanisms);
+ dbus_server_set_new_connection_function (greeter_server->priv->server,
+ handle_connection,
+ greeter_server,
+ NULL);
+ ret = TRUE;
- g_free (greeter_server->priv->server_address);
- greeter_server->priv->server_address = dbus_server_get_address (greeter_server->priv->server);
+ g_free (greeter_server->priv->server_address);
+ greeter_server->priv->server_address = dbus_server_get_address (greeter_server->priv->server);
- g_debug ("D-Bus server listening on %s", greeter_server->priv->server_address);
+ g_debug ("D-Bus server listening on %s", greeter_server->priv->server_address);
out:
- return ret;
+ return ret;
}
gboolean
gdm_greeter_server_stop (GdmGreeterServer *greeter_server)
{
- gboolean ret;
+ gboolean ret;
- ret = FALSE;
+ ret = FALSE;
- g_debug ("Stopping greeter server...");
+ g_debug ("Stopping greeter server...");
- return ret;
+ return ret;
}
char *
@@ -655,7 +655,7 @@ gdm_greeter_server_get_address (GdmGreeterServer *greeter_server)
static void
_gdm_greeter_server_set_user_name (GdmGreeterServer *greeter_server,
- const char *name)
+ const char *name)
{
g_free (greeter_server->priv->user_name);
greeter_server->priv->user_name = g_strdup (name);
@@ -663,7 +663,7 @@ _gdm_greeter_server_set_user_name (GdmGreeterServer *greeter_server,
static void
_gdm_greeter_server_set_group_name (GdmGreeterServer *greeter_server,
- const char *name)
+ const char *name)
{
g_free (greeter_server->priv->group_name);
greeter_server->priv->group_name = g_strdup (name);
@@ -671,54 +671,54 @@ _gdm_greeter_server_set_group_name (GdmGreeterServer *greeter_server,
static void
gdm_greeter_server_set_property (GObject *object,
- guint prop_id,
- const GValue *value,
- GParamSpec *pspec)
-{
- GdmGreeterServer *self;
-
- self = GDM_GREETER_SERVER (object);
-
- switch (prop_id) {
- case PROP_USER_NAME:
- _gdm_greeter_server_set_user_name (self, g_value_get_string (value));
- break;
- case PROP_GROUP_NAME:
- _gdm_greeter_server_set_group_name (self, g_value_get_string (value));
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ guint prop_id,
+ const GValue *value,
+ GParamSpec *pspec)
+{
+ GdmGreeterServer *self;
+
+ self = GDM_GREETER_SERVER (object);
+
+ switch (prop_id) {
+ case PROP_USER_NAME:
+ _gdm_greeter_server_set_user_name (self, g_value_get_string (value));
+ break;
+ case PROP_GROUP_NAME:
+ _gdm_greeter_server_set_group_name (self, g_value_get_string (value));
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static void
gdm_greeter_server_get_property (GObject *object,
- guint prop_id,
- GValue *value,
- GParamSpec *pspec)
-{
- GdmGreeterServer *self;
-
- self = GDM_GREETER_SERVER (object);
-
- switch (prop_id) {
- case PROP_USER_NAME:
- g_value_set_string (value, self->priv->user_name);
- break;
- case PROP_GROUP_NAME:
- g_value_set_string (value, self->priv->group_name);
- break;
- default:
- G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
- break;
- }
+ guint prop_id,
+ GValue *value,
+ GParamSpec *pspec)
+{
+ GdmGreeterServer *self;
+
+ self = GDM_GREETER_SERVER (object);
+
+ switch (prop_id) {
+ case PROP_USER_NAME:
+ g_value_set_string (value, self->priv->user_name);
+ break;
+ case PROP_GROUP_NAME:
+ g_value_set_string (value, self->priv->group_name);
+ break;
+ default:
+ G_OBJECT_WARN_INVALID_PROPERTY_ID (object, prop_id, pspec);
+ break;
+ }
}
static GObject *
gdm_greeter_server_constructor (GType type,
- guint n_construct_properties,
- GObjectConstructParam *construct_properties)
+ guint n_construct_properties,
+ GObjectConstructParam *construct_properties)
{
GdmGreeterServer *greeter_server;
GdmGreeterServerClass *klass;
@@ -726,8 +726,8 @@ gdm_greeter_server_constructor (GType type,
klass = GDM_GREETER_SERVER_CLASS (g_type_class_peek (GDM_TYPE_GREETER_SERVER));
greeter_server = GDM_GREETER_SERVER (G_OBJECT_CLASS (gdm_greeter_server_parent_class)->constructor (type,
- n_construct_properties,
- construct_properties));
+ n_construct_properties,
+ construct_properties));
return G_OBJECT (greeter_server);
}
@@ -735,136 +735,136 @@ gdm_greeter_server_constructor (GType type,
static void
gdm_greeter_server_class_init (GdmGreeterServerClass *klass)
{
- GObjectClass *object_class = G_OBJECT_CLASS (klass);
+ GObjectClass *object_class = G_OBJECT_CLASS (klass);
- object_class->get_property = gdm_greeter_server_get_property;
- object_class->set_property = gdm_greeter_server_set_property;
+ object_class->get_property = gdm_greeter_server_get_property;
+ object_class->set_property = gdm_greeter_server_set_property;
object_class->constructor = gdm_greeter_server_constructor;
- object_class->finalize = gdm_greeter_server_finalize;
-
- g_type_class_add_private (klass, sizeof (GdmGreeterServerPrivate));
-
- g_object_class_install_property (object_class,
- PROP_USER_NAME,
- g_param_spec_string ("user-name",
- "user name",
- "user name",
- "gdm",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
- g_object_class_install_property (object_class,
- PROP_GROUP_NAME,
- g_param_spec_string ("group-name",
- "group name",
- "group name",
- "gdm",
- G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
- signals [QUERY_ANSWER] =
- g_signal_new ("query-answer",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdmGreeterServerClass, query_answer),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
- signals [SESSION_SELECTED] =
- g_signal_new ("session-selected",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdmGreeterServerClass, session_selected),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
- signals [LANGUAGE_SELECTED] =
- g_signal_new ("language-selected",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdmGreeterServerClass, language_selected),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
- signals [USER_SELECTED] =
- g_signal_new ("user-selected",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdmGreeterServerClass, user_selected),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__STRING,
- G_TYPE_NONE,
- 1,
- G_TYPE_STRING);
- signals [CANCELLED] =
- g_signal_new ("cancelled",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdmGreeterServerClass, cancelled),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
- signals [CONNECTED] =
- g_signal_new ("connected",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdmGreeterServerClass, connected),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
- signals [DISCONNECTED] =
- g_signal_new ("disconnected",
- G_OBJECT_CLASS_TYPE (object_class),
- G_SIGNAL_RUN_FIRST,
- G_STRUCT_OFFSET (GdmGreeterServerClass, disconnected),
- NULL,
- NULL,
- g_cclosure_marshal_VOID__VOID,
- G_TYPE_NONE,
- 0);
+ object_class->finalize = gdm_greeter_server_finalize;
+
+ g_type_class_add_private (klass, sizeof (GdmGreeterServerPrivate));
+
+ g_object_class_install_property (object_class,
+ PROP_USER_NAME,
+ g_param_spec_string ("user-name",
+ "user name",
+ "user name",
+ "gdm",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ g_object_class_install_property (object_class,
+ PROP_GROUP_NAME,
+ g_param_spec_string ("group-name",
+ "group name",
+ "group name",
+ "gdm",
+ G_PARAM_READWRITE | G_PARAM_CONSTRUCT));
+ signals [QUERY_ANSWER] =
+ g_signal_new ("query-answer",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdmGreeterServerClass, query_answer),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+ signals [SESSION_SELECTED] =
+ g_signal_new ("session-selected",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdmGreeterServerClass, session_selected),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+ signals [LANGUAGE_SELECTED] =
+ g_signal_new ("language-selected",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdmGreeterServerClass, language_selected),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+ signals [USER_SELECTED] =
+ g_signal_new ("user-selected",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdmGreeterServerClass, user_selected),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__STRING,
+ G_TYPE_NONE,
+ 1,
+ G_TYPE_STRING);
+ signals [CANCELLED] =
+ g_signal_new ("cancelled",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdmGreeterServerClass, cancelled),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ signals [CONNECTED] =
+ g_signal_new ("connected",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdmGreeterServerClass, connected),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
+ signals [DISCONNECTED] =
+ g_signal_new ("disconnected",
+ G_OBJECT_CLASS_TYPE (object_class),
+ G_SIGNAL_RUN_FIRST,
+ G_STRUCT_OFFSET (GdmGreeterServerClass, disconnected),
+ NULL,
+ NULL,
+ g_cclosure_marshal_VOID__VOID,
+ G_TYPE_NONE,
+ 0);
}
static void
gdm_greeter_server_init (GdmGreeterServer *greeter_server)
{
- greeter_server->priv = GDM_GREETER_SERVER_GET_PRIVATE (greeter_server);
+ greeter_server->priv = GDM_GREETER_SERVER_GET_PRIVATE (greeter_server);
}
static void
gdm_greeter_server_finalize (GObject *object)
{
- GdmGreeterServer *greeter_server;
+ GdmGreeterServer *greeter_server;
- g_return_if_fail (object != NULL);
- g_return_if_fail (GDM_IS_GREETER_SERVER (object));
+ g_return_if_fail (object != NULL);
+ g_return_if_fail (GDM_IS_GREETER_SERVER (object));
- greeter_server = GDM_GREETER_SERVER (object);
+ greeter_server = GDM_GREETER_SERVER (object);
- g_return_if_fail (greeter_server->priv != NULL);
+ g_return_if_fail (greeter_server->priv != NULL);
- gdm_greeter_server_stop (greeter_server);
+ gdm_greeter_server_stop (greeter_server);
- G_OBJECT_CLASS (gdm_greeter_server_parent_class)->finalize (object);
+ G_OBJECT_CLASS (gdm_greeter_server_parent_class)->finalize (object);
}
GdmGreeterServer *
gdm_greeter_server_new (void)
{
- GObject *object;
+ GObject *object;
- object = g_object_new (GDM_TYPE_GREETER_SERVER,
- NULL);
+ object = g_object_new (GDM_TYPE_GREETER_SERVER,
+ NULL);
- return GDM_GREETER_SERVER (object);
+ return GDM_GREETER_SERVER (object);
}