diff options
-rw-r--r-- | goa-mc-plugin/mcp-account-manager-goa.c | 14 |
1 files changed, 14 insertions, 0 deletions
diff --git a/goa-mc-plugin/mcp-account-manager-goa.c b/goa-mc-plugin/mcp-account-manager-goa.c index a1fe9f8e1..5c6cd3896 100644 --- a/goa-mc-plugin/mcp-account-manager-goa.c +++ b/goa-mc-plugin/mcp-account-manager-goa.c @@ -427,6 +427,14 @@ mcp_account_manager_goa_get (const McpAccountStorage *self, return TRUE; } +static gboolean +account_is_in_goa (const McpAccountStorage *self, + const gchar *account) +{ + McpAccountManagerGoaPrivate *priv = GET_PRIVATE (self); + + return (g_hash_table_lookup (priv->accounts, acct) != NULL); +} static gboolean mcp_account_manager_goa_set (const McpAccountStorage *self, @@ -438,6 +446,9 @@ mcp_account_manager_goa_set (const McpAccountStorage *self, McpAccountManagerGoaPrivate *priv = GET_PRIVATE (self); GError *error = NULL; + if (!account_is_in_goa (self, account)) + return FALSE; + /* No need to save Enabled, it's up to the GOA configuration if the account * is configured or not. */ if (!tp_strdiff (key, "Enabled")) @@ -463,6 +474,9 @@ mcp_account_manager_goa_delete (const McpAccountStorage *self, { McpAccountManagerGoaPrivate *priv = GET_PRIVATE (self); + if (!account_is_in_goa (self, account)) + return FALSE; + DEBUG ("%s: (%s, %s)", G_STRFUNC, account, key); if (key == NULL) |