Commit 82000062 authored by Poul-Henning Kamp's avatar Poul-Henning Kamp

Only fail -T argument if none of the addresses it resolves to

can be listend on.

Fixes #97


git-svn-id: http://www.varnish-cache.org/svn/trunk/varnish-cache@3473 d4fa192b-c00b-0410-8231-f00ffab90ce4
parent e9afec95
...@@ -459,22 +459,23 @@ mgt_cli_telnet(int dflag, const char *T_arg) ...@@ -459,22 +459,23 @@ mgt_cli_telnet(int dflag, const char *T_arg)
{ {
struct vss_addr **ta; struct vss_addr **ta;
char *addr, *port; char *addr, *port;
int i, n, sock; int i, n, sock, good;
struct telnet *tn; struct telnet *tn;
dflag_copy = dflag; dflag_copy = dflag;
XXXAZ(VSS_parse(T_arg, &addr, &port)); XXXAZ(VSS_parse(T_arg, &addr, &port));
n = VSS_resolve(addr, port, &ta); n = VSS_resolve(addr, port, &ta);
free(addr);
free(port);
if (n == 0) { if (n == 0) {
fprintf(stderr, "Could not open management port\n"); fprintf(stderr, "Could not open management port\n");
exit(2); exit(2);
} }
good = 0;
for (i = 0; i < n; ++i) { for (i = 0; i < n; ++i) {
sock = VSS_listen(ta[i], 10); sock = VSS_listen(ta[i], 10);
assert(sock >= 0); if (sock < 0)
continue;
good++;
tn = telnet_new(sock); tn = telnet_new(sock);
tn->ev = vev_new(); tn->ev = vev_new();
XXXAN(tn->ev); XXXAN(tn->ev);
...@@ -486,5 +487,12 @@ mgt_cli_telnet(int dflag, const char *T_arg) ...@@ -486,5 +487,12 @@ mgt_cli_telnet(int dflag, const char *T_arg)
ta[i] = NULL; ta[i] = NULL;
} }
free(ta); free(ta);
if (good == 0) {
REPORT(LOG_ERR, "-T %s:%s could not be listened on.",
addr, port);
exit(2);
}
free(addr);
free(port);
return (0); return (0);
} }
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment