summaryrefslogtreecommitdiff
path: root/channels/chan_iax2.c
diff options
context:
space:
mode:
authorMark Spencer <markster@digium.com>2005-10-17 22:26:33 +0000
committerMark Spencer <markster@digium.com>2005-10-17 22:26:33 +0000
commit4e919f337ce523e555d3bdfa94ba22614318a6d7 (patch)
tree3a8d21864533fd0345e3bf2ac373e18f7f3b7476 /channels/chan_iax2.c
parenta863d2b280b517e176dbe3de2015f98509be1104 (diff)
Fix queue, iax and sip formatting issues (bug #5449)
git-svn-id: https://origsvn.digium.com/svn/asterisk/trunk@6811 65c4cc65-6c06-0410-ace0-fbb531ad65f3
Diffstat (limited to 'channels/chan_iax2.c')
-rwxr-xr-xchannels/chan_iax2.c27
1 files changed, 18 insertions, 9 deletions
diff --git a/channels/chan_iax2.c b/channels/chan_iax2.c
index 4633f80d6..6bd6ea566 100755
--- a/channels/chan_iax2.c
+++ b/channels/chan_iax2.c
@@ -4114,7 +4114,7 @@ static int iax2_show_users(int fd, int argc, char *argv[])
#undef FORMAT2
}
-static int iax2_show_peers(int fd, int argc, char *argv[])
+static int __iax2_show_peers(int manager, int fd, int argc, char *argv[])
{
regex_t regexbuf;
int havepattern = 0;
@@ -4123,13 +4123,14 @@ static int iax2_show_peers(int fd, int argc, char *argv[])
int offline_peers = 0;
int unmonitored_peers = 0;
-#define FORMAT2 "%-15.15s %-15.15s %s %-15.15s %-8s %s %-10s\n"
-#define FORMAT "%-15.15s %-15.15s %s %-15.15s %-5d%s %s %-10s\n"
+#define FORMAT2 "%-15.15s %-15.15s %s %-15.15s %-8s %s %-10s%s"
+#define FORMAT "%-15.15s %-15.15s %s %-15.15s %-5d%s %s %-10s%s"
struct iax2_peer *peer;
char name[256];
char iabuf[INET_ADDRSTRLEN];
int registeredonly=0;
+ char *term = manager ? "\r\n" : "\n";
switch (argc) {
case 6:
@@ -4165,7 +4166,7 @@ static int iax2_show_peers(int fd, int argc, char *argv[])
}
ast_mutex_lock(&peerl.lock);
- ast_cli(fd, FORMAT2, "Name/Username", "Host", " ", "Mask", "Port", " ", "Status");
+ ast_cli(fd, FORMAT2, "Name/Username", "Host", " ", "Mask", "Port", " ", "Status", term);
for (peer = peerl.peers;peer;peer = peer->next) {
char nm[20];
char status[20];
@@ -4208,19 +4209,19 @@ static int iax2_show_peers(int fd, int argc, char *argv[])
ast_test_flag(peer, IAX_DYNAMIC) ? "(D)" : "(S)",
nm,
ntohs(peer->addr.sin_port), ast_test_flag(peer, IAX_TRUNK) ? "(T)" : " ",
- peer->encmethods ? "(E)" : " ", status);
+ peer->encmethods ? "(E)" : " ", status, term);
ast_cli(fd, FORMAT, name,
peer->addr.sin_addr.s_addr ? ast_inet_ntoa(iabuf, sizeof(iabuf), peer->addr.sin_addr) : "(Unspecified)",
ast_test_flag(peer, IAX_DYNAMIC) ? "(D)" : "(S)",
nm,
ntohs(peer->addr.sin_port), ast_test_flag(peer, IAX_TRUNK) ? "(T)" : " ",
- peer->encmethods ? "(E)" : " ", status);
+ peer->encmethods ? "(E)" : " ", status, term);
total_peers++;
}
ast_mutex_unlock(&peerl.lock);
- ast_cli(fd,"%d iax2 peers [%d online, %d offline, %d unmonitored]\n", total_peers, online_peers, offline_peers, unmonitored_peers);
+ ast_cli(fd,"%d iax2 peers [%d online, %d offline, %d unmonitored]%s", total_peers, online_peers, offline_peers, unmonitored_peers, term);
if (havepattern)
regfree(&regexbuf);
@@ -4230,6 +4231,10 @@ static int iax2_show_peers(int fd, int argc, char *argv[])
#undef FORMAT2
}
+static int iax2_show_peers(int fd, int argc, char *argv[])
+{
+ return __iax2_show_peers(0, fd, argc, argv);
+}
static int manager_iax2_show_netstats( struct mansession *s, struct message *m )
{
ast_cli_netstats(s->fd, 0);
@@ -4267,8 +4272,12 @@ static int manager_iax2_show_peers( struct mansession *s, struct message *m )
{
char *a[] = { "iax2", "show", "users" };
int ret;
- ret = iax2_show_peers( s->fd, 3, a );
- ast_cli( s->fd, "\r\n\r\n" );
+ char *id;
+ id = astman_get_header(m,"ActionID");
+ if (id && !ast_strlen_zero(id))
+ ast_cli(s->fd, "ActionID: %s\r\n",id);
+ ret = __iax2_show_peers(1, s->fd, 3, a );
+ ast_cli(s->fd, "\r\n\r\n" );
return ret;
} /* /JDG */