git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@7012 65c4cc65-6c06-0410-ace0-fbb531ad65f3
This commit is contained in:
Kevin P. Fleming
2005-11-08 02:11:42 +00:00
parent a0a9769616
commit 00d3c31496
2 changed files with 24 additions and 14 deletions

View File

@@ -309,26 +309,34 @@ char *astman_get_header(struct message *m, char *var)
struct ast_variable *astman_get_variables(struct message *m)
{
int varlen, x;
int varlen, x, y;
struct ast_variable *head = NULL, *cur;
char *var, *val;
unsigned int var_count;
char *vars[32];
varlen = strlen("Variable: ");
for (x = 0; x < m->hdrcount; x++) {
if (!strncasecmp("Variable: ", m->headers[x], varlen)) {
var = val = ast_strdupa(m->headers[x] + varlen);
if (!var)
return head;
strsep(&val, "=");
if (!val || ast_strlen_zero(var))
continue;
cur = ast_variable_new(var, val);
if (head) {
cur->next = head;
head = cur;
} else
head = cur;
if (strncasecmp("Variable: ", m->headers[x], varlen))
continue;
if (!(var = ast_strdupa(m->headers[x] + varlen)))
return head;
if ((var_count = ast_app_separate_args(var, '|', vars, sizeof(vars) / sizeof(var[0])))) {
for (y = 0; y < var_count; y++) {
var = val = vars[y];
strsep(&val, "=");
if (!val || ast_strlen_zero(var))
continue;
cur = ast_variable_new(var, val);
if (head) {
cur->next = head;
head = cur;
} else
head = cur;
}
}
}