[Galago-commits] r2402 - in trunk/libgalago: . docs/protocol
libgalago
galago-commits at freedesktop.org
galago-commits at freedesktop.org
Tue Jan 10 00:41:18 PST 2006
Author: chipx86
Date: 2006-01-10 00:41:16 -0800 (Tue, 10 Jan 2006)
New Revision: 2402
Modified:
trunk/libgalago/ChangeLog
trunk/libgalago/docs/protocol/protocol.hh
trunk/libgalago/libgalago/galago-dbus.c
trunk/libgalago/libgalago/galago-service.c
Log:
Have the daemon compute the account object paths instead of doing it ourselves.
Modified: trunk/libgalago/ChangeLog
===================================================================
--- trunk/libgalago/ChangeLog 2006-01-10 08:23:17 UTC (rev 2401)
+++ trunk/libgalago/ChangeLog 2006-01-10 08:41:16 UTC (rev 2402)
@@ -1,3 +1,11 @@
+Tue Jan 10 00:40:54 PST 2006 Christian Hammond <chipx86 at chipx86.com>
+
+ * docs/protocol/protocol.hh:
+ * libgalago/galago-dbus.c:
+ * libgalago/galago-service.c:
+ - Have the daemon compute the account object paths instead of doing
+ it ourselves.
+
Tue Jan 10 00:23:06 PST 2006 Christian Hammond <chipx86 at chipx86.com>
* libgalago/galago-core.c:
Modified: trunk/libgalago/docs/protocol/protocol.hh
===================================================================
--- trunk/libgalago/docs/protocol/protocol.hh 2006-01-10 08:23:17 UTC (rev 2401)
+++ trunk/libgalago/docs/protocol/protocol.hh 2006-01-10 08:41:16 UTC (rev 2402)
@@ -597,8 +597,10 @@
* Adds an account to a service.
*
* @param account The account to add.
+ *
+ * @return The account's new object path.
*/
- void AddAccount(Account account);
+ string AddAccount(Account account);
/**
* Removes an account from a service.
Modified: trunk/libgalago/libgalago/galago-dbus.c
===================================================================
--- trunk/libgalago/libgalago/galago-dbus.c 2006-01-10 08:23:17 UTC (rev 2401)
+++ trunk/libgalago/libgalago/galago-dbus.c 2006-01-10 08:41:16 UTC (rev 2402)
@@ -537,8 +537,8 @@
break;
case DBUS_TYPE_STRING:
- retval = (void *)
- galago_dbus_message_iter_get_string_or_nil(iter);
+ retval = (gpointer)g_strdup(
+ galago_dbus_message_iter_get_string_or_nil(iter));
break;
default:
Modified: trunk/libgalago/libgalago/galago-service.c
===================================================================
--- trunk/libgalago/libgalago/galago-service.c 2006-01-10 08:23:17 UTC (rev 2401)
+++ trunk/libgalago/libgalago/galago-service.c 2006-01-10 08:41:16 UTC (rev 2402)
@@ -489,8 +489,6 @@
if (account == NULL)
{
- const char *obj_prefix;
-
galago_context_push(galago_object_get_context(GALAGO_OBJECT(service)));
account = g_object_new(GALAGO_TYPE_ACCOUNT,
"service", service,
@@ -498,20 +496,9 @@
"username", username,
"origin", service_origin,
NULL);
- galago_context_pop();
-
- obj_prefix = galago_object_get_dbus_path(GALAGO_OBJECT(service));
-
- if (obj_prefix != NULL)
- {
- char *obj_path = g_strdup_printf("%s/%s", obj_prefix,
- galago_dbus_normalize_name(username));
- galago_object_set_dbus_path(GALAGO_OBJECT(account), obj_path);
- g_free(obj_path);
- }
-
galago_person_add_account(person, account);
galago_service_add_account(service, account);
+ galago_context_pop();
}
return account;
@@ -574,6 +561,7 @@
return service->priv->accounts;
}
+/* XXX Make this private */
void
galago_service_add_account(GalagoService *service, GalagoAccount *account)
{
@@ -586,6 +574,7 @@
username = galago_account_get_username(account);
+ /* XXX Remove this when this function is private. */
if (galago_service_get_account(service, username, FALSE) != NULL)
{
g_warning("An account with username %s has already been "
@@ -685,10 +674,19 @@
static void
_galago_dbus_service_add_account(GalagoService *service, GalagoAccount *account)
{
+ char *obj_path;
+
if (!galago_is_connected() || !galago_is_feed())
return;
- galago_dbus_send_message(GALAGO_OBJECT(service), "AddAccount",
+ obj_path = galago_dbus_send_message_with_reply(
+ GALAGO_OBJECT(service), "AddAccount",
+ galago_value_new(GALAGO_VALUE_TYPE_STRING, NULL, NULL),
galago_value_new_object(GALAGO_TYPE_ACCOUNT, G_OBJECT(account)),
NULL);
+
+ g_assert(obj_path != NULL);
+
+ galago_object_set_dbus_path(GALAGO_OBJECT(account), obj_path);
+ g_free(obj_path);
}
More information about the galago-commits
mailing list