aboutsummaryrefslogtreecommitdiffstats
path: root/pbx.c
diff options
context:
space:
mode:
authorkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2006-02-14 23:42:36 +0000
committerkpfleming <kpfleming@f38db490-d61c-443f-a65b-d21fe96a405b>2006-02-14 23:42:36 +0000
commit69f7e69869d726709046bffd71fd109b7dc4560d (patch)
tree14af2c1d8853ddb0857db29b448f72736e4cab44 /pbx.c
parenta6a33b46c2b26cc5a7688943418f16939689a4ef (diff)
add 'systemname' option to prefix channel unique IDs with (issue #5825)
convert chan->uniqueid to a stringfield from a fixed-size buffer git-svn-id: http://svn.digium.com/svn/asterisk/trunk@10088 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx.c')
-rw-r--r--pbx.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/pbx.c b/pbx.c
index 6e3c8df56..04f9a312a 100644
--- a/pbx.c
+++ b/pbx.c
@@ -890,7 +890,7 @@ static char *substring(const char *value, int offset, int length, char *workspac
void pbx_retrieve_variable(struct ast_channel *c, const char *var, char **ret, char *workspace, int workspacelen, struct varshead *headp)
{
const char not_found = '\0';
- char tmpvar[80];
+ char *tmpvar;
const char *s; /* the result */
int offset, length;
int i, need_substring;
@@ -904,7 +904,7 @@ void pbx_retrieve_variable(struct ast_channel *c, const char *var, char **ret, c
* Then if called directly, we might need to run substring() on the result;
* remember this for later in 'need_substring', 'offset' and 'length'
*/
- ast_copy_string(tmpvar, var, sizeof(tmpvar)); /* parse_variable_name modifies the string */
+ tmpvar = ast_strdupa(var); /* parse_variable_name modifies the string */
need_substring = parse_variable_name(tmpvar, &offset, &length, &i /* ignored */);
/*
@@ -960,6 +960,8 @@ void pbx_retrieve_variable(struct ast_channel *c, const char *var, char **ret, c
if (!strcmp(var, "EPOCH")) {
snprintf(workspace, workspacelen, "%u",(int)time(NULL));
s = workspace;
+ } else if (!strcmp(var, "SYSTEMNAME")) {
+ ast_copy_string(workspace, ast_config_AST_SYSTEM_NAME, workspacelen);
}
}
/* if not found, look into chanvars or global vars */