+Overview of changes in lightdm 0.3.8
+
+ * liblightdm API change:
+ - ldm_greeter_start_authentication becomes ldm_greeter_login
+ - The existing ldm_greeter_login is now ldm_greeter_start_session
+ and the username parameter is not required.
+ * Add guest account logins
+
Overview of changes in lightdm 0.3.7
* Fix autologin broken in 0.3.3
ldm_user_get_name
ldm_user_get_real_name
ldm_user_get_display_name
+ldm_user_get_home_directory
ldm_user_get_image
ldm_user_get_language
ldm_user_get_layout
LdmUserClass
LdmUserPrivate
ldm_user_new
+ldm_user_set_name
+ldm_user_set_real_name
+ldm_user_set_home_directory
ldm_user_set_image
ldm_user_set_logged_in
-ldm_user_set_real_name
+ldm_user_update
</SECTION>
<SECTION>
ldm_greeter_set_layout
ldm_greeter_get_sessions
ldm_greeter_get_default_session
+ldm_greeter_get_has_guest_session
ldm_greeter_get_timed_login_user
ldm_greeter_get_timed_login_delay
ldm_greeter_cancel_timed_login
-ldm_greeter_start_authentication
+ldm_greeter_login
+ldm_greeter_login_as_guest
ldm_greeter_provide_secret
ldm_greeter_cancel_authentication
ldm_greeter_get_in_authentication
ldm_greeter_get_is_authenticated
ldm_greeter_get_authentication_user
-ldm_greeter_login
-ldm_greeter_login_with_defaults
+ldm_greeter_start_session
+ldm_greeter_start_session_with_defaults
ldm_greeter_get_can_suspend
ldm_greeter_suspend
ldm_greeter_get_can_hibernate
@Returns:
+<!-- ##### FUNCTION ldm_greeter_get_has_guest_session ##### -->
+<para>
+
+</para>
+
+@greeter:
+@Returns:
+
+
<!-- ##### FUNCTION ldm_greeter_get_timed_login_user ##### -->
<para>
@greeter:
-<!-- ##### FUNCTION ldm_greeter_start_authentication ##### -->
+<!-- ##### FUNCTION ldm_greeter_login ##### -->
<para>
</para>
@username:
+<!-- ##### FUNCTION ldm_greeter_login_as_guest ##### -->
+<para>
+
+</para>
+
+@greeter:
+
+
<!-- ##### FUNCTION ldm_greeter_provide_secret ##### -->
<para>
@Returns:
-<!-- ##### FUNCTION ldm_greeter_login ##### -->
+<!-- ##### FUNCTION ldm_greeter_start_session ##### -->
<para>
</para>
@greeter:
-@username:
@session:
@language:
-<!-- ##### FUNCTION ldm_greeter_login_with_defaults ##### -->
+<!-- ##### FUNCTION ldm_greeter_start_session_with_defaults ##### -->
<para>
</para>
@greeter:
-@username:
<!-- ##### FUNCTION ldm_greeter_get_can_suspend ##### -->
@Returns:
+<!-- ##### FUNCTION ldm_user_get_home_directory ##### -->
+<para>
+
+</para>
+
+@user:
+@Returns:
+
+
<!-- ##### FUNCTION ldm_user_get_image ##### -->
<para>
g_free (session);
}
- ldm_greeter_start_authentication (greeter, username);
+ ldm_greeter_login (greeter, username);
}
void user_treeview_row_activated_cb (GtkWidget *widget, GtkTreePath *path, GtkTreeViewColumn *column);
if (ldm_greeter_get_is_authenticated (greeter))
{
gchar *session = get_session ();
- ldm_greeter_login (greeter, ldm_greeter_get_authentication_user (greeter), session, NULL);
+ ldm_greeter_start_session (greeter, session, NULL);
g_free (session);
}
else
static void
timed_login_cb (LdmGreeter *greeter, const gchar *username)
{
- ldm_greeter_login (greeter, ldm_greeter_get_timed_login_user (greeter), NULL, NULL);
+ ldm_greeter_start_session (greeter, NULL, NULL); // FIXME: timed user is not authenticated...
}
void suspend_cb (GtkWidget *widget, LdmGreeter *greeter);
ui->feedbackLabel->setText(QString());
QModelIndex currentIndex = ui->userListView->currentIndex();
if (currentIndex.isValid()) {
- m_greeter->startAuthentication(currentIndex.data(QLightDM::UsersModel::NameRole).toString());
+ m_greeter->login(currentIndex.data(QLightDM::UsersModel::NameRole).toString());
}
}
void LoginPrompt::onAuthenticationComplete(bool success)
{
if (success) {
- m_greeter->loginWithDefaults(m_greeter->authenticationUser());
+ m_greeter->startSessionWithDefaults();
} else {
ui->feedbackLabel->setText("Sorry, you suck. Try again.");
}
private void username_activate_cb (Gtk.Entry entry)
{
username_entry.sensitive = false;
- greeter.start_authentication (username_entry.text);
+ greeter.login (username_entry.text);
}
private void password_activate_cb (Gtk.Entry entry)
username_entry.sensitive = true;
username_entry.grab_focus ();
if (greeter.is_authenticated)
- greeter.login (greeter.get_authentication_user (), null, null);
+ greeter.start_session_with_defaults ();
else
{
message_label.label = "Failed to authenticate";
private void timed_login_cb (LightDM.Greeter greeter, string username)
{
- greeter.login (greeter.get_timed_login_user (), null, null);
+ greeter.start_session_with_defaults (); // FIXME: timed user is not authenticated...
}
private void quit_cb (LightDM.Greeter greeter)
/*
- * Copyright (C) 2010 Robert Ancell.
+ * Copyright (C) 2010-2011 Robert Ancell.
* Author: Robert Ancell <robert.ancell@canonical.com>
*
* This program is free software: you can redistribute it and/or modify it under
{
/* Messages from the greeter to the server */
GREETER_MESSAGE_CONNECT = 1,
- GREETER_MESSAGE_START_AUTHENTICATION = 2,
- GREETER_MESSAGE_CONTINUE_AUTHENTICATION = 3,
- GREETER_MESSAGE_LOGIN = 4,
- GREETER_MESSAGE_CANCEL_AUTHENTICATION = 5,
- GREETER_MESSAGE_GET_USER_DEFAULTS = 6,
- GREETER_MESSAGE_LOGIN_AS_GUEST = 7,
+ GREETER_MESSAGE_LOGIN = 2,
+ GREETER_MESSAGE_LOGIN_AS_GUEST = 3,
+ GREETER_MESSAGE_CONTINUE_AUTHENTICATION = 4,
+ GREETER_MESSAGE_START_SESSION = 5,
+ GREETER_MESSAGE_CANCEL_AUTHENTICATION = 6,
+ GREETER_MESSAGE_GET_USER_DEFAULTS = 7,
/* Messages from the server to the greeter */
GREETER_MESSAGE_CONNECTED = 101,
GREETER_MESSAGE_QUIT = 102,
GREETER_MESSAGE_PROMPT_AUTHENTICATION = 103,
GREETER_MESSAGE_END_AUTHENTICATION = 104,
- GREETER_MESSAGE_USER_DEFAULTS = 106
+ GREETER_MESSAGE_USER_DEFAULTS = 106
} GreeterMessage;
#endif /* _GREETER_PROTOCOL_H_ */
}
/**
- * ldm_greeter_start_authentication:
+ * ldm_greeter_login:
* @greeter: A #LdmGreeter
* @username: A username
*
* Starts the authentication procedure for a user.
**/
void
-ldm_greeter_start_authentication (LdmGreeter *greeter, const char *username)
+ldm_greeter_login (LdmGreeter *greeter, const char *username)
{
g_return_if_fail (LDM_IS_GREETER (greeter));
g_return_if_fail (username != NULL);
g_free (greeter->priv->authentication_user);
greeter->priv->authentication_user = g_strdup (username);
g_debug ("Starting authentication for user %s...", username);
- write_header (greeter, GREETER_MESSAGE_START_AUTHENTICATION, string_length (username));
+ write_header (greeter, GREETER_MESSAGE_LOGIN, string_length (username));
write_string (greeter, username);
flush (greeter);
}
+/**
+ * ldm_greeter_login_as_guest:
+ * @greeter: A #LdmGreeter
+ *
+ * Starts the authentication procedure for the guest user.
+ **/
+void
+ldm_greeter_login_as_guest (LdmGreeter *greeter)
+{
+ g_return_if_fail (LDM_IS_GREETER (greeter));
+
+ greeter->priv->in_authentication = TRUE;
+ greeter->priv->is_authenticated = FALSE;
+ g_free (greeter->priv->authentication_user);
+ greeter->priv->authentication_user = NULL;
+ g_debug ("Starting authentication for guest account...");
+ write_header (greeter, GREETER_MESSAGE_LOGIN_AS_GUEST, 0);
+ flush (greeter);
+}
+
/**
* ldm_greeter_provide_secret:
* @greeter: A #LdmGreeter
}
/**
- * ldm_greeter_login:
+ * ldm_greeter_start_session:
* @greeter: A #LdmGreeter
- * @username: The user to log in as
* @session: (allow-none): The session to log into or NULL to use the default
* @language: (allow-none): The language to use or NULL to use the default
*
- * Login a user to a session.
+ * Start a session for the logged in user.
**/
void
-ldm_greeter_login (LdmGreeter *greeter, const gchar *username, const gchar *session, const gchar *language)
+ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session, const gchar *language)
{
g_return_if_fail (LDM_IS_GREETER (greeter));
- g_return_if_fail (username != NULL);
if (!session)
session = "";
if (!language)
language = "";
- g_debug ("Logging in as %s", username);
- write_header (greeter, GREETER_MESSAGE_LOGIN, string_length (username) + string_length (session) + string_length (language));
- write_string (greeter, username);
+ g_debug ("Starting session %s with language %s", session, language);
+ write_header (greeter, GREETER_MESSAGE_START_SESSION, string_length (session) + string_length (language));
write_string (greeter, session);
write_string (greeter, language);
flush (greeter);
}
/**
- * ldm_greeter_login_with_defaults:
+ * ldm_greeter_start_session_with_defaults:
* @greeter: A #LdmGreeter
- * @username: The user to log in as
*
* Login a user to a session using default settings for that user.
**/
void
-ldm_greeter_login_with_defaults (LdmGreeter *greeter, const gchar *username)
-{
- ldm_greeter_login (greeter, username, NULL, NULL);
-}
-
-/**
- * ldm_greeter_login_as_guest:
- * @greeter: A #LdmGreeter
- * @session: (allow-none): The session to log into or NULL to use the default
- * @language: (allow-none): The language to use or NULL to use the default
- *
- * Login a user into a guest session.
- **/
-void
-ldm_greeter_login_as_guest (LdmGreeter *greeter, const gchar *session, const gchar *language)
-{
- g_return_if_fail (LDM_IS_GREETER (greeter));
-
- if (!session)
- session = "";
- if (!language)
- language = "";
-
- g_debug ("Logging into guest account");
- write_header (greeter, GREETER_MESSAGE_LOGIN_AS_GUEST, string_length (session) + string_length (language));
- write_string (greeter, session);
- write_string (greeter, language);
- flush (greeter);
-}
-
-/**
- * ldm_greeter_login_as_guest_with_defaults:
- * @greeter: A #LdmGreeter
- *
- * Login a user into a guest session using default settings for that user.
- **/
-void
-ldm_greeter_login_as_guest_with_defaults (LdmGreeter *greeter)
+ldm_greeter_start_session_with_defaults (LdmGreeter *greeter)
{
- ldm_greeter_login_as_guest (greeter, NULL, NULL);
+ ldm_greeter_start_session (greeter, NULL, NULL);
}
static gboolean
public bool get_user_defaults (string username, out string language, out string layout, out string session);
public unowned GLib.List<weak LightDM.User> get_users ();
public void hibernate ();
- public void login (string username, string? session, string? language);
- public void login_with_defaults (string username);
+ public void start_session (string? session, string? language);
+ public void start_session_with_defaults ();
public void provide_secret (string secret);
public void restart ();
public void set_layout (string layout);
public void shutdown ();
- public void start_authentication (string username);
+ public void login (string username);
+ public void login_as_guest ();
public void suspend ();
public string authentication_user { get; }
public bool can_hibernate { get; }
void ldm_greeter_cancel_timed_login (LdmGreeter *greeter);
-void ldm_greeter_start_authentication (LdmGreeter *greeter, const char *username);
+void ldm_greeter_login (LdmGreeter *greeter, const char *username);
+
+void ldm_greeter_login_as_guest (LdmGreeter *greeter);
void ldm_greeter_provide_secret (LdmGreeter *greeter, const gchar *secret);
const gchar *ldm_greeter_get_authentication_user (LdmGreeter *greeter);
-void ldm_greeter_login (LdmGreeter *greeter, const gchar *username, const gchar *session, const gchar *language);
-
-void ldm_greeter_login_with_defaults (LdmGreeter *greeter, const gchar *username);
-
-void ldm_greeter_login_as_guest (LdmGreeter *greeter, const gchar *session, const gchar *language);
+void ldm_greeter_start_session (LdmGreeter *greeter, const gchar *session, const gchar *language);
-void ldm_greeter_login_as_guest_with_defaults (LdmGreeter *greeter);
+void ldm_greeter_start_session_with_defaults (LdmGreeter *greeter);
gboolean ldm_greeter_get_can_suspend (LdmGreeter *greeter);
{
/* Messages from the greeter to the server */
GREETER_MESSAGE_CONNECT = 1,
- GREETER_MESSAGE_START_AUTHENTICATION = 2,
- GREETER_MESSAGE_CONTINUE_AUTHENTICATION = 3,
- GREETER_MESSAGE_LOGIN = 4,
- GREETER_MESSAGE_CANCEL_AUTHENTICATION = 5,
- GREETER_MESSAGE_GET_USER_DEFAULTS = 6,
- GREETER_MESSAGE_LOGIN_AS_GUEST = 7,
+ GREETER_MESSAGE_LOGIN = 2,
+ GREETER_MESSAGE_LOGIN_AS_GUEST = 3,
+ GREETER_MESSAGE_CONTINUE_AUTHENTICATION = 4,
+ GREETER_MESSAGE_START_SESSION = 5,
+ GREETER_MESSAGE_CANCEL_AUTHENTICATION = 6,
+ GREETER_MESSAGE_GET_USER_DEFAULTS = 7,
/* Messages from the server to the greeter */
GREETER_MESSAGE_CONNECTED = 101,
flush();
}
-void Greeter::startAuthentication(const QString &username)
+void Greeter::login(const QString &username)
{
d->inAuthentication = true;
d->isAuthenticated = false;
d->authenticationUser = username;
qDebug() << "Starting authentication for user " << username << "...";
- writeHeader(GREETER_MESSAGE_START_AUTHENTICATION, stringLength(username));
+ writeHeader(GREETER_MESSAGE_LOGIN, stringLength(username));
writeString(username);
+ flush();
+}
+
+void Greeter::loginAsGuest()
+{
+ d->inAuthentication = true;
+ d->isAuthenticated = false;
+ d->authenticationUser = "";
+ qDebug() << "Starting authentication for guest account";
+ writeHeader(GREETER_MESSAGE_LOGIN_AS_GUEST, 0);
flush();
}
return d->authenticationUser;
}
-void Greeter::login(const QString &username, const QString &session, const QString &language)
+void Greeter::startSession(const QString &session, const QString &language)
{
- qDebug() << "Logging in as " << username << " for session " << session << " with language " << language;
- writeHeader(GREETER_MESSAGE_LOGIN, stringLength(username) + stringLength(session) + stringLength(language));
- writeString(username);
+ qDebug() << "Starting session " << session << " with language " << language;
+ writeHeader(GREETER_MESSAGE_START_SESSION, stringLength(session) + stringLength(language));
writeString(session);
writeString(language);
flush();
}
-void Greeter::loginWithDefaults(const QString &username)
-{
- login(username, NULL, NULL);
-}
-
-void Greeter::loginAsGuest(const QString &session, const QString &language)
-{
- qDebug() << "Logging into guest account for session " << session << " with language " << language;
- writeHeader(GREETER_MESSAGE_LOGIN_AS_GUEST, stringLength(session) + stringLength(language));
- writeString(session);
- writeString(language);
- flush();
-}
-
-void Greeter::loginAsGuestWithDefaults()
+void Greeter::startSessionWithDefaults()
{
- loginAsGuest(NULL, NULL);
+ startSession(NULL, NULL);
}
void Greeter::onRead(int fd)
void connectToServer();
void cancelTimedLogin();
- void startAuthentication(const QString &username);
+ void login(const QString &username);
+ void loginAsGuest();
void provideSecret(const QString &secret);
void cancelAuthentication();
- void login(const QString &username, const QString &session, const QString &language);
- void loginWithDefaults(const QString &username);
- void loginAsGuest(const QString &session, const QString &language);
- void loginAsGuestWithDefaults();
+ void startSession(const QString &session, const QString &language);
+ void startSessionWithDefaults();
bool canSuspend() const;
bool canHibernate() const;
start_default_session (Display *display, const gchar *session, const gchar *language)
{
/* Don't need to check authentication, just authorize */
+ // FIXME: Not correct, should use lightdm-autologin pam session
if (display->priv->user_pam_session)
pam_session_end (display->priv->user_pam_session);
display->priv->user_pam_session = pam_session_new (display->priv->pam_service, display->priv->default_user);
pam_session_authorize (display->priv->user_pam_session);
display->priv->user_ck_cookie = start_ck_session (display, "", pam_session_get_username (display->priv->user_pam_session));
- start_user_session (display, session, language);
+ start_user_session (display, session, language);
}
static gboolean
}
static void
-greeter_login_cb (Greeter *greeter, const gchar *username, const gchar *session, const gchar *language, Display *display)
+greeter_start_session_cb (Greeter *greeter, const gchar *session, const gchar *language, Display *display)
{
/* Default session requested */
if (strcmp (session, "") == 0)
display->priv->user_pam_session = greeter_get_pam_session (greeter);
display->priv->user_ck_cookie = start_ck_session (display, "", pam_session_get_username (display->priv->user_pam_session));
- if (display->priv->default_user && strcmp (username, display->priv->default_user) == 0)
- start_default_session (display, session, language);
- else if (display->priv->user_pam_session &&
- pam_session_get_in_session (display->priv->user_pam_session) &&
- strcmp (username, pam_session_get_username (display->priv->user_pam_session)) == 0)
- start_user_session (display, session, language);
- else
+ if (!display->priv->user_pam_session ||
+ !pam_session_get_in_session (display->priv->user_pam_session))
{
g_warning ("Ignoring request for login with unauthenticated user");
return;
}
+ start_user_session (display, session, language);
+
/* Stop session, waiting for user session to indicate it is ready (if supported) */
// FIXME: Hard-coded timeout
// FIXME: Greeter quit timeout
greeter_quit (display->priv->greeter_session);
}
-static void
-greeter_login_as_guest_cb (Greeter *greeter, const gchar *session, const gchar *language, Display *display)
-{
- //gchar *username;
-
- // FIXME: Create a guest session
-
- //greeter_login_cb (greeter, username, session, language, display);
-}
-
static void
greeter_quit_cb (Greeter *greeter, Display *display)
{
greeter_set_default_user (display->priv->greeter_session, display->priv->default_user, display->priv->timeout);
greeter_set_layout (display->priv->greeter_session, display->priv->default_layout);
greeter_set_session (display->priv->greeter_session, display->priv->default_session);
- g_signal_connect (G_OBJECT (display->priv->greeter_session), "login", G_CALLBACK (greeter_login_cb), display);
- g_signal_connect (G_OBJECT (display->priv->greeter_session), "login-as-guest", G_CALLBACK (greeter_login_as_guest_cb), display);
+ g_signal_connect (G_OBJECT (display->priv->greeter_session), "start-session", G_CALLBACK (greeter_start_session_cb), display);
g_signal_connect (G_OBJECT (display->priv->greeter_session), "quit", G_CALLBACK (greeter_quit_cb), display);
session_set_username (SESSION (display->priv->greeter_session), username);
session_set_command (SESSION (display->priv->greeter_session), command);
{
/* Messages from the greeter to the server */
GREETER_MESSAGE_CONNECT = 1,
- GREETER_MESSAGE_START_AUTHENTICATION = 2,
- GREETER_MESSAGE_CONTINUE_AUTHENTICATION = 3,
- GREETER_MESSAGE_LOGIN = 4,
- GREETER_MESSAGE_CANCEL_AUTHENTICATION = 5,
- GREETER_MESSAGE_GET_USER_DEFAULTS = 6,
- GREETER_MESSAGE_LOGIN_AS_GUEST = 7,
+ GREETER_MESSAGE_LOGIN = 2,
+ GREETER_MESSAGE_LOGIN_AS_GUEST = 3,
+ GREETER_MESSAGE_CONTINUE_AUTHENTICATION = 4,
+ GREETER_MESSAGE_START_SESSION = 5,
+ GREETER_MESSAGE_CANCEL_AUTHENTICATION = 6,
+ GREETER_MESSAGE_GET_USER_DEFAULTS = 7,
/* Messages from the server to the greeter */
GREETER_MESSAGE_CONNECTED = 101,
#define GREETER_QUIT_TIMEOUT 1000
enum {
- LOGIN,
- LOGIN_AS_GUEST,
+ START_SESSION,
QUIT,
LAST_SIGNAL
};
}
static void
-handle_start_authentication (Greeter *greeter, const gchar *username)
+handle_login (Greeter *greeter, const gchar *username)
{
GError *error = NULL;
g_warning ("Failed to start authentication: %s", error->message);
}
+static void
+handle_login_as_guest (Greeter *greeter)
+{
+#if 0
+ GError *error = NULL;
+
+ // FIXME
+ //if (greeter->priv->user_session)
+ // return;
+
+ /* Abort existing authentication */
+ if (greeter->priv->pam_session)
+ {
+ g_signal_handlers_disconnect_matched (greeter->priv->pam_session, G_SIGNAL_MATCH_DATA, 0, 0, NULL, NULL, greeter);
+ pam_session_end (greeter->priv->pam_session);
+ g_object_unref (greeter->priv->pam_session);
+ }
+
+ // FIXME: Create guest account
+
+ g_debug ("Greeter start authentication for guest account");
+
+ greeter->priv->pam_session = pam_session_new ("lightdm"/*FIXMEgreeter->priv->pam_service*/, username);
+ g_signal_connect (G_OBJECT (greeter->priv->pam_session), "got-messages", G_CALLBACK (pam_messages_cb), greeter);
+ g_signal_connect (G_OBJECT (greeter->priv->pam_session), "authentication-result", G_CALLBACK (authenticate_result_cb), greeter);
+
+ if (!pam_session_start (greeter->priv->pam_session, &error))
+ g_warning ("Failed to start authentication: %s", error->message);
+#endif
+}
+
static void
handle_continue_authentication (Greeter *greeter, gchar **secrets)
{
}
static void
-handle_login (Greeter *greeter, gchar *username, gchar *session, gchar *language)
+handle_start_session (Greeter *greeter, gchar *session, gchar *language)
{
/*if (greeter->priv->user_session != NULL)
{
return;
}*/
- g_debug ("Greeter login for user %s on session %s", username, session);
+ g_debug ("Greeter start session %s with language", session, language);
- g_signal_emit (greeter, signals[LOGIN], 0, username, session, language);
-}
-
-static void
-handle_guest_login (Greeter *greeter, gchar *session, gchar *language)
-{
- /*if (greeter->priv->user_session != NULL)
- {
- g_warning ("Ignoring request to log in when already logged in");
- return;
- }*/
-
- g_debug ("Greeter login to guest account on session %s", session);
-
- g_signal_emit (greeter, signals[LOGIN_AS_GUEST], 0, session, language);
+ g_signal_emit (greeter, signals[START_SESSION], 0, session, language);
}
static void
case GREETER_MESSAGE_CONNECT:
handle_connect (greeter);
break;
- case GREETER_MESSAGE_START_AUTHENTICATION:
+ case GREETER_MESSAGE_LOGIN:
username = read_string (greeter, &offset);
- handle_start_authentication (greeter, username);
+ handle_login (greeter, username);
g_free (username);
break;
+ case GREETER_MESSAGE_LOGIN_AS_GUEST:
+ handle_login_as_guest (greeter);
+ break;
case GREETER_MESSAGE_CONTINUE_AUTHENTICATION:
n_secrets = read_int (greeter, &offset);
secrets = g_malloc (sizeof (gchar *) * (n_secrets + 1));
case GREETER_MESSAGE_CANCEL_AUTHENTICATION:
handle_cancel_authentication (greeter);
break;
- case GREETER_MESSAGE_LOGIN:
- username = read_string (greeter, &offset);
+ case GREETER_MESSAGE_START_SESSION:
session_name = read_string (greeter, &offset);
language = read_string (greeter, &offset);
- handle_login (greeter, username, session_name, language);
- g_free (username);
+ handle_start_session (greeter, session_name, language);
g_free (session_name);
g_free (language);
break;
- case GREETER_MESSAGE_LOGIN_AS_GUEST:
- session_name = read_string (greeter, &offset);
- language = read_string (greeter, &offset);
- handle_guest_login (greeter, session_name, language);
- g_free (session_name);
- g_free (language);
case GREETER_MESSAGE_GET_USER_DEFAULTS:
username = read_string (greeter, &offset);
handle_get_user_defaults (greeter, username);
object_class->finalize = greeter_finalize;
- signals[LOGIN] =
- g_signal_new ("login",
- G_TYPE_FROM_CLASS (klass),
- G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GreeterClass, login),
- NULL, NULL,
- ldm_marshal_VOID__STRING_STRING_STRING,
- G_TYPE_NONE, 3, G_TYPE_STRING, G_TYPE_STRING, G_TYPE_STRING);
- signals[LOGIN_AS_GUEST] =
- g_signal_new ("login-as-guest",
+ signals[START_SESSION] =
+ g_signal_new ("start-session",
G_TYPE_FROM_CLASS (klass),
G_SIGNAL_RUN_LAST,
- G_STRUCT_OFFSET (GreeterClass, login_as_guest),
+ G_STRUCT_OFFSET (GreeterClass, start_session),
NULL, NULL,
ldm_marshal_VOID__STRING_STRING,
G_TYPE_NONE, 2, G_TYPE_STRING, G_TYPE_STRING);
typedef struct
{
SessionClass parent_class;
- void (*login)(Greeter *greeter, const gchar *username, const gchar *session, const gchar *language);
- void (*login_as_guest)(Greeter *greeter, const gchar *session, const gchar *language);
+ void (*start_session)(Greeter *greeter, const gchar *session, const gchar *language);
void (*quit)(Greeter *greeter);
} GreeterClass;
VOID:INT,POINTER
VOID:OBJECT,BOOLEAN
VOID:STRING,STRING
-VOID:STRING,STRING,STRING