summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoshua Colp <jcolp@digium.com>2017-10-22 19:32:20 -0300
committerJoshua Colp <jcolp@digium.com>2017-10-25 11:23:36 -0500
commita71adfaa24eb1f512c7e54b1e79b777e83e9d065 (patch)
treec69949ecd264e558fbd73a8c4c26d4e1db502388
parentdae71acdc4b13679eb8d015198d9d06b9191ae1e (diff)
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)
-rw-r--r--res/res_xmpp.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/res/res_xmpp.c b/res/res_xmpp.c
index f5bac130a..8e3b47b03 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);