diff options
author | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-17 22:26:33 +0000 |
---|---|---|
committer | markster <markster@f38db490-d61c-443f-a65b-d21fe96a405b> | 2005-10-17 22:26:33 +0000 |
commit | 97027d88cce78f52b44971a3c3e9fe6a5d160c88 (patch) | |
tree | 3a8d21864533fd0345e3bf2ac373e18f7f3b7476 /channels/chan_iax2.c | |
parent | a3a280b42bec3b6dde314022bf6d4087c0b6d9be (diff) |
Fix queue, iax and sip formatting issues (bug #5449)
git-svn-id: http://svn.digium.com/svn/asterisk/trunk@6811 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'channels/chan_iax2.c')
-rwxr-xr-x | channels/chan_iax2.c | 27 |
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(®exbuf); @@ -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 */ |