FS-9059 [mod_hiredis] add session logging
This commit is contained in:
parent
f69fef88b7
commit
7a369b57f1
|
@ -44,50 +44,50 @@ static switch_status_t hiredis_context_reconnect(hiredis_context_t *context)
|
|||
}
|
||||
|
||||
/* Return a context back to the pool */
|
||||
static void hiredis_context_release(hiredis_context_t *context)
|
||||
static void hiredis_context_release(hiredis_context_t *context, switch_core_session_t *session)
|
||||
{
|
||||
if (switch_queue_push(context->connection->context_pool, context) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_CRIT, "hiredis: failed to release back to pool [%s, %d]\n", context->connection->host, context->connection->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_CRIT, "hiredis: failed to release back to pool [%s, %d]\n", context->connection->host, context->connection->port);
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: release back to pool [%s, %d]\n", context->connection->host, context->connection->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: release back to pool [%s, %d]\n", context->connection->host, context->connection->port);
|
||||
}
|
||||
}
|
||||
|
||||
/* Grab a context from the pool, reconnect/connect as needed */
|
||||
static hiredis_context_t *hiredis_connection_get_context(hiredis_connection_t *conn)
|
||||
static hiredis_context_t *hiredis_connection_get_context(hiredis_connection_t *conn, switch_core_session_t *session)
|
||||
{
|
||||
void *val = NULL;
|
||||
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: waiting for [%s, %d]\n", conn->host, conn->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: waiting for [%s, %d]\n", conn->host, conn->port);
|
||||
if ( switch_queue_pop_timeout(conn->context_pool, &val, conn->timeout_us ) == SWITCH_STATUS_SUCCESS ) {
|
||||
hiredis_context_t *context = (hiredis_context_t *)val;
|
||||
if ( !context->context ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: attempting[%s, %d]\n", conn->host, conn->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: attempting[%s, %d]\n", conn->host, conn->port);
|
||||
context->context = redisConnectWithTimeout(conn->host, conn->port, conn->timeout);
|
||||
if ( context->context && !context->context->err ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: connection success[%s, %d]\n", conn->host, conn->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: connection success[%s, %d]\n", conn->host, conn->port);
|
||||
return context;
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: connection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr);
|
||||
hiredis_context_release(context);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: connection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr);
|
||||
hiredis_context_release(context, session);
|
||||
return NULL;
|
||||
}
|
||||
} else if ( context->context->err ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: reconnecting[%s, %d]\n", conn->host, conn->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: reconnecting[%s, %d]\n", conn->host, conn->port);
|
||||
if (hiredis_context_reconnect(context) == SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", conn->host, conn->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", conn->host, conn->port);
|
||||
return context;
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: reconnection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr);
|
||||
hiredis_context_release(context);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: reconnection error[%s, %d] (%s)\n", conn->host, conn->port, context->context->errstr);
|
||||
hiredis_context_release(context, session);
|
||||
return NULL;
|
||||
}
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_INFO, "hiredis: recycled from pool[%s, %d]\n", conn->host, conn->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: recycled from pool[%s, %d]\n", conn->host, conn->port);
|
||||
return context;
|
||||
}
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: timed out waiting for [%s, %d]\n", conn->host, conn->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: timed out waiting for [%s, %d]\n", conn->host, conn->port);
|
||||
}
|
||||
|
||||
return NULL;
|
||||
|
@ -182,13 +182,13 @@ switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
static hiredis_context_t *hiredis_profile_get_context(hiredis_profile_t *profile, hiredis_connection_t *initial_conn)
|
||||
static hiredis_context_t *hiredis_profile_get_context(hiredis_profile_t *profile, hiredis_connection_t *initial_conn, switch_core_session_t *session)
|
||||
{
|
||||
hiredis_connection_t *conn = initial_conn ? initial_conn : profile->conn_head;
|
||||
hiredis_context_t *context;
|
||||
|
||||
while ( conn ) {
|
||||
context = hiredis_connection_get_context(conn);
|
||||
context = hiredis_connection_get_context(conn, session);
|
||||
if (context) {
|
||||
/* successful redis connection */
|
||||
return context;
|
||||
|
@ -196,11 +196,11 @@ static hiredis_context_t *hiredis_profile_get_context(hiredis_profile_t *profile
|
|||
conn = conn->next;
|
||||
}
|
||||
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: unable to connect\n");
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: unable to connect\n");
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context, const char *data, char **resp)
|
||||
static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context, const char *data, char **resp, switch_core_session_t *session)
|
||||
{
|
||||
redisReply *response = redisCommand(context->context, data);
|
||||
if ( !response ) {
|
||||
|
@ -217,7 +217,7 @@ static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context,
|
|||
*resp = switch_mprintf("%lld", response->integer);
|
||||
break;
|
||||
default:
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: response error[%s][%d]\n", response->str, response->type);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: response error[%s][%d]\n", response->str, response->type);
|
||||
freeReplyObject(response);
|
||||
*resp = NULL;
|
||||
return SWITCH_STATUS_GENERR;
|
||||
|
@ -227,37 +227,37 @@ static switch_status_t hiredis_context_execute_sync(hiredis_context_t *context,
|
|||
return SWITCH_STATUS_SUCCESS;
|
||||
}
|
||||
|
||||
switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **resp)
|
||||
switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **resp, switch_core_session_t *session)
|
||||
{
|
||||
hiredis_context_t *context = NULL;
|
||||
int reconnected = 0;
|
||||
|
||||
context = hiredis_profile_get_context(profile, NULL);
|
||||
context = hiredis_profile_get_context(profile, NULL, session);
|
||||
while (context) {
|
||||
if (hiredis_context_execute_sync(context, data, resp) == SWITCH_STATUS_SUCCESS) {
|
||||
if (hiredis_context_execute_sync(context, data, resp, session) == SWITCH_STATUS_SUCCESS) {
|
||||
/* got result */
|
||||
hiredis_context_release(context);
|
||||
hiredis_context_release(context, session);
|
||||
return SWITCH_STATUS_SUCCESS;
|
||||
} else if (context->context->err) {
|
||||
/* 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);
|
||||
hiredis_context_release(context);
|
||||
hiredis_context_t *new_context = hiredis_profile_get_context(profile, context->connection, session);
|
||||
hiredis_context_release(context, session);
|
||||
context = new_context;
|
||||
if (context) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: got alternate connection to [%s, %d]\n", context->connection->host, context->connection->port);
|
||||
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 {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: no more alternate connections to try\n");
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: no more alternate connections to try\n");
|
||||
}
|
||||
reconnected = 0;
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", context->connection->host, context->connection->port);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: reconnection success[%s, %d]\n", context->connection->host, context->connection->port);
|
||||
reconnected = 1;
|
||||
}
|
||||
} else {
|
||||
/* no problem with context, so don't retry */
|
||||
hiredis_context_release(context);
|
||||
hiredis_context_release(context, session);
|
||||
return SWITCH_STATUS_GENERR;
|
||||
}
|
||||
}
|
||||
|
|
|
@ -46,7 +46,7 @@ SWITCH_STANDARD_APP(raw_app)
|
|||
if ( !zstr(data) ) {
|
||||
profile_name = strdup(data);
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: invalid data! Use the format 'default set keyname value' \n");
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: invalid data! Use the format 'default set keyname value' \n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
|
@ -54,19 +54,19 @@ SWITCH_STANDARD_APP(raw_app)
|
|||
*cmd = '\0';
|
||||
cmd++;
|
||||
} else {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: invalid data! Use the format 'default set keyname value' \n");
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: invalid data! Use the format 'default set keyname value' \n");
|
||||
goto done;
|
||||
}
|
||||
|
||||
profile = switch_core_hash_find(mod_hiredis_globals.profiles, profile_name);
|
||||
|
||||
if ( !profile ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", profile_name);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", profile_name);
|
||||
return;
|
||||
}
|
||||
|
||||
if ( hiredis_profile_execute_sync(profile, cmd, &response) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", profile_name, cmd, response);
|
||||
if ( hiredis_profile_execute_sync(profile, cmd, &response, session) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", profile_name, cmd, response);
|
||||
}
|
||||
|
||||
switch_channel_set_variable(channel, "hiredis_raw_response", response);
|
||||
|
@ -94,17 +94,17 @@ SWITCH_STANDARD_API(raw_api)
|
|||
data++;
|
||||
}
|
||||
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_DEBUG, "hiredis: debug: profile[%s] for command [%s]\n", input, data);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_DEBUG, "hiredis: debug: profile[%s] for command [%s]\n", input, data);
|
||||
|
||||
profile = switch_core_hash_find(mod_hiredis_globals.profiles, input);
|
||||
|
||||
if ( !profile ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", input);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", input);
|
||||
switch_goto_status(SWITCH_STATUS_GENERR, done);
|
||||
}
|
||||
|
||||
if ( hiredis_profile_execute_sync(profile, data, &response) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] reason:[%s]\n", input, data, response ? response : "");
|
||||
if ( hiredis_profile_execute_sync(profile, data, &response, session) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] reason:[%s]\n", input, data, response ? response : "");
|
||||
switch_goto_status(SWITCH_STATUS_GENERR, done);
|
||||
}
|
||||
|
||||
|
@ -131,14 +131,14 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr)
|
|||
switch_memory_pool_t *session_pool = switch_core_session_get_pool(session);
|
||||
|
||||
if ( zstr(realm) ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: realm must be defined\n");
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: realm must be defined\n");
|
||||
switch_goto_status(SWITCH_STATUS_GENERR, done);
|
||||
}
|
||||
|
||||
profile = switch_core_hash_find(mod_hiredis_globals.profiles, realm);
|
||||
|
||||
if ( !profile ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", realm);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: Unable to locate profile[%s]\n", realm);
|
||||
switch_goto_status(SWITCH_STATUS_GENERR, done);
|
||||
}
|
||||
|
||||
|
@ -150,12 +150,12 @@ SWITCH_LIMIT_INCR(hiredis_limit_incr)
|
|||
|
||||
hashkey = switch_mprintf("incr %s", limit_key);
|
||||
|
||||
if ( (status = hiredis_profile_execute_sync(profile, hashkey, &response)) != SWITCH_STATUS_SUCCESS ) {
|
||||
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_LOG, SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey);
|
||||
switch_goto_status(SWITCH_STATUS_SUCCESS, done);
|
||||
}
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response ? response : "");
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response ? response : "");
|
||||
switch_channel_set_variable(channel, "hiredis_raw_response", response ? response : "");
|
||||
switch_goto_status(SWITCH_STATUS_GENERR, done);
|
||||
}
|
||||
|
@ -203,8 +203,8 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release)
|
|||
profile = switch_core_hash_find(mod_hiredis_globals.profiles, limit_pvt->realm);
|
||||
hashkey = switch_mprintf("decr %s", tmp->limit_key);
|
||||
|
||||
if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n",
|
||||
if ( hiredis_profile_execute_sync(profile, hashkey, &response, session) != SWITCH_STATUS_SUCCESS ) {
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n",
|
||||
tmp->realm, hashkey, response);
|
||||
}
|
||||
|
||||
|
@ -217,12 +217,12 @@ SWITCH_LIMIT_RELEASE(hiredis_limit_release)
|
|||
|
||||
hashkey = switch_mprintf("decr %s", limit_pvt->limit_key);
|
||||
|
||||
if ( ( status = hiredis_profile_execute_sync(profile, hashkey, &response) ) != SWITCH_STATUS_SUCCESS ) {
|
||||
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_LOG, SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_INFO, "hiredis: ignoring profile[%s] connection error executing [%s]\n", realm, hashkey);
|
||||
switch_goto_status(SWITCH_STATUS_SUCCESS, done);
|
||||
}
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response);
|
||||
switch_log_printf(SWITCH_CHANNEL_SESSION_LOG(session), SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response);
|
||||
switch_channel_set_variable(channel, "hiredis_raw_response", response);
|
||||
switch_goto_status(SWITCH_STATUS_GENERR, done);
|
||||
}
|
||||
|
@ -257,7 +257,7 @@ SWITCH_LIMIT_USAGE(hiredis_limit_usage)
|
|||
|
||||
hashkey = switch_mprintf("get %s", resource);
|
||||
|
||||
if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS) {
|
||||
if ( hiredis_profile_execute_sync(profile, hashkey, &response, NULL) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response);
|
||||
goto err;
|
||||
}
|
||||
|
@ -306,7 +306,7 @@ SWITCH_LIMIT_INTERVAL_RESET(hiredis_limit_interval_reset)
|
|||
|
||||
hashkey = switch_mprintf("set %s 0", resource);
|
||||
|
||||
if ( hiredis_profile_execute_sync(profile, hashkey, &response) != SWITCH_STATUS_SUCCESS) {
|
||||
if ( hiredis_profile_execute_sync(profile, hashkey, &response, NULL) != SWITCH_STATUS_SUCCESS) {
|
||||
switch_log_printf(SWITCH_CHANNEL_LOG, SWITCH_LOG_ERROR, "hiredis: profile[%s] error executing [%s] because [%s]\n", realm, hashkey, response);
|
||||
switch_goto_status(SWITCH_STATUS_GENERR, done);
|
||||
}
|
||||
|
|
|
@ -46,11 +46,11 @@ typedef struct hiredis_limit_pvt_s {
|
|||
struct hiredis_limit_pvt_s *next;
|
||||
} hiredis_limit_pvt_t;
|
||||
|
||||
switch_status_t mod_hiredis_do_config();
|
||||
switch_status_t mod_hiredis_do_config(void);
|
||||
switch_status_t hiredis_profile_create(hiredis_profile_t **new_profile, char *name, uint8_t ignore_connect_fail);
|
||||
switch_status_t hiredis_profile_destroy(hiredis_profile_t **old_profile);
|
||||
switch_status_t hiredis_profile_connection_add(hiredis_profile_t *profile, char *host, char *password, uint32_t port, uint32_t timeout_ms, uint32_t max_connections);
|
||||
|
||||
switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **response);
|
||||
switch_status_t hiredis_profile_execute_sync(hiredis_profile_t *profile, const char *data, char **response, switch_core_session_t *session);
|
||||
|
||||
#endif /* MOD_HIREDIS_H */
|
||||
|
|
Loading…
Reference in New Issue