diff options
author | Tilghman Lesher <tilghman@meg.abyt.es> | 2008-12-13 08:36:35 +0000 |
---|---|---|
committer | Tilghman Lesher <tilghman@meg.abyt.es> | 2008-12-13 08:36:35 +0000 |
commit | c8223fc9578754dfaef1b337e5f0dfff546461b4 (patch) | |
tree | 0559c99680217b78c0bda37a131b5f09794f43c6 /apps | |
parent | 3b96ae826e7e280bff1d16ddc50d9328c7ea70ac (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.c | 14 | ||||
-rw-r--r-- | apps/app_dumpchan.c | 12 | ||||
-rw-r--r-- | apps/app_externalivr.c | 9 | ||||
-rw-r--r-- | apps/app_followme.c | 5 | ||||
-rw-r--r-- | apps/app_meetme.c | 14 | ||||
-rw-r--r-- | apps/app_queue.c | 16 | ||||
-rw-r--r-- | apps/app_voicemail.c | 15 |
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); |