if (q) {
int buflen = 0, count = 0;
struct ao2_iterator mem_iter = ao2_iterator_init(q->members, 0);
+ const char *name_to_list;
while ((m = ao2_iterator_next(&mem_iter))) {
/* strcat() is always faster than printf() */
strncat(buf + buflen, ",", len - buflen - 1);
buflen++;
}
- strncat(buf + buflen, m->interface, len - buflen - 1);
- buflen += strlen(m->interface);
+ name_to_list = ast_strlen_zero(m->membername) ? m->interface : m->membername;
+ strncat(buf + buflen, name_to_list, len - buflen - 1);
+ buflen += strlen(name_to_list);
/* Safeguard against overflow (negative length) */
if (buflen >= len - 2) {
ao2_ref(m, -1);
} else
ast_build_string(&max, &max_left, " has taken no calls yet");
if (s)
- astman_append(s, " %s%s%s", mem->interface, max_buf, term);
+ astman_append(s, " %s%s%s",
+ ast_strlen_zero(mem->membername) ? mem->interface : mem->membername,
+ max_buf, term);
else
- ast_cli(fd, " %s%s%s", mem->interface, max_buf, term);
+ ast_cli(fd, " %s%s%s",
+ ast_strlen_zero(mem->membername) ? mem->interface : mem->membername,
+ max_buf, term);
ao2_ref(mem, -1);
}
} else if (s)
if (++which > state) {
char *tmp;
ast_mutex_unlock(&q->lock);
- tmp = ast_strdup(m->interface);
+ tmp = ast_strdup((ast_strlen_zero(m->membername) ? m->interface : m->membername));
ao2_ref(m, -1);
return tmp;
}
if (p->expire > -1)
ast_sched_del(sched, p->expire);
ast_device_state_changed("IAX2/%s", p->name); /* Activate notification */
- p->expire = iax2_sched_add(sched, (p->expiry + 10) * 1000, expire_registry, (void *)p->name);
+ p->expire = iax2_sched_add(sched, (p->expiry + 10) * 1000, expire_registry, (void *)(char *)p->name);
if (iax2_regfunk)
iax2_regfunk(p->name, 1);
register_peer_exten(p, 1);