summaryrefslogtreecommitdiff
path: root/liblightdm-gobject/greeter.c
diff options
context:
space:
mode:
authorMichael Terry <michael.terry@canonical.com>2014-02-19 11:50:00 -0500
committerMichael Terry <michael.terry@canonical.com>2014-02-19 11:50:00 -0500
commitd460282f361b7e23df2265e0439b5acb6e691055 (patch)
tree5e484412ba2acca44573ae430e31ad345f112ef1 /liblightdm-gobject/greeter.c
parentd13aada929c7213c8168ea16a9cb4eb87343d21a (diff)
downloadlightdm-git-d460282f361b7e23df2265e0439b5acb6e691055.tar.gz
explicitly provide shared dir path to sessions
Diffstat (limited to 'liblightdm-gobject/greeter.c')
-rw-r--r--liblightdm-gobject/greeter.c29
1 files changed, 15 insertions, 14 deletions
diff --git a/liblightdm-gobject/greeter.c b/liblightdm-gobject/greeter.c
index 2fedb5c0..7f174bed 100644
--- a/liblightdm-gobject/greeter.c
+++ b/liblightdm-gobject/greeter.c
@@ -1113,33 +1113,34 @@ lightdm_greeter_start_session_sync (LightDMGreeter *greeter, const gchar *sessio
* @greeter: A #LightDMGreeter
* @username: A username
*
- * Ensure that a shared data dir for the given user is available. This will
- * be created at /var/lib/lightdm-data/@username. Both the greeter user and
- * @username will have write access to that folder. The intention is that
- * larger pieces of shared data would be stored there (files that the greeter
- * creates but wants to give to a user -- like camera photos -- or files that
- * the user creates but wants the greeter to see -- like contact avatars).
+ * Ensure that a shared data dir for the given user is available. Both the
+ * greeter user and @username will have write access to that folder. The
+ * intention is that larger pieces of shared data would be stored there (files
+ * that the greeter creates but wants to give to a user -- like camera
+ * photos -- or files that the user creates but wants the greeter to
+ * see -- like contact avatars).
*
* LightDM will automatically create these if the user actually logs in, so
* greeters only need to call this method if they want to store something in
* the directory themselves.
*
- * Return value: TRUE if the directory is ready for use.
+ * Return value: The path to the shared directory, free with g_free
**/
-gboolean
+gchar *
lightdm_greeter_ensure_shared_data_dir_sync (LightDMGreeter *greeter, const gchar *username)
{
LightDMGreeterPrivate *priv;
guint8 message[MAX_MESSAGE_LENGTH];
guint8 *response;
gsize response_length, offset = 0;
- guint32 id, return_code = 1;
+ guint32 id;
+ gchar *data_dir = NULL;
- g_return_if_fail (LIGHTDM_IS_GREETER (greeter));
+ g_return_val_if_fail (LIGHTDM_IS_GREETER (greeter), NULL);
priv = GET_PRIVATE (greeter);
- g_return_if_fail (priv->connected);
+ g_return_val_if_fail (priv->connected, NULL);
write_header (message, MAX_MESSAGE_LENGTH, GREETER_MESSAGE_ENSURE_SHARED_DIR, string_length (username), &offset);
write_string (message, MAX_MESSAGE_LENGTH, username, &offset);
@@ -1147,19 +1148,19 @@ lightdm_greeter_ensure_shared_data_dir_sync (LightDMGreeter *greeter, const gcha
response = read_message (greeter, &response_length, TRUE);
if (!response)
- return FALSE;
+ return NULL;
offset = 0;
id = read_int (response, response_length, &offset);
read_int (response, response_length, &offset);
if (id == SERVER_MESSAGE_SHARED_DIR_RESULT)
- return_code = read_int (response, response_length, &offset);
+ data_dir = read_string (message, response_length, &offset);
else
g_warning ("Expected SHARED_DIR_RESULT message, got %d", id);
g_free (response);
- return return_code == 0;
+ return data_dir;
}
static void