mirror of
https://github.com/asterisk/asterisk.git
synced 2025-10-12 15:45:18 +00:00
Merged revisions 282098 via svnmerge from
https://origsvn.digium.com/svn/asterisk/branches/1.8 ........ r282098 | rmudgett | 2010-08-12 17:06:06 -0500 (Thu, 12 Aug 2010) | 7 lines Separate call completion config parameter allocation and default initialization. If you ever have a need to reset the call completion config parameters to defaults, now you can. And no Virginia, C++ idioms do not always work in C. ........ git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@282099 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
@@ -187,6 +187,21 @@ int ast_cc_get_param(struct ast_cc_config_params *params, const char * const nam
|
|||||||
*/
|
*/
|
||||||
int ast_cc_is_config_param(const char * const name);
|
int ast_cc_is_config_param(const char * const name);
|
||||||
|
|
||||||
|
/*!
|
||||||
|
* \since 1.8
|
||||||
|
* \brief Set the specified CC config params to default values.
|
||||||
|
*
|
||||||
|
* \details
|
||||||
|
* This is just like ast_cc_copy_config_params() and could be used in place
|
||||||
|
* of it if you need to set the config params to defaults instead.
|
||||||
|
* You are simply "copying" defaults into the destination.
|
||||||
|
*
|
||||||
|
* \param params CC config params to set to default values.
|
||||||
|
*
|
||||||
|
* \return Nothing
|
||||||
|
*/
|
||||||
|
void ast_cc_default_config_params(struct ast_cc_config_params *params);
|
||||||
|
|
||||||
/*!
|
/*!
|
||||||
* \since 1.8
|
* \since 1.8
|
||||||
* \brief copy CCSS configuration parameters from one structure to another
|
* \brief copy CCSS configuration parameters from one structure to another
|
||||||
@@ -199,8 +214,8 @@ int ast_cc_is_config_param(const char * const name);
|
|||||||
*
|
*
|
||||||
* \param src The structure from which data is copied
|
* \param src The structure from which data is copied
|
||||||
* \param dest The structure to which data is copied
|
* \param dest The structure to which data is copied
|
||||||
* \retval -1 Copy failed (no way for this to happen yet)
|
*
|
||||||
* \retval 0 Copy succeeded
|
* \return Nothing
|
||||||
*/
|
*/
|
||||||
void ast_cc_copy_config_params(struct ast_cc_config_params *dest, const struct ast_cc_config_params *src);
|
void ast_cc_copy_config_params(struct ast_cc_config_params *dest, const struct ast_cc_config_params *src);
|
||||||
|
|
||||||
|
49
main/ccss.c
49
main/ccss.c
@@ -501,38 +501,45 @@ static int count_agents_cb(void *obj, void *arg, void *data, int flags)
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static const unsigned int CC_OFFER_TIMER_DEFAULT = 20u;
|
#define CC_OFFER_TIMER_DEFAULT 20 /* Seconds */
|
||||||
static const unsigned int CCNR_AVAILABLE_TIMER_DEFAULT = 7200u;
|
#define CCNR_AVAILABLE_TIMER_DEFAULT 7200 /* Seconds */
|
||||||
static const unsigned int CCBS_AVAILABLE_TIMER_DEFAULT = 4800u;
|
#define CCBS_AVAILABLE_TIMER_DEFAULT 4800 /* Seconds */
|
||||||
static const unsigned int CC_RECALL_TIMER_DEFAULT = 20u;
|
#define CC_RECALL_TIMER_DEFAULT 20 /* Seconds */
|
||||||
static const unsigned int CC_MAX_AGENTS_DEFAULT = 5u;
|
#define CC_MAX_AGENTS_DEFAULT 5
|
||||||
static const unsigned int CC_MAX_MONITORS_DEFAULT = 5u;
|
#define CC_MAX_MONITORS_DEFAULT 5
|
||||||
static const unsigned int GLOBAL_CC_MAX_REQUESTS_DEFAULT = 20u;
|
#define GLOBAL_CC_MAX_REQUESTS_DEFAULT 20
|
||||||
|
|
||||||
|
static const struct ast_cc_config_params cc_default_params = {
|
||||||
|
.cc_agent_policy = AST_CC_AGENT_NEVER,
|
||||||
|
.cc_monitor_policy = AST_CC_MONITOR_NEVER,
|
||||||
|
.cc_offer_timer = CC_OFFER_TIMER_DEFAULT,
|
||||||
|
.ccnr_available_timer = CCNR_AVAILABLE_TIMER_DEFAULT,
|
||||||
|
.ccbs_available_timer = CCBS_AVAILABLE_TIMER_DEFAULT,
|
||||||
|
.cc_recall_timer = CC_RECALL_TIMER_DEFAULT,
|
||||||
|
.cc_max_agents = CC_MAX_AGENTS_DEFAULT,
|
||||||
|
.cc_max_monitors = CC_MAX_MONITORS_DEFAULT,
|
||||||
|
.cc_callback_macro = "",
|
||||||
|
.cc_agent_dialstring = "",
|
||||||
|
};
|
||||||
|
|
||||||
|
void ast_cc_default_config_params(struct ast_cc_config_params *params)
|
||||||
|
{
|
||||||
|
*params = cc_default_params;
|
||||||
|
}
|
||||||
|
|
||||||
struct ast_cc_config_params *__ast_cc_config_params_init(const char *file, int line, const char *function)
|
struct ast_cc_config_params *__ast_cc_config_params_init(const char *file, int line, const char *function)
|
||||||
{
|
{
|
||||||
#if defined(__AST_DEBUG_MALLOC)
|
#if defined(__AST_DEBUG_MALLOC)
|
||||||
struct ast_cc_config_params *params = __ast_calloc(1, sizeof(*params), file, line, function);
|
struct ast_cc_config_params *params = __ast_malloc(sizeof(*params), file, line, function);
|
||||||
#else
|
#else
|
||||||
struct ast_cc_config_params *params = ast_calloc(1, sizeof(*params));
|
struct ast_cc_config_params *params = ast_malloc(sizeof(*params));
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (!params) {
|
if (!params) {
|
||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
/* Yeah, I could use the get/set functions, but what's the point since
|
ast_cc_default_config_params(params);
|
||||||
* I have direct access to the structure fields in this file.
|
|
||||||
*/
|
|
||||||
params->cc_agent_policy = AST_CC_AGENT_NEVER;
|
|
||||||
params->cc_monitor_policy = AST_CC_MONITOR_NEVER;
|
|
||||||
params->cc_offer_timer = CC_OFFER_TIMER_DEFAULT;
|
|
||||||
params->ccnr_available_timer = CCNR_AVAILABLE_TIMER_DEFAULT;
|
|
||||||
params->ccbs_available_timer = CCBS_AVAILABLE_TIMER_DEFAULT;
|
|
||||||
params->cc_recall_timer = CC_RECALL_TIMER_DEFAULT;
|
|
||||||
params->cc_max_agents = CC_MAX_AGENTS_DEFAULT;
|
|
||||||
params->cc_max_monitors = CC_MAX_MONITORS_DEFAULT;
|
|
||||||
/* No need to set cc_callback_macro since calloc will 0 it out anyway */
|
|
||||||
return params;
|
return params;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user