Commit Diff


commit - 5c342d059f884b73823e5a466902a3826b17e6c7
commit + a5a09e44b2ca3fa86ecf401f3907dff8c2012d98
blob - e5ad04bdeb44f3af2815d0aa3b4a3f2f9c558ad3
blob + bfdf9a8bd5dd7b74e9a1ef3f7f007b85cca7fbdd
--- gmid.c
+++ gmid.c
@@ -199,16 +199,13 @@ yyerror(const char *msg)
 int
 parse_portno(const char *p)
 {
-	char *ep;
-	long lval;
+	char	*errstr;
+	int	 n;
 
-	errno = 0;
-	lval = strtol(p, &ep, 10);
-	if (p[0] == '\0' || *ep != '\0')
-		fatal("not a number: %s", p);
-	if (lval < 0 || lval > UINT16_MAX)
-		fatal("port number out of range for domain %s: %ld", p, lval);
-	return lval;
+	n = strtonum(p, 0, UINT16_MAX, &errstr);
+	if (errstr != NULL)
+		errx(1, "port number is %s: %s", errstr, p);
+	return n;
 }
 
 void