From 253d097eb2475ed08840482035f3d471edb49116 Mon Sep 17 00:00:00 2001 From: brian Date: Sat, 12 Jul 1997 19:26:49 +0000 Subject: Support "host:port" as first arg. --- usr.sbin/pppctl/pppctl.c | 25 +++++++++++++++++++------ 1 file changed, 19 insertions(+), 6 deletions(-) (limited to 'usr.sbin/pppctl') diff --git a/usr.sbin/pppctl/pppctl.c b/usr.sbin/pppctl/pppctl.c index e63d736..323c3dd 100644 --- a/usr.sbin/pppctl/pppctl.c +++ b/usr.sbin/pppctl/pppctl.c @@ -169,18 +169,31 @@ main(int argc, char **argv) return 2; } } else { + char *port, *host, *colon; + + colon = strchr(argv[arg], ':'); + if (colon) { + port = colon + 1; + *colon = '\0'; + host = argv[arg]; + } else { + port = argv[arg]; + host = "localhost"; + } sock = (struct sockaddr *)&ifsin; socksz = sizeof ifsin; - if ((h = gethostbyname("localhost")) == 0) { - fprintf(stderr, "Cannot resolve localhost\n"); + if ((h = gethostbyname(host)) == 0) { + fprintf(stderr, "Cannot resolve %s\n", host); return 1; } + if (colon) + *colon = ':'; - if (strspn(argv[arg], "0123456789") == strlen(argv[arg])) - ifsin.sin_port = htons(atoi(argv[arg])); - else if (s = getservbyname(argv[arg], "tcp"), !s) { - fprintf(stderr, "%s isn't a valid port or service!\n", argv[arg]); + if (strspn(port, "0123456789") == strlen(port)) + ifsin.sin_port = htons(atoi(port)); + else if (s = getservbyname(port, "tcp"), !s) { + fprintf(stderr, "%s isn't a valid port or service!\n", port); return Usage(); } else -- cgit v1.1