summaryrefslogtreecommitdiffstats
path: root/usr.sbin/pppctl/pppctl.c
diff options
context:
space:
mode:
authorbrian <brian@FreeBSD.org>1997-07-12 19:26:49 +0000
committerbrian <brian@FreeBSD.org>1997-07-12 19:26:49 +0000
commit253d097eb2475ed08840482035f3d471edb49116 (patch)
treec4c2a14ba7f3dce374f98ccf046e3bf889adae49 /usr.sbin/pppctl/pppctl.c
parentaa8643ed6cef49dd34a96a1fe0d74f4d82400a70 (diff)
downloadFreeBSD-src-253d097eb2475ed08840482035f3d471edb49116.zip
FreeBSD-src-253d097eb2475ed08840482035f3d471edb49116.tar.gz
Support "host:port" as first arg.
Diffstat (limited to 'usr.sbin/pppctl/pppctl.c')
-rw-r--r--usr.sbin/pppctl/pppctl.c25
1 files changed, 19 insertions, 6 deletions
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
OpenPOWER on IntegriCloud