diff options
author | mnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-06-22 14:49:36 +0000 |
---|---|---|
committer | mnicholson <mnicholson@f38db490-d61c-443f-a65b-d21fe96a405b> | 2010-06-22 14:49:36 +0000 |
commit | a7cd65efffa2bf83da46d6d8cad11915494e49e6 (patch) | |
tree | 3adda074163241d685c756c9b1994dc21a5f3d2b /pbx/pbx_dundi.c | |
parent | 66dbc11de2fee0ea4ee0f9ab39ce4575efda9202 (diff) |
Allow users to specify a port for dundi peers.
(closes issue #17056)
Reported by: klaus3000
Patches:
dundi-peerport-patch-trunk.txt uploaded by klaus3000 (license 65)
Tested by: klaus3000
git-svn-id: http://svn.digium.com/svn/asterisk/branches/1.4@271761 f38db490-d61c-443f-a65b-d21fe96a405b
Diffstat (limited to 'pbx/pbx_dundi.c')
-rw-r--r-- | pbx/pbx_dundi.c | 13 |
1 files changed, 8 insertions, 5 deletions
diff --git a/pbx/pbx_dundi.c b/pbx/pbx_dundi.c index d56b543bc..0e86d27e6 100644 --- a/pbx/pbx_dundi.c +++ b/pbx/pbx_dundi.c @@ -2519,6 +2519,7 @@ static int dundi_show_peer(int fd, int argc, char *argv[]) ast_cli(fd, "Peer: %s\n", dundi_eid_to_str(eid_str, sizeof(eid_str), &peer->eid)); ast_cli(fd, "Model: %s\n", model2str(peer->model)); ast_cli(fd, "Host: %s\n", peer->addr.sin_addr.s_addr ? ast_inet_ntoa(peer->addr.sin_addr) : "<Unspecified>"); + ast_cli(fd, "Port: %d\n", ntohs(peer->addr.sin_port)); ast_cli(fd, "Dynamic: %s\n", peer->dynamic ? "yes" : "no"); ast_cli(fd, "Reg: %s\n", peer->registerid < 0 ? "No" : "Yes"); ast_cli(fd, "In Key: %s\n", ast_strlen_zero(peer->inkey) ? "<None>" : peer->inkey); @@ -2550,8 +2551,8 @@ static int dundi_show_peer(int fd, int argc, char *argv[]) static int dundi_show_peers(int fd, int argc, char *argv[]) { -#define FORMAT2 "%-20.20s %-15.15s %-10.10s %-8.8s %-15.15s\n" -#define FORMAT "%-20.20s %-15.15s %s %-10.10s %-8.8s %-15.15s\n" +#define FORMAT2 "%-20.20s %-15.15s %-6.6s %-10.10s %-8.8s %-15.15s\n" +#define FORMAT "%-20.20s %-15.15s %s %-6d %-10.10s %-8.8s %-15.15s\n" struct dundi_peer *peer; int registeredonly=0; char avgms[20]; @@ -2570,7 +2571,7 @@ static int dundi_show_peers(int fd, int argc, char *argv[]) return RESULT_SHOWUSAGE; } AST_LIST_LOCK(&peers); - ast_cli(fd, FORMAT2, "EID", "Host", "Model", "AvgTime", "Status"); + ast_cli(fd, FORMAT2, "EID", "Host", "Port", "Model", "AvgTime", "Status"); AST_LIST_TRAVERSE(&peers, peer, list) { char status[20]; int print_line = -1; @@ -2605,7 +2606,7 @@ static int dundi_show_peers(int fd, int argc, char *argv[]) strcpy(avgms, "Unavail"); snprintf(srch, sizeof(srch), FORMAT, dundi_eid_to_str(eid_str, sizeof(eid_str), &peer->eid), peer->addr.sin_addr.s_addr ? ast_inet_ntoa(peer->addr.sin_addr) : "(Unspecified)", - peer->dynamic ? "(D)" : "(S)", model2str(peer->model), avgms, status); + peer->dynamic ? "(D)" : "(S)", ntohs(peer->addr.sin_port), model2str(peer->model), avgms, status); if (argc == 5) { if (!strcasecmp(argv[3],"include") && strstr(srch,argv[4])) { @@ -2622,7 +2623,7 @@ static int dundi_show_peers(int fd, int argc, char *argv[]) if (print_line) { ast_cli(fd, FORMAT, dundi_eid_to_str(eid_str, sizeof(eid_str), &peer->eid), peer->addr.sin_addr.s_addr ? ast_inet_ntoa(peer->addr.sin_addr) : "(Unspecified)", - peer->dynamic ? "(D)" : "(S)", model2str(peer->model), avgms, status); + peer->dynamic ? "(D)" : "(S)", ntohs(peer->addr.sin_port), model2str(peer->model), avgms, status); } } ast_cli(fd, "%d dundi peers [%d online, %d offline, %d unmonitored]\n", total_peers, online_peers, offline_peers, unmonitored_peers); @@ -4194,6 +4195,8 @@ static void build_peer(dundi_eid *eid, struct ast_variable *v, int *globalpcmode ast_copy_string(peer->inkey, v->value, sizeof(peer->inkey)); } else if (!strcasecmp(v->name, "outkey")) { ast_copy_string(peer->outkey, v->value, sizeof(peer->outkey)); + } else if (!strcasecmp(v->name, "port")) { + peer->addr.sin_port = htons(atoi(v->value)); } else if (!strcasecmp(v->name, "host")) { if (!strcasecmp(v->value, "dynamic")) { peer->dynamic = 1; |