]> git.ipfire.org Git - thirdparty/freeswitch.git/commitdiff
FS-9965 [mod_hiredis] release context after getting alternate connection
authorChris Rienzo <chris.rienzo@citrix.com>
Mon, 23 Jan 2017 20:37:13 +0000 (15:37 -0500)
committerChris Rienzo <chris.rienzo@citrix.com>
Mon, 23 Jan 2017 20:37:13 +0000 (15:37 -0500)
src/mod/applications/mod_hiredis/hiredis_profile.c

index b6b548e1ce4b6c47cffff220353cbf925a59de41..f108e1ac7569b4bef7377215e6939ff02e4ac797 100644 (file)
@@ -344,8 +344,9 @@ switch_status_t hiredis_profile_execute_requests(hiredis_profile_t *profile, swi
                        /* have a bad connection, try a single reconnect attempt before moving on to alternate connection */
                        if (reconnected || hiredis_context_reconnect(context) != SWITCH_STATUS_SUCCESS) {
                                /* try alternate connection */
+                               hiredis_context_t *new_context = hiredis_profile_get_context(profile, context->connection, session);
                                hiredis_context_release(context, session);
-                               context = hiredis_profile_get_context(profile, context->connection, session);
+                               context = new_context;
                                if (context) {
                                        switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: got alternate connection to [%s, %d]\n", context->connection->host, context->connection->port);
                                } else {