res = ast_db_put(db_family, key, value);
if((res)&&(option_verbose >= 4))
- ast_verbose(VERBOSE_PREFIX_4 "AlarmReceiver: database_increment write error");
+ ast_verbose(VERBOSE_PREFIX_4 "AlarmReceiver: database_increment write error\n");
return;
}
* */
if ( read_data == -1 )
{
- ast_log(LOG_WARNING,"Unable to read from cache/festival fd");
+ ast_log(LOG_WARNING,"Unable to read from cache/festival fd\n");
close(fd);
ast_config_destroy(cfg);
LOCAL_USER_REMOVE(u);
args = ast_strdupa(data);
if (!args) {
- ast_log(LOG_ERROR, "Out of memory");
+ ast_log(LOG_ERROR, "Out of memory\n");
LOCAL_USER_REMOVE(u);
return buf;
}
struct ast_config *cfg;
char *cat, *tmp;
struct ast_variable *var;
- struct member *prev, *cur, *newm;
+ struct member *prev, *cur, *newm, *next;
int new;
char *general_val = NULL;
char interface[80];
}
/* Free remaining members marked as delme */
- for (prev = NULL, newm = NULL, cur = q->members; cur; prev = cur, cur = cur->next) {
- if (newm) {
- free(newm);
- newm = NULL;
- }
-
- if (cur->delme) {
- if (prev) {
- prev->next = cur->next;
- newm = cur;
- } else {
- q->members = cur->next;
- newm = cur;
- }
- remove_from_interfaces(cur->interface);
- }
+ for (prev = NULL, cur = q->members, next = cur ? cur->next : NULL;
+ cur;
+ cur = next, next = cur ? cur->next : NULL) {
+ if (!cur->delme)
+ continue;
+
+ if (prev)
+ prev->next = next;
+ else
+ q->members = next;
+
+ remove_from_interfaces(cur->interface);
+ free(cur);
}
+
if (!new)
ast_mutex_unlock(&q->lock);
if (new) {
{
struct chan_list *ch=MISDN_ASTERISK_TECH_PVT(ast);
- if (!ch) { ast_verbose("No chan_list in misdn_call"); return -1;}
+ if (!ch) { ast_verbose("No chan_list in misdn_call\n"); return -1;}
newbc->capability=ast->transfercapability;
pbx_builtin_setvar_helper(ast,"TRANSFERCAPABILITY",ast_transfercapability2str(newbc->capability));
f = ast_dsp_process(tmp->ast, tmp->dsp, f2);
if (f && (f->frametype == AST_FRAME_DTMF)) {
- ast_log(LOG_DEBUG, "Detected inband DTMF digit: %c", f->subclass);
+ ast_log(LOG_DEBUG, "Detected inband DTMF digit: %c\n", f->subclass);
if (f->subclass == 'f' && tmp->faxdetect) {
/* Fax tone -- Handle and return NULL */
struct ast_channel *ast = tmp->ast;
if (!recordhistory || !p)
return 0;
if(!(hist = malloc(sizeof(struct sip_history)))) {
- ast_log(LOG_WARNING, "Can't allocate memory for history");
+ ast_log(LOG_WARNING, "Can't allocate memory for history\n");
return 0;
}
memset(hist, 0, sizeof(struct sip_history));
parse_request(&req);
req.method = find_sip_method(req.rlPart1);
if (ast_test_flag(&req, SIP_PKT_DEBUG)) {
- ast_verbose("--- (%d headers %d lines)", req.headers, req.lines);
- if (req.headers + req.lines == 0)
- ast_verbose(" Nat keepalive ");
- ast_verbose("---\n");
+ ast_verbose("--- (%d headers %d lines)%s ---\n", req.headers, req.lines, (req.headers + req.lines == 0) ? " Nat keepalive" : "");
}
if (req.headers < 2) {
l->sub = sub;
} else {
/* XXX Should find a way to clean up our memory */
- ast_log(LOG_WARNING, "Out of memory allocating subchannel");
+ ast_log(LOG_WARNING, "Out of memory allocating subchannel\n");
return NULL;
}
}
d->lines = l;
} else {
/* XXX Should find a way to clean up our memory */
- ast_log(LOG_WARNING, "Out of memory allocating line");
+ ast_log(LOG_WARNING, "Out of memory allocating line\n");
return NULL;
}
} else {
if (skinnysock < 0) {
skinnysock = socket(AF_INET, SOCK_STREAM, 0);
if(setsockopt(skinnysock, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on)) == -1) {
- ast_log(LOG_ERROR, "Set Socket Options failed: errno %d, %s", errno, strerror(errno));
+ ast_log(LOG_ERROR, "Set Socket Options failed: errno %d, %s\n", errno, strerror(errno));
ast_config_destroy(cfg);
return 0;
}
if (!src) {
src = iax_template_find(def, 0);
if (!src)
- ast_log(LOG_WARNING, "Unable to locate default base template '%s' for creating '%s', omitting.", def, s);
+ ast_log(LOG_WARNING, "Unable to locate default base template '%s' for creating '%s', omitting.\n", def, s);
}
if (!src)
return -1;
/* IF we have an optimization frame, send it */
if (s->opt) {
if (s->opt->offset < AST_FRIENDLY_OFFSET)
- ast_log(LOG_WARNING, "Returning a frame of inappropriate offset (%d).",
+ ast_log(LOG_WARNING, "Returning a frame of inappropriate offset (%d).\n",
s->opt->offset);
opt = s->opt;
s->opt = NULL;
time_t myt;
if (!data) {
- ast_log(LOG_ERROR, "Must specify type of timeout to get.");
+ ast_log(LOG_ERROR, "Must specify type of timeout to get.\n");
return NULL;
}
break;
default:
- ast_log(LOG_ERROR, "Unknown timeout type specified.");
+ ast_log(LOG_ERROR, "Unknown timeout type specified.\n");
break;
}
struct tm myt;
if (!data) {
- ast_log(LOG_ERROR, "Must specify type of timeout to set.");
+ ast_log(LOG_ERROR, "Must specify type of timeout to set.\n");
return;
}
break;
default:
- ast_log(LOG_ERROR, "Unknown timeout type specified.");
+ ast_log(LOG_ERROR, "Unknown timeout type specified.\n");
break;
}
}
/*! Used for sending a log message */
/*!
\brief This is the standard logger function. Probably the only way you will invoke it would be something like this:
- ast_log(LOG_WHATEVER, "Problem with the %s Captain. We should get some more. Will %d be enough?", "flux capacitor", 10);
+ ast_log(LOG_WHATEVER, "Problem with the %s Captain. We should get some more. Will %d be enough?\n", "flux capacitor", 10);
where WHATEVER is one of ERROR, DEBUG, EVENT, NOTICE, or WARNING depending
on which log you wish to output to. These are implemented as macros, that
will provide the function with the needed arguments.
char *exten, *party=NULL, *app=NULL, *app_args=NULL;
if (!tmp_val) {
- ast_log(LOG_ERROR, "res_features: strdup failed");
+ ast_log(LOG_ERROR, "res_features: strdup failed\n");
continue;
}
{
char tmp[256];
if (ast_strlen_zero(fname_base)) {
- ast_log(LOG_WARNING, "Cannot change monitor filename of channel %s to null", chan->name);
+ ast_log(LOG_WARNING, "Cannot change monitor filename of channel %s to null\n", chan->name);
return -1;
}
files_DIR = opendir(class->dir);
if (!files_DIR) {
- ast_log(LOG_WARNING, "Cannot open dir %s or dir does not exist", class->dir);
+ ast_log(LOG_WARNING, "Cannot open dir %s or dir does not exist\n", class->dir);
return -1;
}
res = ast_register_application(app4, moh4_exec, synopsis4, descrip4);
if (!init_classes(0)) { /* No music classes configured, so skip it */
- ast_log(LOG_WARNING, "No music on hold classes configured, disabling music on hold.");
+ ast_log(LOG_WARNING, "No music on hold classes configured, disabling music on hold.\n");
} else {
ast_install_music_functions(local_ast_moh_start, local_ast_moh_stop, local_ast_moh_cleanup);
}