diff options
author | Robert Ancell <robert.ancell@canonical.com> | 2018-01-17 16:45:54 +1300 |
---|---|---|
committer | Robert Ancell <robert.ancell@canonical.com> | 2018-01-17 16:45:54 +1300 |
commit | d96600f3bcde7e120389effd8b145980c6e8757f (patch) | |
tree | 42ca66565b778989c86fc728613bd3ed5cb52bf6 /liblightdm-gobject/greeter.c | |
parent | 491bea8d41638478be477e72fb21f30f886a4d10 (diff) | |
download | lightdm-git-d96600f3bcde7e120389effd8b145980c6e8757f.tar.gz |
Move liblightdm variable declarations from the start of files.
Diffstat (limited to 'liblightdm-gobject/greeter.c')
-rw-r--r-- | liblightdm-gobject/greeter.c | 384 |
1 files changed, 130 insertions, 254 deletions
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c index 531a507a..21b43739 100644 --- a/liblightdm-gobject/greeter.c +++ b/liblightdm-gobject/greeter.c @@ -31,34 +31,34 @@ * { * GMainLoop *main_loop; * LightDMGreeter *greeter - * + * * main_loop = g_main_loop_new (); - * + * * greeter = lightdm_greeter_new (); * g_object_connect (greeter, "show-prompt", G_CALLBACK (show_prompt_cb), NULL); * g_object_connect (greeter, "authentication-complete", G_CALLBACK (authentication_complete_cb), NULL); - * + * * // Connect to LightDM daemon * if (!lightdm_greeter_connect_to_daemon_sync (greeter, NULL)) * return EXIT_FAILURE; - * + * * // Start authentication * lightdm_greeter_authenticate (greeter, NULL); - * + * * g_main_loop_run (main_loop); - * + * * return EXIT_SUCCESS; * } - * + * * static void show_prompt_cb (LightDMGreeter *greeter, const char *text, LightDMPromptType type) * { * // Show the user the message and prompt for some response * gchar *secret = prompt_user (text, type); - * + * * // Give the result to the user * lightdm_greeter_respond (greeter, response); * } - * + * * static void authentication_complete_cb (LightDMGreeter *greeter) * { * // Start the session @@ -236,7 +236,7 @@ lightdm_greeter_error_get_type (void) { LIGHTDM_GREETER_ERROR_CONNECTION_FAILED, "LIGHTDM_GREETER_ERROR_CONNECTION_FAILED", "connection-failed" }, { LIGHTDM_GREETER_ERROR_SESSION_FAILED, "LIGHTDM_GREETER_ERROR_SESSION_FAILED", "session-failed" }, { LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN, "LIGHTDM_GREETER_ERROR_NO_AUTOLOGIN", "no-autologin" }, - { LIGHTDM_GREETER_ERROR_INVALID_USER, "LIGHTDM_GREETER_ERROR_INVALID_USER", "invalid-user" }, + { LIGHTDM_GREETER_ERROR_INVALID_USER, "LIGHTDM_GREETER_ERROR_INVALID_USER", "invalid-user" }, { 0, NULL, NULL } }; enum_type = g_enum_register_static (g_intern_static_string ("LightDMGreeterError"), values); @@ -249,7 +249,7 @@ GType lightdm_prompt_type_get_type (void) { static GType enum_type = 0; - + if (G_UNLIKELY(enum_type == 0)) { static const GEnumValue values[] = { { LIGHTDM_PROMPT_TYPE_QUESTION, "LIGHTDM_PROMPT_TYPE_QUESTION", "question" }, @@ -266,7 +266,7 @@ GType lightdm_message_type_get_type (void) { static GType enum_type = 0; - + if (G_UNLIKELY(enum_type == 0)) { static const GEnumValue values[] = { { LIGHTDM_MESSAGE_TYPE_INFO, "LIGHTDM_MESSAGE_TYPE_INFO", "info" }, @@ -304,11 +304,9 @@ lightdm_greeter_new (void) void lightdm_greeter_set_resettable (LightDMGreeter *greeter, gboolean resettable) { - LightDMGreeterPrivate *priv; - g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_if_fail (!priv->connected); priv->resettable = resettable; @@ -317,9 +315,7 @@ lightdm_greeter_set_resettable (LightDMGreeter *greeter, gboolean resettable) static Request * request_new (LightDMGreeter *greeter, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { - Request *request; - - request = g_object_new (request_get_type (), NULL); + Request *request = g_object_new (request_get_type (), NULL); request->greeter = greeter; if (cancellable) request->cancellable = g_object_ref (cancellable); @@ -393,7 +389,6 @@ static gboolean write_string (guint8 *buffer, gint buffer_length, const gchar *value, gsize *offset, GError **error) { gint length = 0; - if (value) length = strlen (value); if (!write_int (buffer, buffer_length, length, offset, error)) @@ -414,17 +409,14 @@ write_string (guint8 *buffer, gint buffer_length, const gchar *value, gsize *off static guint32 read_int (guint8 *message, gsize message_length, gsize *offset) { - guint32 value; - guint8 *buffer; - if (message_length - *offset < int_length ()) { g_warning ("Not enough space for int, need %i, got %zi", int_length (), message_length - *offset); return 0; } - buffer = message + *offset; - value = buffer[0] << 24 | buffer[1] << 16 | buffer[2] << 8 | buffer[3]; + const guint8 *buffer = message + *offset; + guint32 value = buffer[0] << 24 | buffer[1] << 16 | buffer[2] << 8 | buffer[3]; *offset += int_length (); return value; @@ -433,17 +425,14 @@ read_int (guint8 *message, gsize message_length, gsize *offset) static gchar * read_string (guint8 *message, gsize message_length, gsize *offset) { - guint32 length; - gchar *value; - - length = read_int (message, message_length, offset); + guint32 length = read_int (message, message_length, offset); if (message_length - *offset < length) { g_warning ("Not enough space for string, need %u, got %zu", length, message_length - *offset); return g_strdup (""); } - value = g_malloc (sizeof (gchar) * (length + 1)); + gchar *value = g_malloc (sizeof (gchar) * (length + 1)); memcpy (value, message + *offset, length); value[length] = '\0'; *offset += length; @@ -478,15 +467,14 @@ static gboolean connect_to_daemon (LightDMGreeter *greeter, GError **error) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - const gchar *to_server_fd, *from_server_fd, *pipe_path; if (priv->to_server_channel || priv->from_server_channel) return TRUE; - /* Use private connection if one exists */ - to_server_fd = g_getenv ("LIGHTDM_TO_SERVER_FD"); - from_server_fd = g_getenv ("LIGHTDM_FROM_SERVER_FD"); - pipe_path = g_getenv ("LIGHTDM_GREETER_PIPE"); + /* Use private connection if one exists */ + const gchar *to_server_fd = g_getenv ("LIGHTDM_TO_SERVER_FD"); + const gchar *from_server_fd = g_getenv ("LIGHTDM_FROM_SERVER_FD"); + const gchar *pipe_path = g_getenv ("LIGHTDM_GREETER_PIPE"); if (to_server_fd && from_server_fd) { priv->to_server_channel = g_io_channel_unix_new (atoi (to_server_fd)); @@ -494,17 +482,12 @@ connect_to_daemon (LightDMGreeter *greeter, GError **error) } else if (pipe_path) { - GSocketAddress *address; - gboolean result; - priv->socket = g_socket_new (G_SOCKET_FAMILY_UNIX, G_SOCKET_TYPE_STREAM, G_SOCKET_PROTOCOL_DEFAULT, error); if (!priv->socket) return FALSE; - address = g_unix_socket_address_new (pipe_path); - result = g_socket_connect (priv->socket, address, NULL, error); - g_object_unref (address); - if (!result) + g_autoptr(GSocketAddress) address = g_unix_socket_address_new (pipe_path); + if (!g_socket_connect (priv->socket, address, NULL, error)) return FALSE; priv->from_server_channel = g_io_channel_unix_new (g_socket_get_fd (priv->socket)); @@ -530,10 +513,6 @@ static gboolean send_message (LightDMGreeter *greeter, guint8 *message, gsize message_length, GError **error) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - gchar *data; - gsize data_length; - guint32 stated_length; - g_autoptr(GError) flush_error = NULL; if (!connect_to_daemon (greeter, error)) return FALSE; @@ -543,7 +522,7 @@ send_message (LightDMGreeter *greeter, guint8 *message, gsize message_length, GE rest. If we say we're sending less than we do, we confuse the heck out of lightdm, as it starts reading headers from the middle of our messages. */ - stated_length = HEADER_SIZE + get_message_length (message, message_length); + guint32 stated_length = HEADER_SIZE + get_message_length (message, message_length); if (stated_length != message_length) { g_set_error (error, LIGHTDM_GREETER_ERROR, LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR, @@ -552,28 +531,27 @@ send_message (LightDMGreeter *greeter, guint8 *message, gsize message_length, GE return FALSE; } - data = (gchar *) message; - data_length = message_length; + gchar *data = (gchar *) message; + gsize data_length = message_length; while (data_length > 0) { - GIOStatus status; gsize n_written; g_autoptr(GError) write_error = NULL; - - status = g_io_channel_write_chars (priv->to_server_channel, data, data_length, &n_written, &write_error); + GIOStatus status = g_io_channel_write_chars (priv->to_server_channel, data, data_length, &n_written, &write_error); if (write_error) g_set_error (error, LIGHTDM_GREETER_ERROR, LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR, "Failed to write to daemon: %s", write_error->message); - if (status == G_IO_STATUS_AGAIN) + if (status == G_IO_STATUS_AGAIN) continue; - if (status != G_IO_STATUS_NORMAL) + if (status != G_IO_STATUS_NORMAL) return FALSE; data_length -= n_written; data += n_written; } g_debug ("Wrote %zi bytes to daemon", message_length); + g_autoptr(GError) flush_error = NULL; if (!g_io_channel_flush (priv->to_server_channel, &flush_error)) { g_set_error (error, LIGHTDM_GREETER_ERROR, LIGHTDM_GREETER_ERROR_COMMUNICATION_ERROR, @@ -589,46 +567,34 @@ static void handle_connected (LightDMGreeter *greeter, gboolean v2, guint8 *message, gsize message_length, gsize *offset) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - g_autoptr(GString) debug_string = NULL; int timeout; Request *request; - debug_string = g_string_new ("Connected"); + g_autoptr(GString) debug_string = g_string_new ("Connected"); if (v2) { - guint32 i, n_env; - gchar *version; - priv->api_version = read_int (message, message_length, offset); g_string_append_printf (debug_string, " api=%u", priv->api_version); - version = read_string (message, message_length, offset); + g_autofree gchar *version = read_string (message, message_length, offset); g_string_append_printf (debug_string, " version=%s", version); - g_free (version); - n_env = read_int (message, message_length, offset); - for (i = 0; i < n_env; i++) + guint32 n_env = read_int (message, message_length, offset); + for (guint32 i = 0; i < n_env; i++) { - gchar *name, *value; - - name = read_string (message, message_length, offset); - value = read_string (message, message_length, offset); + gchar *name = read_string (message, message_length, offset); + gchar *value = read_string (message, message_length, offset); g_hash_table_insert (priv->hints, name, value); g_string_append_printf (debug_string, " %s=%s", name, value); } } else { - gchar *version; - priv->api_version = 0; - version = read_string (message, message_length, offset); + g_autofree gchar *version = read_string (message, message_length, offset); g_string_append_printf (debug_string, " version=%s", version); - g_free (version); while (*offset < message_length) { - gchar *name, *value; - - name = read_string (message, message_length, offset); - value = read_string (message, message_length, offset); + gchar *name = read_string (message, message_length, offset); + gchar *value = read_string (message, message_length, offset); g_hash_table_insert (priv->hints, name, value); g_string_append_printf (debug_string, " %s=%s", name, value); } @@ -660,10 +626,8 @@ static void handle_prompt_authentication (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - guint32 sequence_number, n_messages, i; - gchar *username; - sequence_number = read_int (message, message_length, offset); + guint32 sequence_number = read_int (message, message_length, offset); if (sequence_number != priv->authenticate_sequence_number) { g_debug ("Ignoring prompt authentication with invalid sequence number %d", sequence_number); @@ -677,29 +641,26 @@ handle_prompt_authentication (LightDMGreeter *greeter, guint8 *message, gsize me } /* Update username */ - username = read_string (message, message_length, offset); + g_autofree gchar *username = read_string (message, message_length, offset); if (strcmp (username, "") == 0) { g_free (username); username = NULL; } g_free (priv->authentication_user); - priv->authentication_user = username; + priv->authentication_user = g_steal_pointer (&username); g_list_free_full (priv->responses_received, g_free); priv->responses_received = NULL; priv->n_responses_waiting = 0; - n_messages = read_int (message, message_length, offset); + guint32 n_messages = read_int (message, message_length, offset); g_debug ("Prompt user with %d message(s)", n_messages); - for (i = 0; i < n_messages; i++) + for (guint32 i = 0; i < n_messages; i++) { - int style; - gchar *text; - - style = read_int (message, message_length, offset); - text = read_string (message, message_length, offset); + int style = read_int (message, message_length, offset); + g_autofree gchar *text = read_string (message, message_length, offset); // FIXME: Should stop on prompts? switch (style) @@ -719,8 +680,6 @@ handle_prompt_authentication (LightDMGreeter *greeter, guint8 *message, gsize me g_signal_emit (G_OBJECT (greeter), signals[SHOW_MESSAGE], 0, text, LIGHTDM_MESSAGE_TYPE_INFO); break; } - - g_free (text); } } @@ -728,19 +687,16 @@ static void handle_end_authentication (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - guint32 sequence_number, return_code; - gchar *username; - - sequence_number = read_int (message, message_length, offset); + guint32 sequence_number = read_int (message, message_length, offset); if (sequence_number != priv->authenticate_sequence_number) { g_debug ("Ignoring end authentication with invalid sequence number %d", sequence_number); return; } - username = read_string (message, message_length, offset); - return_code = read_int (message, message_length, offset); + g_autofree gchar *username = read_string (message, message_length, offset); + guint32 return_code = read_int (message, message_length, offset); g_debug ("Authentication complete for user %s with return code %d", username, return_code); @@ -751,7 +707,7 @@ handle_end_authentication (LightDMGreeter *greeter, guint8 *message, gsize messa username = NULL; } g_free (priv->authentication_user); - priv->authentication_user = username; + priv->authentication_user = g_steal_pointer (&username); priv->cancelling_authentication = FALSE; priv->is_authenticated = (return_code == 0); @@ -770,17 +726,14 @@ static void handle_reset (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - g_autoptr(GString) hint_string = NULL; g_hash_table_remove_all (priv->hints); - hint_string = g_string_new (""); + g_autoptr(GString) hint_string = g_string_new (""); while (*offset < message_length) { - gchar *name, *value; - - name = read_string (message, message_length, offset); - value = read_string (message, message_length, offset); + gchar *name = read_string (message, message_length, offset); + gchar *value = read_string (message, message_length, offset); g_hash_table_insert (priv->hints, name, value); g_string_append_printf (hint_string, " %s=%s", name, value); } @@ -794,15 +747,12 @@ static void handle_session_result (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - Request *request; /* Notify asynchronous caller */ - request = g_list_nth_data (priv->start_session_requests, 0); + Request *request = g_list_nth_data (priv->start_session_requests, 0); if (request) { - guint32 return_code; - - return_code = read_int (message, message_length, offset); + guint32 return_code = read_int (message, message_length, offset); if (return_code == 0) request->result = TRUE; else @@ -818,10 +768,9 @@ static void handle_shared_dir_result (LightDMGreeter *greeter, guint8 *message, gsize message_length, gsize *offset) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - Request *request; /* Notify asynchronous caller */ - request = g_list_nth_data (priv->ensure_shared_data_dir_requests, 0); + Request *request = g_list_nth_data (priv->ensure_shared_data_dir_requests, 0); if (request) { request->dir = read_string (message, message_length, offset); @@ -843,9 +792,7 @@ static void handle_message (LightDMGreeter *greeter, guint8 *message, gsize message_length) { gsize offset = 0; - guint32 id; - - id = read_int (message, message_length, &offset); + guint32 id = read_int (message, message_length, &offset); read_int (message, message_length, &offset); switch (id) { @@ -883,22 +830,20 @@ static gboolean recv_message (LightDMGreeter *greeter, gboolean block, guint8 **message, gsize *length, GError **error) { LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - gsize n_to_read, n_read; if (!connect_to_daemon (greeter, error)) return FALSE; /* Read the header, or the whole message if we already have that */ - n_to_read = HEADER_SIZE; + gsize n_to_read = HEADER_SIZE; if (priv->n_read >= HEADER_SIZE) n_to_read += get_message_length (priv->read_buffer, priv->n_read); do { - GIOStatus status; + gsize n_read; g_autoptr(GError) read_error = NULL; - - status = g_io_channel_read_chars (priv->from_server_channel, + GIOStatus status = g_io_channel_read_chars (priv->from_server_channel, (gchar *) priv->read_buffer + priv->n_read, n_to_read - priv->n_read, &n_read, @@ -959,11 +904,11 @@ static gboolean from_server_cb (GIOChannel *source, GIOCondition condition, gpointer data) { LightDMGreeter *greeter = data; + + /* Read one message and process it */ g_autofree guint8 *message = NULL; gsize message_length; g_autoptr(GError) error = NULL; - - /* Read one message and process it */ if (!recv_message (greeter, FALSE, &message, &message_length, &error)) { // FIXME: Should push this up to the client somehow @@ -980,10 +925,9 @@ from_server_cb (GIOChannel *source, GIOCondition condition, gpointer data) static gboolean send_connect (LightDMGreeter *greeter, gboolean resettable, GError **error) { + g_debug ("Connecting to display manager..."); guint8 message[MAX_MESSAGE_LENGTH]; gsize offset = 0; - - g_debug ("Connecting to display manager..."); return write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_CONNECT, string_length (VERSION) + int_length () * 2, &offset, error) && write_string (message, MAX_MESSAGE_LENGTH, VERSION, &offset, error) && write_int (message, MAX_MESSAGE_LENGTH, resettable ? 1 : 0, &offset, error) && @@ -994,14 +938,13 @@ send_connect (LightDMGreeter *greeter, gboolean resettable, GError **error) static gboolean send_start_session (LightDMGreeter *greeter, const gchar *session, GError **error) { - guint8 message[MAX_MESSAGE_LENGTH]; - gsize offset = 0; - if (session) g_debug ("Starting session %s", session); else g_debug ("Starting default session"); + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; return write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_START_SESSION, string_length (session), &offset, error) && write_string (message, MAX_MESSAGE_LENGTH, session, &offset, error) && send_message (greeter, message, offset, error); @@ -1010,11 +953,10 @@ send_start_session (LightDMGreeter *greeter, const gchar *session, GError **erro static gboolean send_ensure_shared_data_dir (LightDMGreeter *greeter, const gchar *username, GError **error) { - guint8 message[MAX_MESSAGE_LENGTH]; - gsize offset = 0; - g_debug ("Ensuring data directory for user %s", username); + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; return write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_ENSURE_SHARED_DIR, string_length (username), &offset, error) && write_string (message, MAX_MESSAGE_LENGTH, username, &offset, error) && send_message (greeter, message, offset, error); @@ -1036,15 +978,12 @@ send_ensure_shared_data_dir (LightDMGreeter *greeter, const gchar *username, GEr void lightdm_greeter_connect_to_daemon (LightDMGreeter *greeter, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { - LightDMGreeterPrivate *priv; - Request *request; - GError *error = NULL; - g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - request = request_new (greeter, cancellable, callback, user_data); + Request *request = request_new (greeter, cancellable, callback, user_data); + GError *error = NULL; if (send_connect (greeter, priv->resettable, &error)) priv->connect_requests = g_list_append (priv->connect_requests, request); else @@ -1068,10 +1007,9 @@ lightdm_greeter_connect_to_daemon (LightDMGreeter *greeter, GCancellable *cancel gboolean lightdm_greeter_connect_to_daemon_finish (LightDMGreeter *greeter, GAsyncResult *result, GError **error) { - Request *request = REQUEST (result); - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); + Request *request = REQUEST (result); if (request->error) g_propagate_error (error, request->error); return request->result; @@ -1089,27 +1027,22 @@ lightdm_greeter_connect_to_daemon_finish (LightDMGreeter *greeter, GAsyncResult gboolean lightdm_greeter_connect_to_daemon_sync (LightDMGreeter *greeter, GError **error) { - LightDMGreeterPrivate *priv; - Request *request; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); /* Read until we are connected */ if (!send_connect (greeter, priv->resettable, error)) return FALSE; - request = request_new (greeter, NULL, NULL, NULL); + Request *request = request_new (greeter, NULL, NULL, NULL); priv->connect_requests = g_list_append (priv->connect_requests, g_object_ref (request)); do { - guint8 *message; + g_autofree guint8 *message = NULL; gsize message_length; - if (!recv_message (greeter, TRUE, &message, &message_length, error)) return FALSE; handle_message (greeter, message, message_length); - g_free (message); } while (!request->complete); return lightdm_greeter_connect_to_daemon_finish (greeter, G_ASYNC_RESULT (request), error); @@ -1163,6 +1096,13 @@ lightdm_greeter_get_default_session_hint (LightDMGreeter *greeter) return lightdm_greeter_get_hint (greeter, "default-session"); } +static gboolean +get_boolean_hint (LightDMGreeter *greeter, const gchar *name) +{ + const gchar *value = lightdm_greeter_get_hint (greeter, name); + return g_strcmp0 (value, "true") == 0; +} + /** * lightdm_greeter_get_hide_users_hint: * @greeter: A #LightDMGreeter @@ -1180,12 +1120,8 @@ lightdm_greeter_get_default_session_hint (LightDMGreeter *greeter) gboolean lightdm_greeter_get_hide_users_hint (LightDMGreeter *greeter) { - const gchar *value; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - value = lightdm_greeter_get_hint (greeter, "hide-users"); - - return g_strcmp0 (value, "true") == 0; + return get_boolean_hint (greeter, "hide-users"); } /** @@ -1202,12 +1138,8 @@ lightdm_greeter_get_hide_users_hint (LightDMGreeter *greeter) gboolean lightdm_greeter_get_show_manual_login_hint (LightDMGreeter *greeter) { - const gchar *value; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - value = lightdm_greeter_get_hint (greeter, "show-manual-login"); - - return g_strcmp0 (value, "true") == 0; + return get_boolean_hint (greeter, "show-manual-login"); } /** @@ -1222,12 +1154,8 @@ lightdm_greeter_get_show_manual_login_hint (LightDMGreeter *greeter) gboolean lightdm_greeter_get_show_remote_login_hint (LightDMGreeter *greeter) { - const gchar *value; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - value = lightdm_greeter_get_hint (greeter, "show-remote-login"); - - return g_strcmp0 (value, "true") == 0; + return get_boolean_hint (greeter, "show-remote-login"); } /** @@ -1241,12 +1169,8 @@ lightdm_greeter_get_show_remote_login_hint (LightDMGreeter *greeter) gboolean lightdm_greeter_get_lock_hint (LightDMGreeter *greeter) { - const gchar *value; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - value = lightdm_greeter_get_hint (greeter, "lock-screen"); - - return g_strcmp0 (value, "true") == 0; + return get_boolean_hint (greeter, "lock-screen"); } /** @@ -1294,12 +1218,8 @@ lightdm_greeter_get_select_user_hint (LightDMGreeter *greeter) gboolean lightdm_greeter_get_select_guest_hint (LightDMGreeter *greeter) { - const gchar *value; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - value = lightdm_greeter_get_hint (greeter, "select-guest"); - - return g_strcmp0 (value, "true") == 0; + return get_boolean_hint (greeter, "select-guest"); } /** @@ -1343,12 +1263,8 @@ lightdm_greeter_get_autologin_session_hint (LightDMGreeter *greeter) gboolean lightdm_greeter_get_autologin_guest_hint (LightDMGreeter *greeter) { - const gchar *value; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - value = lightdm_greeter_get_hint (greeter, "autologin-guest"); - - return g_strcmp0 (value, "true") == 0; + return get_boolean_hint (greeter, "autologin-guest"); } /** @@ -1362,11 +1278,10 @@ lightdm_greeter_get_autologin_guest_hint (LightDMGreeter *greeter) gint lightdm_greeter_get_autologin_timeout_hint (LightDMGreeter *greeter) { - const gchar *value; - gint timeout = 0; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - value = lightdm_greeter_get_hint (greeter, "autologin-timeout"); + + const gchar *value = lightdm_greeter_get_hint (greeter, "autologin-timeout"); + gint timeout = 0; if (value) timeout = atoi (value); if (timeout < 0) @@ -1384,11 +1299,9 @@ lightdm_greeter_get_autologin_timeout_hint (LightDMGreeter *greeter) void lightdm_greeter_cancel_autologin (LightDMGreeter *greeter) { - LightDMGreeterPrivate *priv; - g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); if (priv->autologin_timeout) g_source_remove (priv->autologin_timeout); @@ -1408,13 +1321,9 @@ lightdm_greeter_cancel_autologin (LightDMGreeter *greeter) gboolean lightdm_greeter_authenticate (LightDMGreeter *greeter, const gchar *username, GError **error) { - LightDMGreeterPrivate *priv; - guint8 message[MAX_MESSAGE_LENGTH]; - gsize offset = 0; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); @@ -1429,6 +1338,8 @@ lightdm_greeter_authenticate (LightDMGreeter *greeter, const gchar *username, GE } g_debug ("Starting authentication for user %s...", username); + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; return write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_AUTHENTICATE, int_length () + string_length (username), &offset, error) && write_int (message, MAX_MESSAGE_LENGTH, priv->authenticate_sequence_number, &offset, error) && write_string (message, MAX_MESSAGE_LENGTH, username, &offset, error) && @@ -1447,13 +1358,9 @@ lightdm_greeter_authenticate (LightDMGreeter *greeter, const gchar *username, GE gboolean lightdm_greeter_authenticate_as_guest (LightDMGreeter *greeter, GError **error) { - LightDMGreeterPrivate *priv; - guint8 message[MAX_MESSAGE_LENGTH]; - gsize offset = 0; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); @@ -1465,6 +1372,8 @@ lightdm_greeter_authenticate_as_guest (LightDMGreeter *greeter, GError **error) priv->authentication_user = NULL; g_debug ("Starting authentication for guest account..."); + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; return write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_AUTHENTICATE_AS_GUEST, int_length (), &offset, error) && write_int (message, MAX_MESSAGE_LENGTH, priv->authenticate_sequence_number, &offset, error) && send_message (greeter, message, offset, error); @@ -1482,9 +1391,7 @@ lightdm_greeter_authenticate_as_guest (LightDMGreeter *greeter, GError **error) gboolean lightdm_greeter_authenticate_autologin (LightDMGreeter *greeter, GError **error) { - const gchar *user; - - user = lightdm_greeter_get_autologin_user_hint (greeter); + const gchar *user = lightdm_greeter_get_autologin_user_hint (greeter); if (lightdm_greeter_get_autologin_guest_hint (greeter)) return lightdm_greeter_authenticate_as_guest (greeter, error); else if (user) @@ -1511,13 +1418,9 @@ lightdm_greeter_authenticate_autologin (LightDMGreeter *greeter, GError **error) gboolean lightdm_greeter_authenticate_remote (LightDMGreeter *greeter, const gchar *session, const gchar *username, GError **error) { - LightDMGreeterPrivate *priv; - guint8 message[MAX_MESSAGE_LENGTH]; - gsize offset = 0; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); @@ -1533,6 +1436,8 @@ lightdm_greeter_authenticate_remote (LightDMGreeter *greeter, const gchar *sessi else g_debug ("Starting authentication for remote session %s...", session); + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; return write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_AUTHENTICATE_REMOTE, int_length () + string_length (session) + string_length (username), &offset, error) && write_int (message, MAX_MESSAGE_LENGTH, priv->authenticate_sequence_number, &offset, error) && write_string (message, MAX_MESSAGE_LENGTH, session, &offset, error) && @@ -1553,14 +1458,10 @@ lightdm_greeter_authenticate_remote (LightDMGreeter *greeter, const gchar *sessi gboolean lightdm_greeter_respond (LightDMGreeter *greeter, const gchar *response, GError **error) { - LightDMGreeterPrivate *priv; - guint8 message[MAX_MESSAGE_LENGTH]; - gsize offset = 0; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); g_return_val_if_fail (response != NULL, FALSE); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); g_return_val_if_fail (priv->n_responses_waiting > 0, FALSE); @@ -1568,21 +1469,20 @@ lightdm_greeter_respond (LightDMGreeter *greeter, const gchar *response, GError priv->n_responses_waiting--; priv->responses_received = g_list_append (priv->responses_received, g_strdup (response)); + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; if (priv->n_responses_waiting == 0) { - guint32 msg_length; - GList *iter; - g_debug ("Providing response to display manager"); - msg_length = int_length (); - for (iter = priv->responses_received; iter; iter = iter->next) + guint32 msg_length = int_length (); + for (GList *iter = priv->responses_received; iter; iter = iter->next) msg_length += string_length ((gchar *)iter->data); if (!write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_CONTINUE_AUTHENTICATION, msg_length, &offset, error) || !write_int (message, MAX_MESSAGE_LENGTH, g_list_length (priv->responses_received), &offset, error)) return FALSE; - for (iter = priv->responses_received; iter; iter = iter->next) + for (GList *iter = priv->responses_received; iter; iter = iter->next) { if (!write_string (message, MAX_MESSAGE_LENGTH, (gchar *)iter->data, &offset, error)) return FALSE; @@ -1609,17 +1509,15 @@ lightdm_greeter_respond (LightDMGreeter *greeter, const gchar *response, GError gboolean lightdm_greeter_cancel_authentication (LightDMGreeter *greeter, GError **error) { - LightDMGreeterPrivate *priv; - guint8 message[MAX_MESSAGE_LENGTH]; - gsize offset = 0; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); priv->cancelling_authentication = TRUE; + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; return write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_CANCEL_AUTHENTICATION, 0, &offset, error) && send_message (greeter, message, offset, error); } @@ -1682,16 +1580,14 @@ lightdm_greeter_get_authentication_user (LightDMGreeter *greeter) gboolean lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language, GError **error) { - LightDMGreeterPrivate *priv; - guint8 message[MAX_MESSAGE_LENGTH]; - gsize offset = 0; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); + guint8 message[MAX_MESSAGE_LENGTH]; + gsize offset = 0; return write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_SET_LANGUAGE, string_length (language), &offset, error) && write_string (message, MAX_MESSAGE_LENGTH, language, &offset, error) && send_message (greeter, message, offset, error); @@ -1714,16 +1610,13 @@ lightdm_greeter_set_language (LightDMGreeter *greeter, const gchar *language, GE void lightdm_greeter_start_session (LightDMGreeter *greeter, const gchar *session, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { - LightDMGreeterPrivate *priv; - Request *request; - GError *error = NULL; - g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - request = request_new (greeter, cancellable, callback, user_data); + Request *request = request_new (greeter, cancellable, callback, user_data); priv->start_session_requests = g_list_append (priv->start_session_requests, request); + GError *error = NULL; if (!send_start_session (greeter, session, &error)) { request->error = error; @@ -1744,11 +1637,10 @@ lightdm_greeter_start_session (LightDMGreeter *greeter, const gchar *session, GC gboolean lightdm_greeter_start_session_finish (LightDMGreeter *greeter, GAsyncResult *result, GError **error) { - Request *request = REQUEST (result); - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - if (request->error) + Request *request = REQUEST (result); + if (request->error) g_propagate_error (error, request->error); return request->result; } @@ -1766,12 +1658,9 @@ lightdm_greeter_start_session_finish (LightDMGreeter *greeter, GAsyncResult *res gboolean lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *session, GError **error) { - LightDMGreeterPrivate *priv; - Request *request; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), FALSE); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, FALSE); g_return_val_if_fail (priv->is_authenticated, FALSE); @@ -1779,17 +1668,15 @@ lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *sessio /* Read until the session is started */ if (!send_start_session (greeter, session, error)) return FALSE; - request = request_new (greeter, NULL, NULL, NULL); + Request *request = request_new (greeter, NULL, NULL, NULL); priv->start_session_requests = g_list_append (priv->start_session_requests, g_object_ref (request)); do { - guint8 *message; + g_autofree guint8 *message = NULL; gsize message_length; - if (!recv_message (greeter, TRUE, &message, &message_length, error)) return FALSE; handle_message (greeter, message, message_length); - g_free (message); } while (!request->complete); return lightdm_greeter_start_session_finish (greeter, G_ASYNC_RESULT (request), error); @@ -1817,16 +1704,13 @@ lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *sessio void lightdm_greeter_ensure_shared_data_dir (LightDMGreeter *greeter, const gchar *username, GCancellable *cancellable, GAsyncReadyCallback callback, gpointer user_data) { - LightDMGreeterPrivate *priv; - Request *request; - GError *error = NULL; - g_return_if_fail (LIGHTDM_IS_GREETER (greeter)); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); - request = request_new (greeter, cancellable, callback, user_data); + Request *request = request_new (greeter, cancellable, callback, user_data); priv->ensure_shared_data_dir_requests = g_list_append (priv->ensure_shared_data_dir_requests, request); + GError *error = NULL; if (!send_ensure_shared_data_dir (greeter, username, &error)) { request->error = error; @@ -1847,10 +1731,9 @@ lightdm_greeter_ensure_shared_data_dir (LightDMGreeter *greeter, const gchar *us gchar * lightdm_greeter_ensure_shared_data_dir_finish (LightDMGreeter *greeter, GAsyncResult *result, GError **error) { - Request *request = REQUEST (result); - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL); + Request *request = REQUEST (result); if (request->error) g_propagate_error (error, request->error); return g_strdup (request->dir); @@ -1878,29 +1761,24 @@ lightdm_greeter_ensure_shared_data_dir_finish (LightDMGreeter *greeter, GAsyncRe gchar * lightdm_greeter_ensure_shared_data_dir_sync (LightDMGreeter *greeter, const gchar *username, GError **error) { - LightDMGreeterPrivate *priv; - Request *request; - g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL); - priv = GET_PRIVATE (greeter); + LightDMGreeterPrivate *priv = GET_PRIVATE (greeter); g_return_val_if_fail (priv->connected, NULL); /* Read until a response */ if (!send_ensure_shared_data_dir (greeter, username, error)) return NULL; - request = request_new (greeter, NULL, NULL, NULL); + Request *request = request_new (greeter, NULL, NULL, NULL); priv->ensure_shared_data_dir_requests = g_list_append (priv->ensure_shared_data_dir_requests, g_object_ref (request)); do { - guint8 *message; + g_autofree guint8 *message = NULL; gsize message_length; - if (!recv_message (greeter, TRUE, &message, &message_length, error)) return FALSE; handle_message (greeter, message, message_length); - g_free (message); } while (!request->complete); return lightdm_greeter_ensure_shared_data_dir_finish (greeter, G_ASYNC_RESULT (request), error); @@ -1930,9 +1808,7 @@ lightdm_greeter_get_property (GObject *object, GValue *value, GParamSpec *pspec) { - LightDMGreeter *self; - - self = LIGHTDM_GREETER (object); + LightDMGreeter *self = LIGHTDM_GREETER (object); switch (prop_id) { case PROP_DEFAULT_SESSION_HINT: |