[openssh-commits] [openssh] 01/01: upstream: Support using service names for port numbers.
git+noreply at mindrot.org
git+noreply at mindrot.org
Sun Oct 7 14:58:31 AEDT 2018
This is an automated email from the git hooks/post-receive script.
djm pushed a commit to branch master
in repository openssh.
commit 2581333d564d8697837729b3d07d45738eaf5a54
Author: naddy at openbsd.org <naddy at openbsd.org>
Date: Fri Oct 5 14:26:09 2018 +0000
upstream: Support using service names for port numbers.
* Try to resolve a port specification with getservbyname(3) if a
numeric conversion fails.
* Make the "Port" option in ssh_config handle its argument as a
port rather than a plain integer.
ok dtucker@ deraadt@
OpenBSD-Commit-ID: e7f03633133205ab3dfbc67f9df7475fabae660d
---
misc.c | 12 ++++++++----
readconf.c | 21 +++++++++++++++------
2 files changed, 23 insertions(+), 10 deletions(-)
diff --git a/misc.c b/misc.c
index c4ca1256..bdc06fdb 100644
--- a/misc.c
+++ b/misc.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: misc.c,v 1.132 2018/10/03 06:38:35 djm Exp $ */
+/* $OpenBSD: misc.c,v 1.133 2018/10/05 14:26:09 naddy Exp $ */
/*
* Copyright (c) 2000 Markus Friedl. All rights reserved.
* Copyright (c) 2005,2006 Damien Miller. All rights reserved.
@@ -50,6 +50,7 @@
#include <netinet/in_systm.h>
#include <netinet/ip.h>
#include <netinet/tcp.h>
+#include <arpa/inet.h>
#include <ctype.h>
#include <errno.h>
@@ -332,13 +333,16 @@ pwcopy(struct passwd *pw)
int
a2port(const char *s)
{
+ struct servent *se;
long long port;
const char *errstr;
port = strtonum(s, 0, 65535, &errstr);
- if (errstr != NULL)
- return -1;
- return (int)port;
+ if (errstr == NULL)
+ return (int)port;
+ if ((se = getservbyname(s, "tcp")) != NULL)
+ return ntohs(se->s_port);
+ return -1;
}
int
diff --git a/readconf.c b/readconf.c
index d39cfa3c..43381152 100644
--- a/readconf.c
+++ b/readconf.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: readconf.c,v 1.299 2018/10/03 06:38:35 djm Exp $ */
+/* $OpenBSD: readconf.c,v 1.300 2018/10/05 14:26:09 naddy Exp $ */
/*
* Author: Tatu Ylonen <ylo at cs.hut.fi>
* Copyright (c) 1995 Tatu Ylonen <ylo at cs.hut.fi>, Espoo, Finland
@@ -1158,7 +1158,20 @@ parse_command:
return 0;
case oPort:
- intptr = &options->port;
+ arg = strdelim(&s);
+ if (!arg || *arg == '\0')
+ fatal("%.200s line %d: Missing argument.",
+ filename, linenum);
+ value = a2port(arg);
+ if (value <= 0)
+ fatal("%.200s line %d: Bad port '%s'.",
+ filename, linenum, arg);
+ if (*activep && options->port == -1)
+ options->port = value;
+ break;
+
+ case oConnectionAttempts:
+ intptr = &options->connection_attempts;
parse_int:
arg = strdelim(&s);
if ((errstr = atoi_err(arg, &value)) != NULL)
@@ -1168,10 +1181,6 @@ parse_int:
*intptr = value;
break;
- case oConnectionAttempts:
- intptr = &options->connection_attempts;
- goto parse_int;
-
case oCiphers:
arg = strdelim(&s);
if (!arg || *arg == '\0')
--
To stop receiving notification emails like this one, please contact
djm at mindrot.org.
More information about the openssh-commits
mailing list