Merged revisions 316265 via svnmerge from

https://origsvn.digium.com/svn/asterisk/branches/1.8

........
  r316265 | russell | 2011-05-03 14:55:49 -0500 (Tue, 03 May 2011) | 5 lines
  
  Fix a bunch of compiler warnings generated by gcc 4.6.0.
  
  Most of these are -Wunused-but-set-variable, but there were a few others
  mixed in here, as well.
........


git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@316293 65c4cc65-6c06-0410-ace0-fbb531ad65f3
10-digiumphones
Russell Bryant 14 years ago
parent 810b9c8879
commit 37aa52fd78

@ -157,7 +157,6 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data)
int iTotalTime = 0; int iTotalTime = 0;
int iWordsCount = 0; int iWordsCount = 0;
int currentState = STATE_IN_WORD; int currentState = STATE_IN_WORD;
int previousState = STATE_IN_SILENCE;
int consecutiveVoiceDuration = 0; int consecutiveVoiceDuration = 0;
char amdCause[256] = "", amdStatus[256] = ""; char amdCause[256] = "", amdStatus[256] = "";
char *parse = ast_strdupa(data); char *parse = ast_strdupa(data);
@ -303,7 +302,6 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data)
if (silenceDuration >= betweenWordsSilence) { if (silenceDuration >= betweenWordsSilence) {
if (currentState != STATE_IN_SILENCE ) { if (currentState != STATE_IN_SILENCE ) {
previousState = currentState;
ast_verb(3, "AMD: Channel [%s]. Changed state to STATE_IN_SILENCE\n", chan->name); ast_verb(3, "AMD: Channel [%s]. Changed state to STATE_IN_SILENCE\n", chan->name);
} }
/* Find words less than word duration */ /* Find words less than word duration */
@ -343,7 +341,6 @@ static void isAnsweringMachine(struct ast_channel *chan, const char *data)
if (consecutiveVoiceDuration >= minimumWordLength && currentState == STATE_IN_SILENCE) { if (consecutiveVoiceDuration >= minimumWordLength && currentState == STATE_IN_SILENCE) {
iWordsCount++; iWordsCount++;
ast_verb(3, "AMD: Channel [%s]. Word detected. iWordsCount:%d\n", chan->name, iWordsCount); ast_verb(3, "AMD: Channel [%s]. Word detected. iWordsCount:%d\n", chan->name, iWordsCount);
previousState = currentState;
currentState = STATE_IN_WORD; currentState = STATE_IN_WORD;
} }
if (consecutiveVoiceDuration >= maximumWordLength){ if (consecutiveVoiceDuration >= maximumWordLength){

@ -163,7 +163,6 @@ static int send_waveform_to_channel(struct ast_channel *chan, char *waveform, in
{ {
int res = 0; int res = 0;
int fds[2]; int fds[2];
int pid = -1;
int needed = 0; int needed = 0;
struct ast_format owriteformat; struct ast_format owriteformat;
struct ast_frame *f; struct ast_frame *f;
@ -196,7 +195,6 @@ static int send_waveform_to_channel(struct ast_channel *chan, char *waveform, in
res = send_waveform_to_fd(waveform, length, fds[1]); res = send_waveform_to_fd(waveform, length, fds[1]);
if (res >= 0) { if (res >= 0) {
pid = res;
/* Order is important -- there's almost always going to be mp3... we want to prioritize the /* Order is important -- there's almost always going to be mp3... we want to prioritize the
user */ user */
for (;;) { for (;;) {
@ -258,10 +256,6 @@ static int send_waveform_to_channel(struct ast_channel *chan, char *waveform, in
close(fds[0]); close(fds[0]);
close(fds[1]); close(fds[1]);
#if 0
if (pid > -1)
kill(pid, SIGKILL);
#endif
if (!res && owriteformat.id) if (!res && owriteformat.id)
ast_set_write_format(chan, &owriteformat); ast_set_write_format(chan, &owriteformat);
return res; return res;
@ -285,7 +279,6 @@ static int festival_exec(struct ast_channel *chan, const char *vdata)
char ack[4]; char ack[4];
char *waveform; char *waveform;
int filesize; int filesize;
int wave;
char bigstring[MAXFESTLEN]; char bigstring[MAXFESTLEN];
int i; int i;
struct MD5Context md5ctx; struct MD5Context md5ctx;
@ -494,7 +487,6 @@ static int festival_exec(struct ast_channel *chan, const char *vdata)
/* Read back info from server */ /* Read back info from server */
/* This assumes only one waveform will come back, also LP is unlikely */ /* This assumes only one waveform will come back, also LP is unlikely */
wave = 0;
do { do {
int read_data; int read_data;
for (n = 0; n < 3; ) { for (n = 0; n < 3; ) {

@ -804,7 +804,6 @@ static void findmeexec(struct fm_args *tpargs)
char *rest, *number; char *rest, *number;
struct findme_user *tmpuser; struct findme_user *tmpuser;
struct findme_user *fmuser; struct findme_user *fmuser;
struct findme_user *headuser;
struct findme_user_listptr *findme_user_list; struct findme_user_listptr *findme_user_list;
int status; int status;
@ -915,7 +914,6 @@ static void findmeexec(struct fm_args *tpargs)
fmuser = NULL; fmuser = NULL;
tmpuser = NULL; tmpuser = NULL;
headuser = NULL;
if (winner) if (winner)
break; break;

@ -112,7 +112,6 @@ static int ices_exec(struct ast_channel *chan, const char *data)
int pid = -1; int pid = -1;
int flags; int flags;
struct ast_format oreadformat; struct ast_format oreadformat;
struct timeval last;
struct ast_frame *f; struct ast_frame *f;
char filename[256]=""; char filename[256]="";
char *c; char *c;
@ -123,8 +122,6 @@ static int ices_exec(struct ast_channel *chan, const char *data)
return -1; return -1;
} }
last = ast_tv(0, 0);
if (pipe(fds)) { if (pipe(fds)) {
ast_log(LOG_WARNING, "Unable to create pipe\n"); ast_log(LOG_WARNING, "Unable to create pipe\n");
return -1; return -1;

@ -1266,13 +1266,22 @@ static int sendmail(struct minivm_template *template, struct minivm_account *vmu
char tmpcmd[PATH_MAX]; char tmpcmd[PATH_MAX];
int tmpfd; int tmpfd;
/**
* XXX
* /bug tmpfd is a leaked fd. The file is also never unlinked.
* See app_voicemail.c for how the code works there that
* doesn't have this bug.
*/
ast_copy_string(newtmp, "/tmp/XXXXXX", sizeof(newtmp)); ast_copy_string(newtmp, "/tmp/XXXXXX", sizeof(newtmp));
ast_debug(3, "newtmp: %s\n", newtmp); ast_debug(3, "newtmp: %s\n", newtmp);
tmpfd = mkstemp(newtmp); tmpfd = mkstemp(newtmp);
if (tmpfd > -1) {
snprintf(tmpcmd, sizeof(tmpcmd), "sox -v %.4f %s.%s %s.%s", vmu->volgain, filename, format, newtmp, format); snprintf(tmpcmd, sizeof(tmpcmd), "sox -v %.4f %s.%s %s.%s", vmu->volgain, filename, format, newtmp, format);
ast_safe_system(tmpcmd); ast_safe_system(tmpcmd);
finalfilename = newtmp; finalfilename = newtmp;
ast_debug(3, "VOLGAIN: Stored at: %s.%s - Level: %.4f - Mailbox: %s\n", filename, format, vmu->volgain, vmu->username); ast_debug(3, "VOLGAIN: Stored at: %s.%s - Level: %.4f - Mailbox: %s\n", filename, format, vmu->volgain, vmu->username);
}
} else { } else {
finalfilename = ast_strdupa(filename); finalfilename = ast_strdupa(filename);
} }
@ -1828,7 +1837,6 @@ static int leave_voicemail(struct ast_channel *chan, char *username, struct leav
char callerid[256]; char callerid[256];
FILE *txt; FILE *txt;
int res = 0, txtdes; int res = 0, txtdes;
int msgnum;
int duration = 0; int duration = 0;
char date[256]; char date[256];
char tmpdir[PATH_MAX]; char tmpdir[PATH_MAX];
@ -1871,7 +1879,6 @@ static int leave_voicemail(struct ast_channel *chan, char *username, struct leav
pbx_builtin_setvar_helper(chan, "MVM_RECORD_STATUS", "FAILED"); pbx_builtin_setvar_helper(chan, "MVM_RECORD_STATUS", "FAILED");
return res; return res;
} }
msgnum = 0;
userdir = check_dirpath(tmpdir, sizeof(tmpdir), vmu->domain, username, "tmp"); userdir = check_dirpath(tmpdir, sizeof(tmpdir), vmu->domain, username, "tmp");
@ -2452,7 +2459,6 @@ static int minivm_accmess_exec(struct ast_channel *chan, const char *data)
char *message = NULL; char *message = NULL;
char *prompt = NULL; char *prompt = NULL;
int duration; int duration;
int cmd;
if (ast_strlen_zero(data)) { if (ast_strlen_zero(data)) {
ast_log(LOG_ERROR, "MinivmAccmess needs at least two arguments: account and option\n"); ast_log(LOG_ERROR, "MinivmAccmess needs at least two arguments: account and option\n");
@ -2526,7 +2532,7 @@ static int minivm_accmess_exec(struct ast_channel *chan, const char *data)
} }
snprintf(filename,sizeof(filename), "%s%s/%s/%s", MVM_SPOOL_DIR, vmu->domain, vmu->username, message); snprintf(filename,sizeof(filename), "%s%s/%s/%s", MVM_SPOOL_DIR, vmu->domain, vmu->username, message);
/* Maybe we should check the result of play_record_review ? */ /* Maybe we should check the result of play_record_review ? */
cmd = play_record_review(chan, prompt, filename, global_maxgreet, default_vmformat, 0, vmu, &duration, NULL, FALSE); play_record_review(chan, prompt, filename, global_maxgreet, default_vmformat, 0, vmu, &duration, NULL, FALSE);
ast_debug(1, "Recorded new %s message in %s (duration %d)\n", message, filename, duration); ast_debug(1, "Recorded new %s message in %s (duration %d)\n", message, filename, duration);
@ -3238,12 +3244,10 @@ static int minivm_account_func_read(struct ast_channel *chan, const char *cmd, c
check_dirpath(buf, len, vmu->domain, vmu->username, NULL); check_dirpath(buf, len, vmu->domain, vmu->username, NULL);
} else { /* Look in channel variables */ } else { /* Look in channel variables */
struct ast_variable *var; struct ast_variable *var;
int found = 0;
for (var = vmu->chanvars ; var ; var = var->next) for (var = vmu->chanvars ; var ; var = var->next)
if (!strcmp(var->name, colname)) { if (!strcmp(var->name, colname)) {
ast_copy_string(buf, var->value, len); ast_copy_string(buf, var->value, len);
found = 1;
break; break;
} }
} }

@ -101,7 +101,6 @@ static int originate_exec(struct ast_channel *chan, const char *data)
char *parse; char *parse;
char *chantech, *chandata; char *chantech, *chandata;
int res = -1; int res = -1;
int outgoing_res = 0;
int outgoing_status = 0; int outgoing_status = 0;
static const unsigned int timeout = 30; static const unsigned int timeout = 30;
static const char default_exten[] = "s"; static const char default_exten[] = "s";
@ -154,14 +153,14 @@ static int originate_exec(struct ast_channel *chan, const char *data)
ast_debug(1, "Originating call to '%s/%s' and connecting them to extension %s,%s,%d\n", ast_debug(1, "Originating call to '%s/%s' and connecting them to extension %s,%s,%d\n",
chantech, chandata, args.arg1, exten, priority); chantech, chandata, args.arg1, exten, priority);
outgoing_res = ast_pbx_outgoing_exten(chantech, cap_slin, chandata, ast_pbx_outgoing_exten(chantech, cap_slin, chandata,
timeout * 1000, args.arg1, exten, priority, &outgoing_status, 0, NULL, timeout * 1000, args.arg1, exten, priority, &outgoing_status, 0, NULL,
NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL);
} else if (!strcasecmp(args.type, "app")) { } else if (!strcasecmp(args.type, "app")) {
ast_debug(1, "Originating call to '%s/%s' and connecting them to %s(%s)\n", ast_debug(1, "Originating call to '%s/%s' and connecting them to %s(%s)\n",
chantech, chandata, args.arg1, S_OR(args.arg2, "")); chantech, chandata, args.arg1, S_OR(args.arg2, ""));
outgoing_res = ast_pbx_outgoing_app(chantech, cap_slin, chandata, ast_pbx_outgoing_app(chantech, cap_slin, chandata,
timeout * 1000, args.arg1, args.arg2, &outgoing_status, 0, NULL, timeout * 1000, args.arg1, args.arg2, &outgoing_status, 0, NULL,
NULL, NULL, NULL, NULL); NULL, NULL, NULL, NULL);
} else { } else {

@ -4323,7 +4323,6 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
char *agiexec = NULL; char *agiexec = NULL;
char *macroexec = NULL; char *macroexec = NULL;
char *gosubexec = NULL; char *gosubexec = NULL;
int ret = 0;
const char *monitorfilename; const char *monitorfilename;
const char *monitor_exec; const char *monitor_exec;
const char *monitor_options; const char *monitor_options;
@ -4838,7 +4837,7 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
/* We purposely lock the CDR so that pbx_exec does not update the application data */ /* We purposely lock the CDR so that pbx_exec does not update the application data */
if (qe->chan->cdr) if (qe->chan->cdr)
ast_set_flag(qe->chan->cdr, AST_CDR_FLAG_LOCKED); ast_set_flag(qe->chan->cdr, AST_CDR_FLAG_LOCKED);
ret = pbx_exec(qe->chan, mixmonapp, mixmonargs); pbx_exec(qe->chan, mixmonapp, mixmonargs);
if (qe->chan->cdr) if (qe->chan->cdr)
ast_clear_flag(qe->chan->cdr, AST_CDR_FLAG_LOCKED); ast_clear_flag(qe->chan->cdr, AST_CDR_FLAG_LOCKED);
@ -4970,7 +4969,7 @@ static int try_calling(struct queue_ent *qe, const char *options, char *announce
application = pbx_findapp("agi"); application = pbx_findapp("agi");
if (application) { if (application) {
agiexec = ast_strdupa(agi); agiexec = ast_strdupa(agi);
ret = pbx_exec(qe->chan, application, agiexec); pbx_exec(qe->chan, application, agiexec);
} else } else
ast_log(LOG_WARNING, "Asked to execute an AGI on this channel, but could not find application (agi)!\n"); ast_log(LOG_WARNING, "Asked to execute an AGI on this channel, but could not find application (agi)!\n");
} }

@ -7061,7 +7061,6 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
char *dir; char *dir;
int curmsg; int curmsg;
char urgent_str[7] = ""; char urgent_str[7] = "";
char tmptxtfile[PATH_MAX];
int prompt_played = 0; int prompt_played = 0;
#ifndef IMAP_STORAGE #ifndef IMAP_STORAGE
char msgfile[PATH_MAX], textfile[PATH_MAX], backup[PATH_MAX], backup_textfile[PATH_MAX]; char msgfile[PATH_MAX], textfile[PATH_MAX], backup[PATH_MAX], backup_textfile[PATH_MAX];
@ -7074,7 +7073,6 @@ static int forward_message(struct ast_channel *chan, char *context, struct vm_st
dir = vms->curdir; dir = vms->curdir;
curmsg = vms->curmsg; curmsg = vms->curmsg;
tmptxtfile[0] = '\0';
while (!res && !valid_extensions) { while (!res && !valid_extensions) {
int use_directory = 0; int use_directory = 0;
if (ast_test_flag((&globalflags), VM_DIRECFORWARD)) { if (ast_test_flag((&globalflags), VM_DIRECFORWARD)) {

@ -887,7 +887,6 @@ int agent_set_base_channel(struct ast_channel *chan, struct ast_channel *base)
static int agent_hangup(struct ast_channel *ast) static int agent_hangup(struct ast_channel *ast)
{ {
struct agent_pvt *p = ast->tech_pvt; struct agent_pvt *p = ast->tech_pvt;
int howlong = 0;
ast_mutex_lock(&p->lock); ast_mutex_lock(&p->lock);
p->owner = NULL; p->owner = NULL;
@ -908,11 +907,8 @@ static int agent_hangup(struct ast_channel *ast)
ast_debug(1, "Hangup called for state %s\n", ast_state2str(ast->_state)); ast_debug(1, "Hangup called for state %s\n", ast_state2str(ast->_state));
if (p->start && (ast->_state != AST_STATE_UP)) { if (p->start && (ast->_state != AST_STATE_UP)) {
howlong = time(NULL) - p->start;
p->start = 0; p->start = 0;
} else if (ast->_state == AST_STATE_RESERVED) } else
howlong = 0;
else
p->start = 0; p->start = 0;
if (p->chan) { if (p->chan) {
p->chan->_bridge = NULL; p->chan->_bridge = NULL;
@ -1856,7 +1852,6 @@ static int login_exec(struct ast_channel *chan, const char *data)
int max_login_tries = maxlogintries; int max_login_tries = maxlogintries;
struct agent_pvt *p; struct agent_pvt *p;
struct ast_module_user *u; struct ast_module_user *u;
int login_state = 0;
char user[AST_MAX_AGENT] = ""; char user[AST_MAX_AGENT] = "";
char pass[AST_MAX_AGENT]; char pass[AST_MAX_AGENT];
char agent[AST_MAX_AGENT] = ""; char agent[AST_MAX_AGENT] = "";
@ -1950,7 +1945,6 @@ static int login_exec(struct ast_channel *chan, const char *data)
ast_mutex_lock(&p->lock); ast_mutex_lock(&p->lock);
if (!strcmp(p->agent, user) && if (!strcmp(p->agent, user) &&
!strcmp(p->password, pass) && !p->pending) { !strcmp(p->password, pass) && !p->pending) {
login_state = 1; /* Successful Login */
/* Ensure we can't be gotten until we're done */ /* Ensure we can't be gotten until we're done */
p->lastdisc = ast_tvnow(); p->lastdisc = ast_tvnow();

@ -295,12 +295,10 @@ static int phone_call(struct ast_channel *ast, char *dest, int timeout)
ast_localtime(&UtcTime, &tm, NULL); ast_localtime(&UtcTime, &tm, NULL);
memset(&cid, 0, sizeof(PHONE_CID)); memset(&cid, 0, sizeof(PHONE_CID));
if(&tm != NULL) {
snprintf(cid.month, sizeof(cid.month), "%02d",(tm.tm_mon + 1)); snprintf(cid.month, sizeof(cid.month), "%02d",(tm.tm_mon + 1));
snprintf(cid.day, sizeof(cid.day), "%02d", tm.tm_mday); snprintf(cid.day, sizeof(cid.day), "%02d", tm.tm_mday);
snprintf(cid.hour, sizeof(cid.hour), "%02d", tm.tm_hour); snprintf(cid.hour, sizeof(cid.hour), "%02d", tm.tm_hour);
snprintf(cid.min, sizeof(cid.min), "%02d", tm.tm_min); snprintf(cid.min, sizeof(cid.min), "%02d", tm.tm_min);
}
/* the standard format of ast->callerid is: "name" <number>, but not always complete */ /* the standard format of ast->callerid is: "name" <number>, but not always complete */
if (!ast->connected.id.name.valid if (!ast->connected.id.name.valid
|| ast_strlen_zero(ast->connected.id.name.str)) { || ast_strlen_zero(ast->connected.id.name.str)) {

@ -3610,8 +3610,6 @@ static int manager_skinny_show_lines(struct mansession *s, const struct message
static char *handle_skinny_show_lines(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a) static char *handle_skinny_show_lines(struct ast_cli_entry *e, int cmd, struct ast_cli_args *a)
{ {
int verbose = 0;
switch (cmd) { switch (cmd) {
case CLI_INIT: case CLI_INIT:
e->command = "skinny show lines [verbose]"; e->command = "skinny show lines [verbose]";
@ -3626,9 +3624,7 @@ static char *handle_skinny_show_lines(struct ast_cli_entry *e, int cmd, struct a
} }
if (a->argc == e->args) { if (a->argc == e->args) {
if (!strcasecmp(a->argv[e->args-1], "verbose")) { if (strcasecmp(a->argv[e->args-1], "verbose")) {
verbose = 1;
} else {
return CLI_SHOWUSAGE; return CLI_SHOWUSAGE;
} }
} else if (a->argc != e->args - 1) { } else if (a->argc != e->args - 1) {
@ -4039,7 +4035,6 @@ static void *skinny_ss(void *data)
static int skinny_call(struct ast_channel *ast, char *dest, int timeout) static int skinny_call(struct ast_channel *ast, char *dest, int timeout)
{ {
int res = 0; int res = 0;
int tone = 0;
struct skinny_subchannel *sub = ast->tech_pvt; struct skinny_subchannel *sub = ast->tech_pvt;
struct skinny_line *l = sub->parent; struct skinny_line *l = sub->parent;
struct skinny_device *d = l->device; struct skinny_device *d = l->device;
@ -4069,10 +4064,8 @@ static int skinny_call(struct ast_channel *ast, char *dest, int timeout)
switch (l->hookstate) { switch (l->hookstate) {
case SKINNY_OFFHOOK: case SKINNY_OFFHOOK:
tone = SKINNY_CALLWAITTONE;
break; break;
case SKINNY_ONHOOK: case SKINNY_ONHOOK:
tone = SKINNY_ALERT;
l->activesub = sub; l->activesub = sub;
break; break;
default: default:
@ -4101,7 +4094,6 @@ static int skinny_hangup(struct ast_channel *ast)
struct skinny_subchannel *sub = ast->tech_pvt; struct skinny_subchannel *sub = ast->tech_pvt;
struct skinny_line *l; struct skinny_line *l;
struct skinny_device *d; struct skinny_device *d;
struct skinnysession *s;
if (!sub) { if (!sub) {
ast_debug(1, "Asked to hangup channel not connected\n"); ast_debug(1, "Asked to hangup channel not connected\n");
@ -4110,7 +4102,6 @@ static int skinny_hangup(struct ast_channel *ast)
l = sub->parent; l = sub->parent;
d = l->device; d = l->device;
s = d->session;
if (skinnydebug) if (skinnydebug)
ast_verb(3,"Hanging up %s/%d\n",d->name,sub->callid); ast_verb(3,"Hanging up %s/%d\n",d->name,sub->callid);
@ -5333,7 +5324,6 @@ static int handle_offhook_message(struct skinny_req *req, struct skinnysession *
struct ast_channel *c; struct ast_channel *c;
struct skinny_line *tmp; struct skinny_line *tmp;
int instance; int instance;
int reference;
/* if any line on a device is offhook, than the device must be offhook, /* if any line on a device is offhook, than the device must be offhook,
unless we have shared lines CCM seems that it would never get here, unless we have shared lines CCM seems that it would never get here,
@ -5349,7 +5339,6 @@ static int handle_offhook_message(struct skinny_req *req, struct skinnysession *
} }
instance = letohl(req->data.offhook.instance); instance = letohl(req->data.offhook.instance);
reference = letohl(req->data.offhook.reference);
if (instance) { if (instance) {
sub = find_subchannel_by_instance_reference(d, d->lastlineinstance, d->lastcallreference); sub = find_subchannel_by_instance_reference(d, d->lastlineinstance, d->lastcallreference);
@ -7177,8 +7166,6 @@ static struct ast_channel *skinny_request(const char *type, struct ast_format_ca
int on = 1; int on = 1;
struct ast_config *cfg; struct ast_config *cfg;
char *cat; char *cat;
struct skinny_device *d;
struct skinny_line *l;
int oldport = ntohs(bindaddr.sin_port); int oldport = ntohs(bindaddr.sin_port);
struct ast_flags config_flags = { 0 }; struct ast_flags config_flags = { 0 };
@ -7227,7 +7214,7 @@ static struct ast_channel *skinny_request(const char *type, struct ast_format_ca
config_parse_variables(TYPE_DEF_LINE, default_line, ast_variable_browse(cfg, "lines")); config_parse_variables(TYPE_DEF_LINE, default_line, ast_variable_browse(cfg, "lines"));
cat = ast_category_browse(cfg, "lines"); cat = ast_category_browse(cfg, "lines");
while (cat && strcasecmp(cat, "general") && strcasecmp(cat, "devices")) { while (cat && strcasecmp(cat, "general") && strcasecmp(cat, "devices")) {
l = config_line(cat, ast_variable_browse(cfg, cat)); config_line(cat, ast_variable_browse(cfg, cat));
cat = ast_category_browse(cfg, cat); cat = ast_category_browse(cfg, cat);
} }
@ -7237,7 +7224,7 @@ static struct ast_channel *skinny_request(const char *type, struct ast_format_ca
config_parse_variables(TYPE_DEF_DEVICE, default_device, ast_variable_browse(cfg, "devices")); config_parse_variables(TYPE_DEF_DEVICE, default_device, ast_variable_browse(cfg, "devices"));
cat = ast_category_browse(cfg, "devices"); cat = ast_category_browse(cfg, "devices");
while (cat && strcasecmp(cat, "general") && strcasecmp(cat, "lines")) { while (cat && strcasecmp(cat, "general") && strcasecmp(cat, "lines")) {
d = config_device(cat, ast_variable_browse(cfg, cat)); config_device(cat, ast_variable_browse(cfg, cat));
cat = ast_category_browse(cfg, cat); cat = ast_category_browse(cfg, cat);
} }

@ -1924,7 +1924,7 @@ static int attempt_transfer(struct unistim_subchannel *p1, struct unistim_subcha
int res = 0; int res = 0;
struct ast_channel struct ast_channel
*chana = NULL, *chanb = NULL, *bridgea = NULL, *bridgeb = NULL, *peera = *chana = NULL, *chanb = NULL, *bridgea = NULL, *bridgeb = NULL, *peera =
NULL, *peerb = NULL, *peerc = NULL, *peerd = NULL; NULL, *peerb = NULL, *peerc = NULL;
if (!p1->owner || !p2->owner) { if (!p1->owner || !p2->owner) {
ast_log(LOG_WARNING, "Transfer attempted without dual ownership?\n"); ast_log(LOG_WARNING, "Transfer attempted without dual ownership?\n");
@ -1939,12 +1939,10 @@ static int attempt_transfer(struct unistim_subchannel *p1, struct unistim_subcha
peera = chana; peera = chana;
peerb = chanb; peerb = chanb;
peerc = bridgea; peerc = bridgea;
peerd = bridgeb;
} else if (bridgeb) { } else if (bridgeb) {
peera = chanb; peera = chanb;
peerb = chana; peerb = chana;
peerc = bridgeb; peerc = bridgeb;
peerd = bridgea;
} }
if (peera && peerb && peerc && (peerb != peerc)) { if (peera && peerb && peerc && (peerb != peerc)) {

@ -143,7 +143,7 @@ extern struct {
/* Local variables */ /* Local variables */
integer pbar; integer pbar;
real sbar; real sbar;
integer path[2], iptr, i__, j; integer iptr, i__, j;
real alpha, minsc, maxsc; real alpha, minsc, maxsc;
/* Arguments */ /* Arguments */
@ -389,7 +389,6 @@ n*/
for (i__ = 1; i__ <= 2; ++i__) { for (i__ = 1; i__ <= 2; ++i__) {
j = j % 2 + 1; j = j % 2 + 1;
*pitch = p[*pitch + j * 60 - 61]; *pitch = p[*pitch + j * 60 - 61];
path[i__ - 1] = *pitch;
} }
/* The following statement subtracts one from IPOINT, mod DEPTH. I /* The following statement subtracts one from IPOINT, mod DEPTH. I

@ -355,7 +355,6 @@ static struct ast_frame *wav_read(struct ast_filestream *s, int *whennext)
#if __BYTE_ORDER == __BIG_ENDIAN #if __BYTE_ORDER == __BIG_ENDIAN
int x; int x;
#endif #endif
short *tmp;
int bytes; int bytes;
off_t here; off_t here;
/* Send a frame from the file to the appropriate channel */ /* Send a frame from the file to the appropriate channel */
@ -382,8 +381,8 @@ static struct ast_frame *wav_read(struct ast_filestream *s, int *whennext)
s->fr.datalen = res; s->fr.datalen = res;
s->fr.samples = samples = res / 2; s->fr.samples = samples = res / 2;
tmp = (short *)(s->fr.data.ptr);
#if __BYTE_ORDER == __BIG_ENDIAN #if __BYTE_ORDER == __BIG_ENDIAN
tmp = (short *)(s->fr.data.ptr);
/* file format is little endian so we need to swap */ /* file format is little endian so we need to swap */
for( x = 0; x < samples; x++) for( x = 0; x < samples; x++)
tmp[x] = (tmp[x] << 8) | ((tmp[x] & 0xff00) >> 8); tmp[x] = (tmp[x] << 8) | ((tmp[x] & 0xff00) >> 8);

@ -161,7 +161,6 @@ static int function_enum(struct ast_channel *chan, const char *cmd, char *data,
AST_APP_ARG(record); AST_APP_ARG(record);
AST_APP_ARG(zone); AST_APP_ARG(zone);
); );
int res = 0;
char tech[80]; char tech[80];
char dest[256] = "", tmp[2] = "", num[AST_MAX_EXTENSION] = ""; char dest[256] = "", tmp[2] = "", num[AST_MAX_EXTENSION] = "";
char *s, *p; char *s, *p;
@ -205,7 +204,7 @@ static int function_enum(struct ast_channel *chan, const char *cmd, char *data,
} }
} }
res = ast_get_enum(chan, num, dest, sizeof(dest), tech, sizeof(tech), args.zone, args.options, record, NULL); ast_get_enum(chan, num, dest, sizeof(dest), tech, sizeof(tech), args.zone, args.options, record, NULL);
p = strchr(dest, ':'); p = strchr(dest, ':');
if (p && strcasecmp(tech, "ALL") && !strchr(args.options, 'u')) { if (p && strcasecmp(tech, "ALL") && !strchr(args.options, 'u')) {
@ -414,7 +413,6 @@ static struct ast_custom_function enum_function = {
static int function_txtcidname(struct ast_channel *chan, const char *cmd, static int function_txtcidname(struct ast_channel *chan, const char *cmd,
char *data, char *buf, size_t len) char *data, char *buf, size_t len)
{ {
int res;
AST_DECLARE_APP_ARGS(args, AST_DECLARE_APP_ARGS(args,
AST_APP_ARG(number); AST_APP_ARG(number);
AST_APP_ARG(zone); AST_APP_ARG(zone);
@ -438,7 +436,7 @@ static int function_txtcidname(struct ast_channel *chan, const char *cmd,
args.zone = "e164.arpa"; args.zone = "e164.arpa";
} }
res = ast_get_txt(chan, args.number, buf, len, args.zone); ast_get_txt(chan, args.number, buf, len, args.zone);
return 0; return 0;
} }

@ -535,7 +535,8 @@ struct { \
(var); \ (var); \
__list_prev = __new_prev, (var) = __list_next, \ __list_prev = __new_prev, (var) = __list_next, \
__new_prev = (var), \ __new_prev = (var), \
__list_next = (var) ? (var)->field.next : NULL \ __list_next = (var) ? (var)->field.next : NULL, \
(void) __list_prev \
) )
#define AST_RWLIST_TRAVERSE_SAFE_BEGIN AST_LIST_TRAVERSE_SAFE_BEGIN #define AST_RWLIST_TRAVERSE_SAFE_BEGIN AST_LIST_TRAVERSE_SAFE_BEGIN

@ -365,11 +365,10 @@ const char *ast_file_version_find(const char *file)
struct file_version *iterator; struct file_version *iterator;
AST_RWLIST_WRLOCK(&file_versions); AST_RWLIST_WRLOCK(&file_versions);
AST_RWLIST_TRAVERSE_SAFE_BEGIN(&file_versions, iterator, list) { AST_RWLIST_TRAVERSE(&file_versions, iterator, list) {
if (!strcasecmp(iterator->file, file)) if (!strcasecmp(iterator->file, file))
break; break;
} }
AST_RWLIST_TRAVERSE_SAFE_END;
AST_RWLIST_UNLOCK(&file_versions); AST_RWLIST_UNLOCK(&file_versions);
if (iterator) if (iterator)
return iterator->version; return iterator->version;
@ -580,9 +579,9 @@ static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cl
{ {
uint64_t physmem, freeram; uint64_t physmem, freeram;
uint64_t freeswap = 0; uint64_t freeswap = 0;
int totalswap = 0;
int nprocs = 0; int nprocs = 0;
long uptime = 0; long uptime = 0;
int totalswap = 0;
#if defined(HAVE_SYSINFO) #if defined(HAVE_SYSINFO)
struct sysinfo sys_info; struct sysinfo sys_info;
sysinfo(&sys_info); sysinfo(&sys_info);
@ -665,7 +664,7 @@ static char *handle_show_sysinfo(struct ast_cli_entry *e, int cmd, struct ast_cl
#if defined(HAVE_SYSINFO) #if defined(HAVE_SYSINFO)
ast_cli(a->fd, " Buffer RAM: %" PRIu64 " KiB\n", ((uint64_t) sys_info.bufferram * sys_info.mem_unit) / 1024); ast_cli(a->fd, " Buffer RAM: %" PRIu64 " KiB\n", ((uint64_t) sys_info.bufferram * sys_info.mem_unit) / 1024);
#endif #endif
#if defined (HAVE_SYSCTL) && defined(HAVE_SWAPCTL) #if defined (HAVE_SYSCTL) || defined(HAVE_SWAPCTL)
ast_cli(a->fd, " Total Swap Space: %u KiB\n", totalswap); ast_cli(a->fd, " Total Swap Space: %u KiB\n", totalswap);
ast_cli(a->fd, " Free Swap Space: %" PRIu64 " KiB\n\n", freeswap); ast_cli(a->fd, " Free Swap Space: %" PRIu64 " KiB\n\n", freeswap);
#endif #endif

@ -944,28 +944,25 @@ int ast_channel_audiohook_count_by_source(struct ast_channel *chan, const char *
switch (type) { switch (type) {
case AST_AUDIOHOOK_TYPE_SPY: case AST_AUDIOHOOK_TYPE_SPY:
AST_LIST_TRAVERSE_SAFE_BEGIN(&chan->audiohooks->spy_list, ah, list) { AST_LIST_TRAVERSE(&chan->audiohooks->spy_list, ah, list) {
if (!strcmp(ah->source, source)) { if (!strcmp(ah->source, source)) {
count++; count++;
} }
} }
AST_LIST_TRAVERSE_SAFE_END;
break; break;
case AST_AUDIOHOOK_TYPE_WHISPER: case AST_AUDIOHOOK_TYPE_WHISPER:
AST_LIST_TRAVERSE_SAFE_BEGIN(&chan->audiohooks->whisper_list, ah, list) { AST_LIST_TRAVERSE(&chan->audiohooks->whisper_list, ah, list) {
if (!strcmp(ah->source, source)) { if (!strcmp(ah->source, source)) {
count++; count++;
} }
} }
AST_LIST_TRAVERSE_SAFE_END;
break; break;
case AST_AUDIOHOOK_TYPE_MANIPULATE: case AST_AUDIOHOOK_TYPE_MANIPULATE:
AST_LIST_TRAVERSE_SAFE_BEGIN(&chan->audiohooks->manipulate_list, ah, list) { AST_LIST_TRAVERSE(&chan->audiohooks->manipulate_list, ah, list) {
if (!strcmp(ah->source, source)) { if (!strcmp(ah->source, source)) {
count++; count++;
} }
} }
AST_LIST_TRAVERSE_SAFE_END;
break; break;
default: default:
ast_debug(1, "Invalid audiohook type supplied, (%d)\n", type); ast_debug(1, "Invalid audiohook type supplied, (%d)\n", type);
@ -985,25 +982,22 @@ int ast_channel_audiohook_count_by_source_running(struct ast_channel *chan, cons
switch (type) { switch (type) {
case AST_AUDIOHOOK_TYPE_SPY: case AST_AUDIOHOOK_TYPE_SPY:
AST_LIST_TRAVERSE_SAFE_BEGIN(&chan->audiohooks->spy_list, ah, list) { AST_LIST_TRAVERSE(&chan->audiohooks->spy_list, ah, list) {
if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING)) if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING))
count++; count++;
} }
AST_LIST_TRAVERSE_SAFE_END;
break; break;
case AST_AUDIOHOOK_TYPE_WHISPER: case AST_AUDIOHOOK_TYPE_WHISPER:
AST_LIST_TRAVERSE_SAFE_BEGIN(&chan->audiohooks->whisper_list, ah, list) { AST_LIST_TRAVERSE(&chan->audiohooks->whisper_list, ah, list) {
if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING)) if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING))
count++; count++;
} }
AST_LIST_TRAVERSE_SAFE_END;
break; break;
case AST_AUDIOHOOK_TYPE_MANIPULATE: case AST_AUDIOHOOK_TYPE_MANIPULATE:
AST_LIST_TRAVERSE_SAFE_BEGIN(&chan->audiohooks->manipulate_list, ah, list) { AST_LIST_TRAVERSE(&chan->audiohooks->manipulate_list, ah, list) {
if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING)) if ((!strcmp(ah->source, source)) && (ah->status == AST_AUDIOHOOK_STATUS_RUNNING))
count++; count++;
} }
AST_LIST_TRAVERSE_SAFE_END;
break; break;
default: default:
ast_debug(1, "Invalid audiohook type supplied, (%d)\n", type); ast_debug(1, "Invalid audiohook type supplied, (%d)\n", type);

@ -716,11 +716,8 @@ void ast_cdr_merge(struct ast_cdr *to, struct ast_cdr *from)
void ast_cdr_start(struct ast_cdr *cdr) void ast_cdr_start(struct ast_cdr *cdr)
{ {
char *chan;
for (; cdr; cdr = cdr->next) { for (; cdr; cdr = cdr->next) {
if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) { if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) {
chan = S_OR(cdr->channel, "<unknown>");
check_post(cdr); check_post(cdr);
cdr->start = ast_tvnow(); cdr->start = ast_tvnow();
} }
@ -768,11 +765,8 @@ void ast_cdr_failed(struct ast_cdr *cdr)
void ast_cdr_noanswer(struct ast_cdr *cdr) void ast_cdr_noanswer(struct ast_cdr *cdr)
{ {
char *chan;
while (cdr) { while (cdr) {
if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) { if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) {
chan = !ast_strlen_zero(cdr->channel) ? cdr->channel : "<unknown>";
check_post(cdr); check_post(cdr);
cdr->disposition = AST_CDR_NOANSWER; cdr->disposition = AST_CDR_NOANSWER;
} }
@ -892,11 +886,8 @@ static int cdr_seq_inc(struct ast_cdr *cdr)
int ast_cdr_init(struct ast_cdr *cdr, struct ast_channel *c) int ast_cdr_init(struct ast_cdr *cdr, struct ast_channel *c)
{ {
char *chan;
for ( ; cdr ; cdr = cdr->next) { for ( ; cdr ; cdr = cdr->next) {
if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) { if (!ast_test_flag(cdr, AST_CDR_FLAG_LOCKED)) {
chan = S_OR(cdr->channel, "<unknown>");
ast_copy_string(cdr->channel, c->name, sizeof(cdr->channel)); ast_copy_string(cdr->channel, c->name, sizeof(cdr->channel));
set_one_cid(cdr, c); set_one_cid(cdr, c);
cdr_seq_inc(cdr); cdr_seq_inc(cdr);
@ -1116,7 +1107,6 @@ int ast_cdr_amaflags2int(const char *flag)
static void post_cdr(struct ast_cdr *cdr) static void post_cdr(struct ast_cdr *cdr)
{ {
char *chan;
struct ast_cdr_beitem *i; struct ast_cdr_beitem *i;
for ( ; cdr ; cdr = cdr->next) { for ( ; cdr ; cdr = cdr->next) {
@ -1134,7 +1124,6 @@ static void post_cdr(struct ast_cdr *cdr)
continue; continue;
} }
chan = S_OR(cdr->channel, "<unknown>");
check_post(cdr); check_post(cdr);
ast_set_flag(cdr, AST_CDR_FLAG_POSTED); ast_set_flag(cdr, AST_CDR_FLAG_POSTED);
if (ast_test_flag(cdr, AST_CDR_FLAG_POST_DISABLED)) if (ast_test_flag(cdr, AST_CDR_FLAG_POST_DISABLED))

@ -2531,7 +2531,7 @@ struct ast_datastore *ast_channel_datastore_find(struct ast_channel *chan, const
if (info == NULL) if (info == NULL)
return NULL; return NULL;
AST_LIST_TRAVERSE_SAFE_BEGIN(&chan->datastores, datastore, entry) { AST_LIST_TRAVERSE(&chan->datastores, datastore, entry) {
if (datastore->info != info) { if (datastore->info != info) {
continue; continue;
} }
@ -2546,7 +2546,6 @@ struct ast_datastore *ast_channel_datastore_find(struct ast_channel *chan, const
break; break;
} }
} }
AST_LIST_TRAVERSE_SAFE_END;
return datastore; return datastore;
} }

@ -1021,7 +1021,6 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat,
} else if (cur[0] == '#') { /* A directive - #include or #exec */ } else if (cur[0] == '#') { /* A directive - #include or #exec */
char *cur2; char *cur2;
char real_inclusion_name[256]; char real_inclusion_name[256];
struct ast_config_include *inclu;
int do_include = 0; /* otherwise, it is exec */ int do_include = 0; /* otherwise, it is exec */
cur++; cur++;
@ -1094,7 +1093,7 @@ static int process_text_line(struct ast_config *cfg, struct ast_category **cat,
} }
/* A #include */ /* A #include */
/* record this inclusion */ /* record this inclusion */
inclu = ast_include_new(cfg, cfg->include_level == 1 ? "" : configfile, cur, !do_include, cur2, lineno, real_inclusion_name, sizeof(real_inclusion_name)); ast_include_new(cfg, cfg->include_level == 1 ? "" : configfile, cur, !do_include, cur2, lineno, real_inclusion_name, sizeof(real_inclusion_name));
do_include = ast_config_internal_load(cur, cfg, flags, real_inclusion_name, who_asked) ? 1 : 0; do_include = ast_config_internal_load(cur, cfg, flags, real_inclusion_name, who_asked) ? 1 : 0;
if (!ast_strlen_zero(exec_file)) if (!ast_strlen_zero(exec_file))

@ -787,7 +787,6 @@ static int mf_detect(struct ast_dsp *dsp, digit_detect_state_t *s, int16_t amp[]
float energy[6]; float energy[6];
int best; int best;
int second_best; int second_best;
float famp;
int i; int i;
int j; int j;
int sample; int sample;
@ -812,7 +811,6 @@ static int mf_detect(struct ast_dsp *dsp, digit_detect_state_t *s, int16_t amp[]
/* The following unrolled loop takes only 35% (rough estimate) of the /* The following unrolled loop takes only 35% (rough estimate) of the
time of a rolled loop on the machine on which it was developed */ time of a rolled loop on the machine on which it was developed */
for (j = sample; j < limit; j++) { for (j = sample; j < limit; j++) {
famp = amp[j];
/* With GCC 2.95, the following unrolled code seems to take about 35% /* With GCC 2.95, the following unrolled code seems to take about 35%
(rough estimate) as long as a neat little 0-3 loop */ (rough estimate) as long as a neat little 0-3 loop */
goertzel_sample(s->td.mf.tone_out, amp[j]); goertzel_sample(s->td.mf.tone_out, amp[j]);

@ -918,7 +918,7 @@ struct ast_park_call_args {
static struct parkeduser *park_space_reserve(struct ast_channel *chan, struct ast_channel *peer, struct ast_park_call_args *args) static struct parkeduser *park_space_reserve(struct ast_channel *chan, struct ast_channel *peer, struct ast_park_call_args *args)
{ {
struct parkeduser *pu; struct parkeduser *pu;
int i, parking_space = -1, parking_range; int i, parking_space = -1;
const char *parkinglotname = NULL; const char *parkinglotname = NULL;
const char *parkingexten; const char *parkingexten;
struct ast_parkinglot *parkinglot = NULL; struct ast_parkinglot *parkinglot = NULL;
@ -1031,9 +1031,6 @@ static struct parkeduser *park_space_reserve(struct ast_channel *chan, struct as
int start; int start;
struct parkeduser *cur = NULL; struct parkeduser *cur = NULL;
/* Select parking space within range */
parking_range = parkinglot->parking_stop - parkinglot->parking_start + 1;
if (ast_test_flag(args, AST_PARK_OPT_RANDOMIZE)) { if (ast_test_flag(args, AST_PARK_OPT_RANDOMIZE)) {
start = ast_random() % (parkinglot->parking_stop - parkinglot->parking_start + 1); start = ast_random() % (parkinglot->parking_stop - parkinglot->parking_start + 1);
} else { } else {
@ -1082,7 +1079,6 @@ static struct parkeduser *park_space_reserve(struct ast_channel *chan, struct as
static int park_call_full(struct ast_channel *chan, struct ast_channel *peer, struct ast_park_call_args *args) static int park_call_full(struct ast_channel *chan, struct ast_channel *peer, struct ast_park_call_args *args)
{ {
struct ast_context *con; struct ast_context *con;
int parkingnum_copy;
struct parkeduser *pu = args->pu; struct parkeduser *pu = args->pu;
const char *event_from; const char *event_from;
@ -1111,7 +1107,6 @@ static int park_call_full(struct ast_channel *chan, struct ast_channel *peer, st
pu->start = ast_tvnow(); pu->start = ast_tvnow();
pu->parkingtime = (args->timeout > 0) ? args->timeout : pu->parkinglot->parkingtime; pu->parkingtime = (args->timeout > 0) ? args->timeout : pu->parkinglot->parkingtime;
parkingnum_copy = pu->parkingnum;
if (args->extout) if (args->extout)
*(args->extout) = pu->parkingnum; *(args->extout) = pu->parkingnum;
@ -3460,7 +3455,6 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast
int we_disabled_peer_cdr = 0; int we_disabled_peer_cdr = 0;
struct ast_option_header *aoh; struct ast_option_header *aoh;
struct ast_cdr *bridge_cdr = NULL; struct ast_cdr *bridge_cdr = NULL;
struct ast_cdr *orig_peer_cdr = NULL;
struct ast_cdr *chan_cdr = chan->cdr; /* the proper chan cdr, if there are forked cdrs */ struct ast_cdr *chan_cdr = chan->cdr; /* the proper chan cdr, if there are forked cdrs */
struct ast_cdr *peer_cdr = peer->cdr; /* the proper chan cdr, if there are forked cdrs */ struct ast_cdr *peer_cdr = peer->cdr; /* the proper chan cdr, if there are forked cdrs */
struct ast_cdr *new_chan_cdr = NULL; /* the proper chan cdr, if there are forked cdrs */ struct ast_cdr *new_chan_cdr = NULL; /* the proper chan cdr, if there are forked cdrs */
@ -3532,7 +3526,6 @@ int ast_bridge_call(struct ast_channel *chan,struct ast_channel *peer,struct ast
} }
ast_copy_string(orig_channame,chan->name,sizeof(orig_channame)); ast_copy_string(orig_channame,chan->name,sizeof(orig_channame));
ast_copy_string(orig_peername,peer->name,sizeof(orig_peername)); ast_copy_string(orig_peername,peer->name,sizeof(orig_peername));
orig_peer_cdr = peer_cdr;
if (!chan_cdr || (chan_cdr && !ast_test_flag(chan_cdr, AST_CDR_FLAG_POST_DISABLED))) { if (!chan_cdr || (chan_cdr && !ast_test_flag(chan_cdr, AST_CDR_FLAG_POST_DISABLED))) {

@ -147,7 +147,6 @@ int ast_stopstream(struct ast_channel *tmp)
int ast_writestream(struct ast_filestream *fs, struct ast_frame *f) int ast_writestream(struct ast_filestream *fs, struct ast_frame *f)
{ {
int res = -1; int res = -1;
int alt = 0;
if (f->frametype == AST_FRAME_VIDEO) { if (f->frametype == AST_FRAME_VIDEO) {
if (AST_FORMAT_GET_TYPE(fs->fmt->format.id) == AST_FORMAT_TYPE_AUDIO) { if (AST_FORMAT_GET_TYPE(fs->fmt->format.id) == AST_FORMAT_TYPE_AUDIO) {
/* This is the audio portion. Call the video one... */ /* This is the audio portion. Call the video one... */
@ -160,9 +159,6 @@ int ast_writestream(struct ast_filestream *fs, struct ast_frame *f)
return ast_writestream(fs->vfs, f); return ast_writestream(fs->vfs, f);
/* else ignore */ /* else ignore */
return 0; return 0;
} else {
/* Might / might not have mark set */
alt = 1;
} }
} else if (f->frametype != AST_FRAME_VOICE) { } else if (f->frametype != AST_FRAME_VOICE) {
ast_log(LOG_WARNING, "Tried to write non-voice frame\n"); ast_log(LOG_WARNING, "Tried to write non-voice frame\n");

@ -225,8 +225,6 @@ int fsk_serial(fsk_data *fskd, short *buffer, int *len, int *outbyte)
int i,j,n1,r; int i,j,n1,r;
int samples = 0; int samples = 0;
int olen; int olen;
int beginlen=*len;
int beginlenx;
switch (fskd->state) { switch (fskd->state) {
/* Pick up where we left off */ /* Pick up where we left off */
@ -255,7 +253,6 @@ int fsk_serial(fsk_data *fskd, short *buffer, int *len, int *outbyte)
beginning of a start bit in the TDD sceanario. It just looks for sufficient beginning of a start bit in the TDD sceanario. It just looks for sufficient
level to maybe, perhaps, guess, maybe that its maybe the beginning of level to maybe, perhaps, guess, maybe that its maybe the beginning of
a start bit, perhaps. This whole thing stinks! */ a start bit, perhaps. This whole thing stinks! */
beginlenx=beginlen; /* just to avoid unused war warnings */
if (demodulator(fskd, &fskd->x1, GET_SAMPLE)) if (demodulator(fskd, &fskd->x1, GET_SAMPLE))
return -1; return -1;
samples++; samples++;

@ -1717,7 +1717,7 @@ static const char *__astman_get_header(const struct message *m, char *var, int m
} }
} }
return ""; return result;
} }
/*! \brief /*! \brief

@ -6692,7 +6692,6 @@ static int manager_show_dialplan(struct mansession *s, const struct message *m)
const char *exten, *context; const char *exten, *context;
const char *id = astman_get_header(m, "ActionID"); const char *id = astman_get_header(m, "ActionID");
char idtext[256]; char idtext[256];
int res;
/* Variables used for different counters */ /* Variables used for different counters */
struct dialplan_counters counters; struct dialplan_counters counters;
@ -6707,7 +6706,7 @@ static int manager_show_dialplan(struct mansession *s, const struct message *m)
exten = astman_get_header(m, "Extension"); exten = astman_get_header(m, "Extension");
context = astman_get_header(m, "Context"); context = astman_get_header(m, "Context");
res = manager_show_dialplan_helper(s, m, idtext, context, exten, &counters, NULL); manager_show_dialplan_helper(s, m, idtext, context, exten, &counters, NULL);
if (context && !counters.context_existence) { if (context && !counters.context_existence) {
char errorbuf[BUFSIZ]; char errorbuf[BUFSIZ];
@ -7540,7 +7539,7 @@ static const char * const months[] =
int ast_build_timing(struct ast_timing *i, const char *info_in) int ast_build_timing(struct ast_timing *i, const char *info_in)
{ {
char *info_save, *info; char *info;
int j, num_fields, last_sep = -1; int j, num_fields, last_sep = -1;
/* Check for empty just in case */ /* Check for empty just in case */
@ -7549,7 +7548,7 @@ int ast_build_timing(struct ast_timing *i, const char *info_in)
} }
/* make a copy just in case we were passed a static string */ /* make a copy just in case we were passed a static string */
info_save = info = ast_strdupa(info_in); info = ast_strdupa(info_in);
/* count the number of fields in the timespec */ /* count the number of fields in the timespec */
for (j = 0, num_fields = 1; info[j] != '\0'; j++) { for (j = 0, num_fields = 1; info[j] != '\0'; j++) {

@ -177,10 +177,8 @@ int plc_fillin(plc_state_t *s, int16_t amp[], int len)
float old_weight; float old_weight;
float new_weight; float new_weight;
float gain; float gain;
int16_t *orig_amp;
int orig_len; int orig_len;
orig_amp = amp;
orig_len = len; orig_len = len;
if (s->missing_samples == 0) { if (s->missing_samples == 0) {
/* As the gap in real speech starts we need to assess the last known pitch, /* As the gap in real speech starts we need to assess the last known pitch,

@ -1283,8 +1283,8 @@ enum ast_bridge_result ast_rtp_instance_bridge(struct ast_channel *c0, struct as
*tinstance0 = NULL, *tinstance1 = NULL; *tinstance0 = NULL, *tinstance1 = NULL;
struct ast_rtp_glue *glue0, *glue1; struct ast_rtp_glue *glue0, *glue1;
struct ast_sockaddr addr1, addr2; struct ast_sockaddr addr1, addr2;
enum ast_rtp_glue_result audio_glue0_res = AST_RTP_GLUE_RESULT_FORBID, video_glue0_res = AST_RTP_GLUE_RESULT_FORBID, text_glue0_res = AST_RTP_GLUE_RESULT_FORBID; enum ast_rtp_glue_result audio_glue0_res = AST_RTP_GLUE_RESULT_FORBID, video_glue0_res = AST_RTP_GLUE_RESULT_FORBID;
enum ast_rtp_glue_result audio_glue1_res = AST_RTP_GLUE_RESULT_FORBID, video_glue1_res = AST_RTP_GLUE_RESULT_FORBID, text_glue1_res = AST_RTP_GLUE_RESULT_FORBID; enum ast_rtp_glue_result audio_glue1_res = AST_RTP_GLUE_RESULT_FORBID, video_glue1_res = AST_RTP_GLUE_RESULT_FORBID;
enum ast_bridge_result res = AST_BRIDGE_FAILED; enum ast_bridge_result res = AST_BRIDGE_FAILED;
struct ast_format_cap *cap0 = ast_format_cap_alloc_nolock(); struct ast_format_cap *cap0 = ast_format_cap_alloc_nolock();
struct ast_format_cap *cap1 = ast_format_cap_alloc_nolock(); struct ast_format_cap *cap1 = ast_format_cap_alloc_nolock();
@ -1317,11 +1317,9 @@ enum ast_bridge_result ast_rtp_instance_bridge(struct ast_channel *c0, struct as
audio_glue0_res = glue0->get_rtp_info(c0, &instance0); audio_glue0_res = glue0->get_rtp_info(c0, &instance0);
video_glue0_res = glue0->get_vrtp_info ? glue0->get_vrtp_info(c0, &vinstance0) : AST_RTP_GLUE_RESULT_FORBID; video_glue0_res = glue0->get_vrtp_info ? glue0->get_vrtp_info(c0, &vinstance0) : AST_RTP_GLUE_RESULT_FORBID;
text_glue0_res = glue0->get_trtp_info ? glue0->get_trtp_info(c0, &tinstance0) : AST_RTP_GLUE_RESULT_FORBID;
audio_glue1_res = glue1->get_rtp_info(c1, &instance1); audio_glue1_res = glue1->get_rtp_info(c1, &instance1);
video_glue1_res = glue1->get_vrtp_info ? glue1->get_vrtp_info(c1, &vinstance1) : AST_RTP_GLUE_RESULT_FORBID; video_glue1_res = glue1->get_vrtp_info ? glue1->get_vrtp_info(c1, &vinstance1) : AST_RTP_GLUE_RESULT_FORBID;
text_glue1_res = glue1->get_trtp_info ? glue1->get_trtp_info(c1, &tinstance1) : AST_RTP_GLUE_RESULT_FORBID;
/* If we are carrying video, and both sides are not going to remotely bridge... fail the native bridge */ /* If we are carrying video, and both sides are not going to remotely bridge... fail the native bridge */
if (video_glue0_res != AST_RTP_GLUE_RESULT_FORBID && (audio_glue0_res != AST_RTP_GLUE_RESULT_REMOTE || video_glue0_res != AST_RTP_GLUE_RESULT_REMOTE)) { if (video_glue0_res != AST_RTP_GLUE_RESULT_FORBID && (audio_glue0_res != AST_RTP_GLUE_RESULT_REMOTE || video_glue0_res != AST_RTP_GLUE_RESULT_REMOTE)) {
@ -1433,8 +1431,8 @@ void ast_rtp_instance_early_bridge_make_compatible(struct ast_channel *c0, struc
*vinstance0 = NULL, *vinstance1 = NULL, *vinstance0 = NULL, *vinstance1 = NULL,
*tinstance0 = NULL, *tinstance1 = NULL; *tinstance0 = NULL, *tinstance1 = NULL;
struct ast_rtp_glue *glue0, *glue1; struct ast_rtp_glue *glue0, *glue1;
enum ast_rtp_glue_result audio_glue0_res = AST_RTP_GLUE_RESULT_FORBID, video_glue0_res = AST_RTP_GLUE_RESULT_FORBID, text_glue0_res = AST_RTP_GLUE_RESULT_FORBID; enum ast_rtp_glue_result audio_glue0_res = AST_RTP_GLUE_RESULT_FORBID, video_glue0_res = AST_RTP_GLUE_RESULT_FORBID;
enum ast_rtp_glue_result audio_glue1_res = AST_RTP_GLUE_RESULT_FORBID, video_glue1_res = AST_RTP_GLUE_RESULT_FORBID, text_glue1_res = AST_RTP_GLUE_RESULT_FORBID; enum ast_rtp_glue_result audio_glue1_res = AST_RTP_GLUE_RESULT_FORBID, video_glue1_res = AST_RTP_GLUE_RESULT_FORBID;
struct ast_format_cap *cap0 = ast_format_cap_alloc_nolock(); struct ast_format_cap *cap0 = ast_format_cap_alloc_nolock();
struct ast_format_cap *cap1 = ast_format_cap_alloc_nolock(); struct ast_format_cap *cap1 = ast_format_cap_alloc_nolock();
int res = 0; int res = 0;
@ -1459,11 +1457,9 @@ void ast_rtp_instance_early_bridge_make_compatible(struct ast_channel *c0, struc
audio_glue0_res = glue0->get_rtp_info(c0, &instance0); audio_glue0_res = glue0->get_rtp_info(c0, &instance0);
video_glue0_res = glue0->get_vrtp_info ? glue0->get_vrtp_info(c0, &vinstance0) : AST_RTP_GLUE_RESULT_FORBID; video_glue0_res = glue0->get_vrtp_info ? glue0->get_vrtp_info(c0, &vinstance0) : AST_RTP_GLUE_RESULT_FORBID;
text_glue0_res = glue0->get_trtp_info ? glue0->get_trtp_info(c0, &tinstance0) : AST_RTP_GLUE_RESULT_FORBID;
audio_glue1_res = glue1->get_rtp_info(c1, &instance1); audio_glue1_res = glue1->get_rtp_info(c1, &instance1);
video_glue1_res = glue1->get_vrtp_info ? glue1->get_vrtp_info(c1, &vinstance1) : AST_RTP_GLUE_RESULT_FORBID; video_glue1_res = glue1->get_vrtp_info ? glue1->get_vrtp_info(c1, &vinstance1) : AST_RTP_GLUE_RESULT_FORBID;
text_glue1_res = glue1->get_trtp_info ? glue1->get_trtp_info(c1, &tinstance1) : AST_RTP_GLUE_RESULT_FORBID;
/* If we are carrying video, and both sides are not going to remotely bridge... fail the native bridge */ /* If we are carrying video, and both sides are not going to remotely bridge... fail the native bridge */
if (video_glue0_res != AST_RTP_GLUE_RESULT_FORBID && (audio_glue0_res != AST_RTP_GLUE_RESULT_REMOTE || video_glue0_res != AST_RTP_GLUE_RESULT_REMOTE)) { if (video_glue0_res != AST_RTP_GLUE_RESULT_FORBID && (audio_glue0_res != AST_RTP_GLUE_RESULT_REMOTE || video_glue0_res != AST_RTP_GLUE_RESULT_REMOTE)) {
@ -1525,8 +1521,8 @@ int ast_rtp_instance_early_bridge(struct ast_channel *c0, struct ast_channel *c1
*vinstance0 = NULL, *vinstance1 = NULL, *vinstance0 = NULL, *vinstance1 = NULL,
*tinstance0 = NULL, *tinstance1 = NULL; *tinstance0 = NULL, *tinstance1 = NULL;
struct ast_rtp_glue *glue0, *glue1; struct ast_rtp_glue *glue0, *glue1;
enum ast_rtp_glue_result audio_glue0_res = AST_RTP_GLUE_RESULT_FORBID, video_glue0_res = AST_RTP_GLUE_RESULT_FORBID, text_glue0_res = AST_RTP_GLUE_RESULT_FORBID; enum ast_rtp_glue_result audio_glue0_res = AST_RTP_GLUE_RESULT_FORBID, video_glue0_res = AST_RTP_GLUE_RESULT_FORBID;
enum ast_rtp_glue_result audio_glue1_res = AST_RTP_GLUE_RESULT_FORBID, video_glue1_res = AST_RTP_GLUE_RESULT_FORBID, text_glue1_res = AST_RTP_GLUE_RESULT_FORBID; enum ast_rtp_glue_result audio_glue1_res = AST_RTP_GLUE_RESULT_FORBID, video_glue1_res = AST_RTP_GLUE_RESULT_FORBID;
struct ast_format_cap *cap0 = ast_format_cap_alloc_nolock(); struct ast_format_cap *cap0 = ast_format_cap_alloc_nolock();
struct ast_format_cap *cap1 = ast_format_cap_alloc_nolock(); struct ast_format_cap *cap1 = ast_format_cap_alloc_nolock();
int res = 0; int res = 0;
@ -1558,11 +1554,9 @@ int ast_rtp_instance_early_bridge(struct ast_channel *c0, struct ast_channel *c1
audio_glue0_res = glue0->get_rtp_info(c0, &instance0); audio_glue0_res = glue0->get_rtp_info(c0, &instance0);
video_glue0_res = glue0->get_vrtp_info ? glue0->get_vrtp_info(c0, &vinstance0) : AST_RTP_GLUE_RESULT_FORBID; video_glue0_res = glue0->get_vrtp_info ? glue0->get_vrtp_info(c0, &vinstance0) : AST_RTP_GLUE_RESULT_FORBID;
text_glue0_res = glue0->get_trtp_info ? glue0->get_trtp_info(c0, &tinstance0) : AST_RTP_GLUE_RESULT_FORBID;
audio_glue1_res = glue1->get_rtp_info(c1, &instance1); audio_glue1_res = glue1->get_rtp_info(c1, &instance1);
video_glue1_res = glue1->get_vrtp_info ? glue1->get_vrtp_info(c1, &vinstance1) : AST_RTP_GLUE_RESULT_FORBID; video_glue1_res = glue1->get_vrtp_info ? glue1->get_vrtp_info(c1, &vinstance1) : AST_RTP_GLUE_RESULT_FORBID;
text_glue1_res = glue1->get_trtp_info ? glue1->get_trtp_info(c1, &tinstance1) : AST_RTP_GLUE_RESULT_FORBID;
/* If we are carrying video, and both sides are not going to remotely bridge... fail the native bridge */ /* If we are carrying video, and both sides are not going to remotely bridge... fail the native bridge */
if (video_glue0_res != AST_RTP_GLUE_RESULT_FORBID && (audio_glue0_res != AST_RTP_GLUE_RESULT_REMOTE || video_glue0_res != AST_RTP_GLUE_RESULT_REMOTE)) { if (video_glue0_res != AST_RTP_GLUE_RESULT_FORBID && (audio_glue0_res != AST_RTP_GLUE_RESULT_REMOTE || video_glue0_res != AST_RTP_GLUE_RESULT_REMOTE)) {

@ -664,7 +664,6 @@ struct ast_frame *ast_udptl_read(struct ast_udptl *udptl)
int res; int res;
struct ast_sockaddr addr; struct ast_sockaddr addr;
uint16_t seqno = 0; uint16_t seqno = 0;
uint16_t *udptlheader;
/* Cache where the header will go */ /* Cache where the header will go */
res = ast_recvfrom(udptl->fd, res = ast_recvfrom(udptl->fd,
@ -672,7 +671,6 @@ struct ast_frame *ast_udptl_read(struct ast_udptl *udptl)
sizeof(udptl->rawdata) - AST_FRIENDLY_OFFSET, sizeof(udptl->rawdata) - AST_FRIENDLY_OFFSET,
0, 0,
&addr); &addr);
udptlheader = (uint16_t *)(udptl->rawdata + AST_FRIENDLY_OFFSET);
if (res < 0) { if (res < 0) {
if (errno != EAGAIN) if (errno != EAGAIN)
ast_log(LOG_WARNING, "(%s): UDPTL read error: %s\n", ast_log(LOG_WARNING, "(%s): UDPTL read error: %s\n",

@ -677,7 +677,7 @@ static char *handle_cli_dialplan_save(struct ast_cli_entry *e, int cmd, struct a
int incomplete = 0; /* incomplete config write? */ int incomplete = 0; /* incomplete config write? */
FILE *output; FILE *output;
struct ast_flags config_flags = { 0 }; struct ast_flags config_flags = { 0 };
const char *base, *slash, *file; const char *base, *slash;
switch (cmd) { switch (cmd) {
case CLI_INIT: case CLI_INIT:
@ -716,16 +716,13 @@ static char *handle_cli_dialplan_save(struct ast_cli_entry *e, int cmd, struct a
if (!strstr(a->argv[2], ".conf")) { /*no, this is assumed to be a pathname */ if (!strstr(a->argv[2], ".conf")) { /*no, this is assumed to be a pathname */
/* if filename ends with '/', do not add one */ /* if filename ends with '/', do not add one */
slash = (*(a->argv[2] + strlen(a->argv[2]) -1) == '/') ? "/" : ""; slash = (*(a->argv[2] + strlen(a->argv[2]) -1) == '/') ? "/" : "";
file = config; /* default: 'extensions.conf' */
} else { /* yes, complete file name */ } else { /* yes, complete file name */
slash = ""; slash = "";
file = "";
} }
} else { } else {
/* no config file, default one */ /* no config file, default one */
base = ast_config_AST_CONFIG_DIR; base = ast_config_AST_CONFIG_DIR;
slash = "/"; slash = "/";
file = config;
} }
snprintf(filename, sizeof(filename), "%s%s%s", base, slash, config); snprintf(filename, sizeof(filename), "%s%s%s", base, slash, config);
@ -1640,7 +1637,6 @@ static void pbx_load_users(void)
char dahdicopy[256]; char dahdicopy[256];
char *ext, altcopy[256]; char *ext, altcopy[256];
char *c; char *c;
int len;
int hasvoicemail; int hasvoicemail;
int start, finish, x; int start, finish, x;
struct ast_context *con = NULL; struct ast_context *con = NULL;
@ -1654,7 +1650,6 @@ static void pbx_load_users(void)
if (!strcasecmp(cat, "general")) if (!strcasecmp(cat, "general"))
continue; continue;
iface[0] = '\0'; iface[0] = '\0';
len = sizeof(iface);
if (ast_true(ast_config_option(cfg, cat, "hassip"))) { if (ast_true(ast_config_option(cfg, cat, "hassip"))) {
snprintf(tmp, sizeof(tmp), "SIP/%s", cat); snprintf(tmp, sizeof(tmp), "SIP/%s", cat);
append_interface(iface, sizeof(iface), tmp); append_interface(iface, sizeof(iface), tmp);

@ -1922,7 +1922,7 @@ static int handle_controlstreamfile(struct ast_channel *chan, AGI *agi, int argc
static int handle_streamfile(struct ast_channel *chan, AGI *agi, int argc, const char * const argv[]) static int handle_streamfile(struct ast_channel *chan, AGI *agi, int argc, const char * const argv[])
{ {
int res, vres; int res;
struct ast_filestream *fs, *vfs; struct ast_filestream *fs, *vfs;
long sample_offset = 0, max_length; long sample_offset = 0, max_length;
const char *edigits = ""; const char *edigits = "";
@ -1951,7 +1951,7 @@ static int handle_streamfile(struct ast_channel *chan, AGI *agi, int argc, const
ast_seekstream(fs, sample_offset, SEEK_SET); ast_seekstream(fs, sample_offset, SEEK_SET);
res = ast_applystream(chan, fs); res = ast_applystream(chan, fs);
if (vfs) if (vfs)
vres = ast_applystream(chan, vfs); ast_applystream(chan, vfs);
ast_playstream(fs); ast_playstream(fs);
if (vfs) if (vfs)
ast_playstream(vfs); ast_playstream(vfs);
@ -1972,7 +1972,7 @@ static int handle_streamfile(struct ast_channel *chan, AGI *agi, int argc, const
/*! \brief get option - really similar to the handle_streamfile, but with a timeout */ /*! \brief get option - really similar to the handle_streamfile, but with a timeout */
static int handle_getoption(struct ast_channel *chan, AGI *agi, int argc, const char * const argv[]) static int handle_getoption(struct ast_channel *chan, AGI *agi, int argc, const char * const argv[])
{ {
int res, vres; int res;
struct ast_filestream *fs, *vfs; struct ast_filestream *fs, *vfs;
long sample_offset = 0, max_length; long sample_offset = 0, max_length;
int timeout = 0; int timeout = 0;
@ -2007,7 +2007,7 @@ static int handle_getoption(struct ast_channel *chan, AGI *agi, int argc, const
ast_seekstream(fs, sample_offset, SEEK_SET); ast_seekstream(fs, sample_offset, SEEK_SET);
res = ast_applystream(chan, fs); res = ast_applystream(chan, fs);
if (vfs) if (vfs)
vres = ast_applystream(chan, vfs); ast_applystream(chan, vfs);
ast_playstream(fs); ast_playstream(fs);
if (vfs) if (vfs)
ast_playstream(vfs); ast_playstream(vfs);

@ -1706,7 +1706,7 @@ static void *do_refresh(void *data)
for (;;) { for (;;) {
struct timeval now = ast_tvnow(); struct timeval now = ast_tvnow();
struct timespec ts = {0,}; struct timespec ts = {0,};
int res, wait; int wait;
ast_mutex_lock(&refreshlock); ast_mutex_lock(&refreshlock);
@ -1715,7 +1715,7 @@ static void *do_refresh(void *data)
} }
ts.tv_sec = (now.tv_sec + wait / 1000) + 1; ts.tv_sec = (now.tv_sec + wait / 1000) + 1;
res = ast_cond_timedwait(&refresh_condition, &refreshlock, &ts); ast_cond_timedwait(&refresh_condition, &refreshlock, &ts);
ast_mutex_unlock(&refreshlock); ast_mutex_unlock(&refreshlock);
@ -1742,10 +1742,9 @@ static int unload_module(void)
ao2_callback(calendars, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, NULL, NULL); ao2_callback(calendars, OBJ_UNLINK | OBJ_NODATA | OBJ_MULTIPLE, NULL, NULL);
AST_LIST_LOCK(&techs); AST_LIST_LOCK(&techs);
AST_LIST_TRAVERSE_SAFE_BEGIN(&techs, tech, list) { AST_LIST_TRAVERSE(&techs, tech, list) {
ast_unload_resource(tech->module, 0); ast_unload_resource(tech->module, 0);
} }
AST_LIST_TRAVERSE_SAFE_END;
AST_LIST_UNLOCK(&techs); AST_LIST_UNLOCK(&techs);
return 0; return 0;

@ -2266,9 +2266,7 @@ static char *fax_session_tab_complete(struct ast_cli_args *a)
} }
ao2_ref(s, -1); ao2_ref(s, -1);
} }
if (ao2_iterator_destroy != NULL) {
ao2_iterator_destroy(&i); ao2_iterator_destroy(&i);
}
return name; return name;
} }
@ -2502,9 +2500,7 @@ static char *cli_fax_show_sessions(struct ast_cli_entry *e, int cmd, struct ast_
ast_log(LOG_ERROR, "error printing filenames for 'fax show sessions' command"); ast_log(LOG_ERROR, "error printing filenames for 'fax show sessions' command");
ao2_unlock(s); ao2_unlock(s);
ao2_ref(s, -1); ao2_ref(s, -1);
if (ao2_iterator_destroy != NULL) {
ao2_iterator_destroy(&i); ao2_iterator_destroy(&i);
}
return CLI_FAILURE; return CLI_FAILURE;
} }
@ -2518,9 +2514,7 @@ static char *cli_fax_show_sessions(struct ast_cli_entry *e, int cmd, struct ast_
ao2_unlock(s); ao2_unlock(s);
ao2_ref(s, -1); ao2_ref(s, -1);
} }
if (ao2_iterator_destroy != NULL) {
ao2_iterator_destroy(&i); ao2_iterator_destroy(&i);
}
session_count = ao2_container_count(faxregistry.container); session_count = ao2_container_count(faxregistry.container);
ast_cli(a->fd, "\n%d FAX sessions\n\n", session_count); ast_cli(a->fd, "\n%d FAX sessions\n\n", session_count);

@ -658,13 +658,11 @@ static void *monmp3thread(void *data)
} }
if (class->timer) { if (class->timer) {
struct pollfd pfd = { .fd = ast_timer_fd(class->timer), .events = POLLIN, }; struct pollfd pfd = { .fd = ast_timer_fd(class->timer), .events = POLLIN, };
struct timeval tv;
#ifdef SOLARIS #ifdef SOLARIS
thr_yield(); thr_yield();
#endif #endif
/* Pause some amount of time */ /* Pause some amount of time */
tv = ast_tvnow();
if (ast_poll(&pfd, 1, -1) > 0) { if (ast_poll(&pfd, 1, -1) > 0) {
ast_timer_ack(class->timer, 1); ast_timer_ack(class->timer, 1);
res = 320; res = 320;
@ -1044,7 +1042,6 @@ static int moh_scan_files(struct mohclass *class) {
char filepath[PATH_MAX]; char filepath[PATH_MAX];
char *ext; char *ext;
struct stat statbuf; struct stat statbuf;
int dirnamelen;
int i; int i;
if (class->dir[0] != '/') { if (class->dir[0] != '/') {
@ -1065,7 +1062,6 @@ static int moh_scan_files(struct mohclass *class) {
ast_free(class->filearray[i]); ast_free(class->filearray[i]);
class->total_files = 0; class->total_files = 0;
dirnamelen = strlen(dir_path) + 2;
if (!getcwd(path, sizeof(path))) { if (!getcwd(path, sizeof(path))) {
ast_log(LOG_WARNING, "getcwd() failed: %s\n", strerror(errno)); ast_log(LOG_WARNING, "getcwd() failed: %s\n", strerror(errno));
return -1; return -1;

Loading…
Cancel
Save