From: Muhammad Zaka Date: Fri, 13 May 2016 10:18:25 +0000 (+0100) Subject: FS-9156: Code Improvement for the non-interval increment when limit reached X-Git-Tag: v1.6.9~2^2~27^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f8b3140fed1650828d13349a7f9a63a73b29542e;p=thirdparty%2Ffreeswitch.git FS-9156: Code Improvement for the non-interval increment when limit reached --- diff --git a/src/mod/applications/mod_hiredis/mod_hiredis.c b/src/mod/applications/mod_hiredis/mod_hiredis.c index 9536521899..a81f86f8ff 100644 --- a/src/mod/applications/mod_hiredis/mod_hiredis.c +++ b/src/mod/applications/mod_hiredis/mod_hiredis.c @@ -189,6 +189,19 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr) count = atoll(response ? response : ""); + if (!interval && count > max ) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "%s is already at max value (%d)\n", limit_key , max); + switch_safe_free(hashkey); + switch_safe_free(response); + hashkey = switch_mprintf("decr %s", limit_key); + if ( (status = hiredis_profile_execute_sync(profile, hashkey, &response, session)) != SWITCH_STATUS_SUCCESS ) { + if ( status == SWITCH_STATUS_SOCKERR && profile->ignore_connect_fail ) { + switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_WARNING, "hiredis: profile[%s] connection error executing [%s] with limit already reached\n", realm, hashkey); + switch_goto_status(SWITCH_STATUS_SUCCESS, done); // increment has been succesful but decrement have failed + } + } + } + if ( !count || count > max ) { switch_goto_status(SWITCH_STATUS_GENERR, done); }