X-Git-Url: https://git.distorted.org.uk/~mdw/become/blobdiff_plain/6a4ec25cbad369c187a111c4ca39dd13fdb3a6e7..f3debbd8e99448cd425e8b87e0d9d99850689a85:/src/parser.y 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); }