static struct ast_taskprocessor *device_state_tps;
AST_THREADSTORAGE(switch_data);
+AST_THREADSTORAGE(extensionstate_buf);
/*!
\brief ast_exten: An extension
/*! \brief Check state of extension by using hints */
static int ast_extension_state2(struct ast_exten *e)
{
- char hint[AST_MAX_EXTENSION] = "";
+ struct ast_str *hint = ast_str_thread_get(&extensionstate_buf, 16);
char *cur, *rest;
struct ast_devstate_aggregate agg;
enum ast_device_state state;
ast_devstate_aggregate_init(&agg);
- ast_copy_string(hint, ast_get_extension_app(e), sizeof(hint));
+ ast_str_set(&hint, 0, "%s", ast_get_extension_app(e));
- rest = hint; /* One or more devices separated with a & character */
+ rest = hint->str; /* One or more devices separated with a & character */
while ( (cur = strsep(&rest, "&")) )
ast_devstate_aggregate_add(&agg, ast_device_state(cur));