summaryrefslogtreecommitdiff
path: root/apps
diff options
context:
space:
mode:
authorTilghman Lesher <tilghman@meg.abyt.es>2008-12-13 08:36:35 +0000
committerTilghman Lesher <tilghman@meg.abyt.es>2008-12-13 08:36:35 +0000
commitc8223fc9578754dfaef1b337e5f0dfff546461b4 (patch)
tree0559c99680217b78c0bda37a131b5f09794f43c6 /apps
parent3b96ae826e7e280bff1d16ddc50d9328c7ea70ac (diff)
Merge ast_str_opaque branch (discontinue usage of ast_str internals)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@163991 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'apps')
-rw-r--r--apps/app_chanisavail.c14
-rw-r--r--apps/app_dumpchan.c12
-rw-r--r--apps/app_externalivr.c9
-rw-r--r--apps/app_followme.c5
-rw-r--r--apps/app_meetme.c14
-rw-r--r--apps/app_queue.c16
-rw-r--r--apps/app_voicemail.c15
7 files changed, 42 insertions, 43 deletions
diff --git a/apps/app_chanisavail.c b/apps/app_chanisavail.c
index bc1adcc79..556bafd71 100644
--- a/apps/app_chanisavail.c
+++ b/apps/app_chanisavail.c
@@ -160,13 +160,13 @@ static int chanavail_exec(struct ast_channel *chan, void *data)
status = inuse = ast_device_state(trychan);
}
if ((inuse <= 1) && (tempchan = ast_request(tech, chan->nativeformats, number, &status))) {
- ast_str_append(&tmp_availchan, 0, "%s%s", tmp_availchan->used ? "&" : "", tempchan->name);
+ ast_str_append(&tmp_availchan, 0, "%s%s", ast_str_strlen(tmp_availchan) ? "&" : "", tempchan->name);
snprintf(tmp, sizeof(tmp), "%s/%s", tech, number);
- ast_str_append(&tmp_availorig, 0, "%s%s", tmp_availorig->used ? "&" : "", tmp);
+ ast_str_append(&tmp_availorig, 0, "%s%s", ast_str_strlen(tmp_availorig) ? "&" : "", tmp);
snprintf(tmp, sizeof(tmp), "%d", status);
- ast_str_append(&tmp_availstat, 0, "%s%s", tmp_availstat->used ? "&" : "", tmp);
+ ast_str_append(&tmp_availstat, 0, "%s%s", ast_str_strlen(tmp_availstat) ? "&" : "", tmp);
ast_hangup(tempchan);
tempchan = NULL;
@@ -176,16 +176,16 @@ static int chanavail_exec(struct ast_channel *chan, void *data)
}
} else {
snprintf(tmp, sizeof(tmp), "%d", status);
- ast_str_append(&tmp_availstat, 0, "%s%s", tmp_availstat->used ? "&" : "", tmp);
+ ast_str_append(&tmp_availstat, 0, "%s%s", ast_str_strlen(tmp_availstat) ? "&" : "", tmp);
}
cur = rest;
} while (cur);
}
- pbx_builtin_setvar_helper(chan, "AVAILCHAN", tmp_availchan->str);
+ pbx_builtin_setvar_helper(chan, "AVAILCHAN", ast_str_buffer(tmp_availchan));
/* Store the originally used channel too */
- pbx_builtin_setvar_helper(chan, "AVAILORIGCHAN", tmp_availorig->str);
- pbx_builtin_setvar_helper(chan, "AVAILSTATUS", tmp_availstat->str);
+ pbx_builtin_setvar_helper(chan, "AVAILORIGCHAN", ast_str_buffer(tmp_availorig));
+ pbx_builtin_setvar_helper(chan, "AVAILSTATUS", ast_str_buffer(tmp_availstat));
return 0;
}
diff --git a/apps/app_dumpchan.c b/apps/app_dumpchan.c
index d3bf17f6c..c598bee75 100644
--- a/apps/app_dumpchan.c
+++ b/apps/app_dumpchan.c
@@ -35,6 +35,7 @@ ASTERISK_FILE_VERSION(__FILE__, "$Revision$")
#include "asterisk/pbx.h"
#include "asterisk/module.h"
#include "asterisk/channel.h"
+#include "asterisk/app.h"
/*** DOCUMENTATION
<application name="DumpChan" language="en_US">
@@ -148,7 +149,7 @@ static int serialize_showchan(struct ast_channel *c, char *buf, size_t size)
static int dumpchan_exec(struct ast_channel *chan, void *data)
{
- struct ast_str *vars = ast_str_alloca(BUFSIZ * 4); /* XXX very large! */
+ struct ast_str *vars = ast_str_thread_get(&global_app_buf, 16);
char info[1024];
int level = 0;
static char *line = "================================================================================";
@@ -156,10 +157,11 @@ static int dumpchan_exec(struct ast_channel *chan, void *data)
if (!ast_strlen_zero(data))
level = atoi(data);
- pbx_builtin_serialize_variables(chan, &vars);
- serialize_showchan(chan, info, sizeof(info));
- if (option_verbose >= level)
- ast_verbose("\nDumping Info For Channel: %s:\n%s\nInfo:\n%s\nVariables:\n%s%s\n", chan->name, line, info, vars->str, line);
+ if (option_verbose >= level) {
+ serialize_showchan(chan, info, sizeof(info));
+ pbx_builtin_serialize_variables(chan, &vars);
+ ast_verbose("\nDumping Info For Channel: %s:\n%s\nInfo:\n%s\nVariables:\n%s%s\n", chan->name, line, info, ast_str_buffer(vars), line);
+ }
return 0;
}
diff --git a/apps/app_externalivr.c b/apps/app_externalivr.c
index 20eda9b43..936a111ac 100644
--- a/apps/app_externalivr.c
+++ b/apps/app_externalivr.c
@@ -122,8 +122,8 @@ static void send_eivr_event(FILE *handle, const char event, const char *data,
ast_str_append(&tmp, 0, ",%s", data);
}
- fprintf(handle, "%s\n", tmp->str);
- ast_debug(1, "sent '%s'\n", tmp->str);
+ fprintf(handle, "%s\n", ast_str_buffer(tmp));
+ ast_debug(1, "sent '%s'\n", ast_str_buffer(tmp));
}
static void *gen_alloc(struct ast_channel *chan, void *params)
@@ -276,7 +276,7 @@ static void ast_eivr_getvariable(struct ast_channel *chan, char *data, char *out
ast_str_append(&newstring, 0, "%s=%s,", variable, value);
ast_channel_unlock(chan);
- ast_copy_string(outbuf, newstring->str, outbuflen);
+ ast_copy_string(outbuf, ast_str_buffer(newstring), outbuflen);
}
}
@@ -659,7 +659,8 @@ static int eivr_comm(struct ast_channel *chan, struct ivr_localuser *u,
continue;
if (input[0] == 'P') {
- send_eivr_event(eivr_events, 'P', args->str, chan);
+ struct ast_str *tmp = (struct ast_str *) args;
+ send_eivr_event(eivr_events, 'P', ast_str_buffer(tmp), chan);
} else if ( input[0] == 'T' ) {
ast_chan_log(LOG_WARNING, chan, "Answering channel if needed and starting generator\n");
if (chan->_state != AST_STATE_UP) {
diff --git a/apps/app_followme.c b/apps/app_followme.c
index bce763f29..62a3cb248 100644
--- a/apps/app_followme.c
+++ b/apps/app_followme.c
@@ -960,9 +960,8 @@ static struct call_followme *find_realtime(const char *name)
}
/* This one has to exist; it was part of the query */
ordstr = ast_variable_retrieve(cfg, catg, "ordinal");
- ast_str_make_space(&str, strlen(numstr) + 1);
- ast_copy_string(str->str, numstr, str->len);
- if ((cur = create_followme_number(str->str, timeout, atoi(ordstr)))) {
+ ast_str_set(&str, 0, "%s", numstr);
+ if ((cur = create_followme_number(ast_str_buffer(str), timeout, atoi(ordstr)))) {
AST_LIST_INSERT_TAIL(&new->numbers, cur, entry);
}
}
diff --git a/apps/app_meetme.c b/apps/app_meetme.c
index d22cef3cb..025ad3561 100644
--- a/apps/app_meetme.c
+++ b/apps/app_meetme.c
@@ -1260,7 +1260,7 @@ static char *meetme_show_cmd(struct ast_cli_entry *e, int cmd, struct ast_cli_ar
min = ((now - cnf->start) % 3600) / 60;
sec = (now - cnf->start) % 60;
if (!concise) {
- ast_cli(a->fd, MC_DATA_FORMAT, cnf->confno, cnf->users, cmdline->str, hr, min, sec, cnf->isdynamic ? "Dynamic" : "Static", cnf->locked ? "Yes" : "No");
+ ast_cli(a->fd, MC_DATA_FORMAT, cnf->confno, cnf->users, ast_str_buffer(cmdline), hr, min, sec, cnf->isdynamic ? "Dynamic" : "Static", cnf->locked ? "Yes" : "No");
} else {
ast_cli(a->fd, "%s!%d!%d!%02d:%02d:%02d!%d!%d\n",
cnf->confno,
@@ -1345,9 +1345,9 @@ static char *meetme_show_cmd(struct ast_cli_entry *e, int cmd, struct ast_cli_ar
return CLI_SHOWUSAGE;
}
- ast_debug(1, "Cmdline: %s\n", cmdline->str);
+ ast_debug(1, "Cmdline: %s\n", ast_str_buffer(cmdline));
- admin_exec(NULL, cmdline->str);
+ admin_exec(NULL, ast_str_buffer(cmdline));
ast_free(cmdline);
return CLI_SUCCESS;
@@ -1435,9 +1435,9 @@ static char *meetme_cmd(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a
return CLI_SHOWUSAGE;
}
- ast_debug(1, "Cmdline: %s\n", cmdline->str);
+ ast_debug(1, "Cmdline: %s\n", ast_str_buffer(cmdline));
- admin_exec(NULL, cmdline->str);
+ admin_exec(NULL, ast_str_buffer(cmdline));
ast_free(cmdline);
return CLI_SUCCESS;
@@ -4615,7 +4615,7 @@ static void *run_station(void *data)
ast_set_flag(&conf_flags,
CONFFLAG_QUIET | CONFFLAG_MARKEDEXIT | CONFFLAG_PASS_DTMF | CONFFLAG_SLA_STATION);
answer_trunk_chan(trunk_ref->chan);
- conf = build_conf(conf_name->str, "", "", 0, 0, 1, trunk_ref->chan);
+ conf = build_conf(ast_str_buffer(conf_name), "", "", 0, 0, 1, trunk_ref->chan);
if (conf) {
conf_run(trunk_ref->chan, conf, conf_flags.flags, NULL);
dispose_conf(conf);
@@ -4625,7 +4625,7 @@ static void *run_station(void *data)
if (ast_atomic_dec_and_test((int *) &trunk_ref->trunk->active_stations) &&
trunk_ref->state != SLA_TRUNK_STATE_ONHOLD_BYME) {
ast_str_append(&conf_name, 0, ",K");
- admin_exec(NULL, conf_name->str);
+ admin_exec(NULL, ast_str_buffer(conf_name));
trunk_ref->trunk->hold_stations = 0;
sla_change_trunk_state(trunk_ref->trunk, SLA_TRUNK_STATE_IDLE, ALL_TRUNK_REFS, NULL);
}
diff --git a/apps/app_queue.c b/apps/app_queue.c
index 1863acdaa..70c915160 100644
--- a/apps/app_queue.c
+++ b/apps/app_queue.c
@@ -2284,7 +2284,7 @@ static void do_hang(struct callattempt *o)
/*! \brief convert "\n" to "\nVariable: " ready for manager to use */
static char *vars2manager(struct ast_channel *chan, char *vars, size_t len)
{
- struct ast_str *buf = ast_str_alloca(len + 1);
+ struct ast_str *buf = ast_str_thread_get(&global_app_buf, len + 1);
char *tmp;
if (pbx_builtin_serialize_variables(chan, &buf)) {
@@ -2292,7 +2292,7 @@ static char *vars2manager(struct ast_channel *chan, char *vars, size_t len)
/* convert "\n" to "\nVariable: " */
strcpy(vars, "Variable: ");
- tmp = buf->str;
+ tmp = ast_str_buffer(buf);
for (i = 0, j = 10; (i < len - 1) && (j < len - 1); i++, j++) {
vars[j] = tmp[i];
@@ -2601,12 +2601,12 @@ static int say_periodic_announcement(struct queue_ent *qe, int ringing)
if (qe->parent->randomperiodicannounce) {
qe->last_periodic_announce_sound = ((unsigned long) ast_random()) % qe->parent->numperiodicannounce;
} else if (qe->last_periodic_announce_sound >= qe->parent->numperiodicannounce ||
- ast_strlen_zero(qe->parent->sound_periodicannounce[qe->last_periodic_announce_sound]->str)) {
+ ast_str_strlen(qe->parent->sound_periodicannounce[qe->last_periodic_announce_sound]) == 0) {
qe->last_periodic_announce_sound = 0;
}
/* play the announcement */
- res = play_file(qe->chan, qe->parent->sound_periodicannounce[qe->last_periodic_announce_sound]->str);
+ res = play_file(qe->chan, ast_str_buffer(qe->parent->sound_periodicannounce[qe->last_periodic_announce_sound]));
if ((res > 0 && !valid_exit(qe, res)) || res < 0)
res = 0;
@@ -5734,7 +5734,7 @@ static char *__queues_show(struct mansession *s, int fd, int argc, char **argv)
ast_str_append(&out, 0, ") in '%s' strategy (%ds holdtime), W:%d, C:%d, A:%d, SL:%2.1f%% within %ds",
int2strat(q->strategy), q->holdtime, q->weight,
q->callscompleted, q->callsabandoned,sl,q->servicelevel);
- do_print(s, fd, out->str);
+ do_print(s, fd, ast_str_buffer(out));
if (!ao2_container_count(q->members))
do_print(s, fd, " No Members");
else {
@@ -5759,7 +5759,7 @@ static char *__queues_show(struct mansession *s, int fd, int argc, char **argv)
mem->calls, (long) (time(NULL) - mem->lastcall));
else
ast_str_append(&out, 0, " has taken no calls yet");
- do_print(s, fd, out->str);
+ do_print(s, fd, ast_str_buffer(out));
ao2_ref(mem, -1);
}
}
@@ -5774,7 +5774,7 @@ static char *__queues_show(struct mansession *s, int fd, int argc, char **argv)
ast_str_set(&out, 0, " %d. %s (wait: %ld:%2.2ld, prio: %d)",
pos++, qe->chan->name, (long) (now - qe->start) / 60,
(long) (now - qe->start) % 60, qe->prio);
- do_print(s, fd, out->str);
+ do_print(s, fd, ast_str_buffer(out));
}
}
do_print(s, fd, ""); /* blank line between entries */
@@ -5795,7 +5795,7 @@ static char *__queues_show(struct mansession *s, int fd, int argc, char **argv)
ast_str_set(&out, 0, "No such queue: %s.", argv[2]);
else
ast_str_set(&out, 0, "No queues.");
- do_print(s, fd, out->str);
+ do_print(s, fd, ast_str_buffer(out));
}
return CLI_SUCCESS;
}
diff --git a/apps/app_voicemail.c b/apps/app_voicemail.c
index f23624fa2..fc2a5244c 100644
--- a/apps/app_voicemail.c
+++ b/apps/app_voicemail.c
@@ -10196,12 +10196,12 @@ static void free_vm_zones(void)
AST_LIST_UNLOCK(&zones);
}
-static char *substitute_escapes(const char *value)
+static const char *substitute_escapes(const char *value)
{
- char *current, *result;
+ char *current;
/* Add 16 for fudge factor */
- struct ast_str *str = ast_str_create(strlen(value) + 16);
+ struct ast_str *str = ast_str_thread_get(&global_app_buf, strlen(value) + 16);
/* Substitute strings \r, \n, and \t into the appropriate characters */
for (current = (char *) value; *current; current++) {
@@ -10235,10 +10235,7 @@ static char *substitute_escapes(const char *value)
}
}
- result = ast_strdup(str->str);
- ast_free(str);
-
- return result;
+ return ast_str_buffer(str);
}
static int load_config(int reload)
@@ -10858,13 +10855,13 @@ static int load_config(int reload)
emailsubject = ast_strdup(val);
}
if ((val = ast_variable_retrieve(cfg, "general", "emailbody"))) {
- emailbody = substitute_escapes(val);
+ emailbody = ast_strdup(substitute_escapes(val));
}
if ((val = ast_variable_retrieve(cfg, "general", "pagersubject"))) {
pagersubject = ast_strdup(val);
}
if ((val = ast_variable_retrieve(cfg, "general", "pagerbody"))) {
- pagerbody = substitute_escapes(val);
+ pagerbody = ast_strdup(substitute_escapes(val));
}
AST_LIST_UNLOCK(&users);
ast_config_destroy(cfg);