]> granicus.if.org Git - sudo/commitdiff
added NETGROUP support
authorTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 25 Jul 1995 00:01:34 +0000 (00:01 +0000)
committerTodd C. Miller <Todd.Miller@courtesan.com>
Tue, 25 Jul 1995 00:01:34 +0000 (00:01 +0000)
parse.lex
parse.yacc

index e60e6772b52f88e6ef26e696e1024199a097ee6d..33e7b6597e2e903b5aa9c64704022de4cbc438c4 100644 (file)
--- a/parse.lex
+++ b/parse.lex
@@ -90,6 +90,12 @@ N                    [0-9][0-9]?[0-9]?
                          LEXTRACE("\n");
                          return COMMENT;
                        }                       /* return comments */
+
+\+[a-zA-Z][a-zA-Z0-9_-]* {
+                         fill();
+                         return NETGROUP;
+                        }
+
 {N}\.{N}\.{N}\.{N}     {
                          fill();
                          return NTWKADDR;
index 9cd4189e11d237cd3bb060d873582ebccbdda634..d9be2eeca5b3ae01625fd1b0f64092ad9014d4d7 100644 (file)
@@ -121,6 +121,7 @@ char *s;
 %start file                            /* special start symbol */
 %token <string>        ALIAS                   /* an UPPERCASE alias name */
 %token <string> NTWKADDR               /* w.x.y.z */
+%token <string> NETGROUP               /* +NAME */
 %token <string> PATH                   /* an absolute pathname */
 %token <string> NAME                   /* a mixed-case name */
 %token <tok>   COMMENT                 /* comment and/or carriage return */
@@ -176,6 +177,10 @@ hostspec   :       ALL {
                            if (addr_matches($1))
                                host_matches = TRUE;
                        }
+               |       NETGROUP {
+                           if (netgr_matches($1, host, NULL))
+                               host_matches = TRUE;
+                       }
                |       NAME {
                            if (strcmp(host, $1) == 0)
                                host_matches = TRUE;
@@ -300,6 +305,10 @@ user               :       NAME {
                            if (strcmp($1, user) == 0)
                                user_matches = TRUE;
                        }
+               |       NETGROUP {
+                           if (netgr_matches($1, NULL, user))
+                               user_matches = TRUE;
+                       }
                |       ALIAS {
                            if (find_alias($1, USER))
                                user_matches = TRUE;