X-Git-Url: https://git.distorted.org.uk/~mdw/tripe/blobdiff_plain/102fa2f087554901001abcd106160a4ea0668206..5d06f63eaa34a4bf0e116f3e2a1e4ef4e6434224:/server/admin.c diff --git a/server/admin.c b/server/admin.c index 46a7348a..3b99848c 100644 --- a/server/admin.c +++ b/server/admin.c @@ -1666,7 +1666,24 @@ static void acmd_warn(admin *a, unsigned ac, char *av[]) { alertcmd(a, AF_WARN, AF_WARN, "WARN", av); } static void acmd_port(admin *a, unsigned ac, char *av[]) - { a_info(a, "%u", p_port(), A_END); a_ok(a); } +{ + int i; + + if (ac) { + for (i = 0; i < NADDRFAM; i++) + if (mystrieq(av[0], aftab[i].name)) goto found; + a_fail(a, "unknown-address-family", "%s", av[0], A_END); + return; + found: + assert(udpsock[i].fd >= 0); + } else { + for (i = 0; i < NADDRFAM; i++) + if (udpsock[i].fd >= 0) goto found; + abort(); + } + a_info(a, "%u", p_port(i), A_END); + a_ok(a); +} static void acmd_daemon(admin *a, unsigned ac, char *av[]) { @@ -1977,7 +1994,7 @@ static const acmd acmdtab[] = { { "notify", "MESSAGE ...", 1, 0xffff, acmd_notify }, { "peerinfo", "PEER", 1, 1, acmd_peerinfo }, { "ping", "[OPTIONS] PEER", 1, 0xffff, acmd_ping }, - { "port", 0, 0, 0, acmd_port }, + { "port", "[FAMILY]", 0, 1, acmd_port }, { "quit", 0, 0, 0, acmd_quit }, { "reload", 0, 0, 0, acmd_reload }, { "servinfo", 0, 0, 0, acmd_servinfo },