From db233704f4ea85e01b1059044cbe9d81c6281c9e Mon Sep 17 00:00:00 2001 From: Joshua Colp Date: Sun, 22 Oct 2017 19:32:20 -0300 Subject: [PATCH] res_xmpp: Ensure the connection filter is available. Users of the API that res_xmpp provides expect that a filter be available on the client at all times. When OAuth authentication support was added this requirement was not maintained. This change merely moves the OAuth authentication to after the filter is created, ensuring users of res_xmpp can add things to the filter as needed. ASTERISK-27346 Change-Id: I4ac474afe220e833288ff574e32e2b9a23394886 (cherry picked from commit 07e17fd04ffcf204400898660a4c118666596d5d) --- res/res_xmpp.c | 14 +++++++------- 1 file changed, 7 insertions(+), 7 deletions(-) diff --git a/res/res_xmpp.c b/res/res_xmpp.c index d8487f5ba8..6ba4014c70 100644 --- a/res/res_xmpp.c +++ b/res/res_xmpp.c @@ -3654,13 +3654,6 @@ static int xmpp_client_reconnect(struct ast_xmpp_client *client) return -1; } - if (!ast_strlen_zero(clientcfg->refresh_token)) { - ast_debug(2, "Obtaining OAuth access token for client '%s'\n", client->name); - if (fetch_access_token(clientcfg)) { - return -1; - } - } - ast_xmpp_client_disconnect(client); client->timeout = 50; @@ -3671,6 +3664,13 @@ static int xmpp_client_reconnect(struct ast_xmpp_client *client) return -1; } + if (!ast_strlen_zero(clientcfg->refresh_token)) { + ast_debug(2, "Obtaining OAuth access token for client '%s'\n", client->name); + if (fetch_access_token(clientcfg)) { + return -1; + } + } + /* If it's a component connect to user otherwise connect to server */ res = iks_connect_via(client->parser, S_OR(clientcfg->server, client->jid->server), clientcfg->port, ast_test_flag(&clientcfg->flags, XMPP_COMPONENT) ? clientcfg->user : client->jid->server); -- 2.47.2