diff options
Diffstat (limited to 'src/mcd-account-connection.c')
-rw-r--r-- | src/mcd-account-connection.c | 28 |
1 files changed, 18 insertions, 10 deletions
diff --git a/src/mcd-account-connection.c b/src/mcd-account-connection.c index 37cbd869..ec119d7f 100644 --- a/src/mcd-account-connection.c +++ b/src/mcd-account-connection.c @@ -51,29 +51,37 @@ _mcd_account_connection_context_free (McdAccountConnectionContext *c) g_free (c); } -void -_mcd_account_connection_begin (McdAccount *account) +static void +connection_begin_dup_params_cb (McdAccount *account, GHashTable *params, + gpointer user_data) { McdAccountConnectionContext *ctx; - /* check whether a connection process is already ongoing */ - if (_mcd_account_get_connection_context (account) != NULL) - { - DEBUG ("already trying to connect"); - return; - } - /* get account params */ /* create dynamic params HT */ /* run the handlers */ ctx = g_malloc (sizeof (McdAccountConnectionContext)); ctx->i_filter = 0; - ctx->params = _mcd_account_dup_parameters (account); + + ctx->params = params; g_assert (ctx->params != NULL); _mcd_account_set_connection_context (account, ctx); mcd_account_connection_proceed (account, TRUE); } +void +_mcd_account_connection_begin (McdAccount *account) +{ + /* check whether a connection process is already ongoing */ + if (_mcd_account_get_connection_context (account) != NULL) + { + DEBUG ("already trying to connect"); + return; + } + + _mcd_account_dup_parameters (account, connection_begin_dup_params_cb, NULL); +} + void mcd_account_connection_proceed (McdAccount *account, gboolean success) { |