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);
}