From f3debbd8e99448cd425e8b87e0d9d99850689a85 Mon Sep 17 00:00:00 2001 From: mdw Date: Tue, 9 Sep 1997 18:17:06 +0000 Subject: [PATCH] Allow default port to be given as a service name or port number. --- src/daemon.c | 9 ++++++--- src/parser.y | 22 ++++++++++++++++++++-- 2 files changed, 26 insertions(+), 5 deletions(-) diff --git a/src/daemon.c b/src/daemon.c index 5b5df85..f79d76b 100644 --- a/src/daemon.c +++ b/src/daemon.c @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: daemon.c,v 1.5 1997/08/20 16:17:10 mdw Exp $ + * $Id: daemon.c,v 1.6 1997/09/09 18:17:06 mdw Exp $ * * Running a `become' daemon * @@ -29,7 +29,10 @@ /*----- Revision history --------------------------------------------------* * * $Log: daemon.c,v $ - * Revision 1.5 1997/08/20 16:17:10 mdw + * Revision 1.6 1997/09/09 18:17:06 mdw + * Allow default port to be given as a service name or port number. + * + * Revision 1.5 1997/08/20 16:17:10 mdw * More sensible restart routine: `_reinit' functions replaced by `_end' and * `_init' functions. * @@ -323,7 +326,7 @@ void daemon_init(const char *cf, int port) struct servent *se = getservbyname(quis(), "udp"); if (!se) die("no idea which port to use"); - daemon__port = ntohs(se->s_port); + daemon__port = se->s_port; } /* --- Now set up a socket --- */ diff --git a/src/parser.y b/src/parser.y index 688ffc4..b36ecdb 100644 --- a/src/parser.y +++ b/src/parser.y @@ -1,6 +1,6 @@ /* -*-c-*- * - * $Id: parser.y,v 1.2 1997/08/04 10:24:24 mdw Exp $ + * $Id: parser.y,v 1.3 1997/09/09 18:17:06 mdw Exp $ * * Parser for `become.conf' files * @@ -29,6 +29,9 @@ /*----- Revision history --------------------------------------------------* * * $Log: parser.y,v $ + * Revision 1.3 1997/09/09 18:17:06 mdw + * Allow default port to be given as a service name or port number. + * * Revision 1.2 1997/08/04 10:24:24 mdw * Sources placed under CVS control. * @@ -49,7 +52,13 @@ /* --- Unix headers --- */ #include +#include + +#include + +#include +#include #include #include @@ -190,7 +199,16 @@ host_spec : HOST name '=' host_class ';' { } ; -port_spec : PORT INT ';' { daemon_usePort($2); } +port_spec : PORT STRING ';' { + struct servent *s = getservbyname($2, "udp"); + if (!s) { + moan("unknown service `%s' at line %i", + $2, lex_line); + YYERROR; + } + daemon_usePort(s->s_port); + } + | PORT INT ';' { daemon_usePort(htons($2)); } ; key_spec : KEYFILE STRING ';' { daemon_readKey($2); } -- 2.11.0