From 878cc0e4e863e6b2c9fa71f791d35245b3ddbdb2 Mon Sep 17 00:00:00 2001 From: Patrick McHardy Date: Fri, 20 Mar 2009 08:34:59 +0100 Subject: Add support for user-defined symbolic constants User-defined constants can be used like this: define allowed_hosts = { 192.168.0.0/24, 10.0.0.20-10.0.0.30 } define udp_services = domain define tcp_services = { ssh, domain } ip saddr $allowed_hosts udp dport $udp_services counter accept ip saddr $allowed_hosts tcp dport $tcp_services counter accept Recursive definitions are possible, but currently not fully handled. Anything requiring transformations (sets using ranges) can not be used more than once currently since the expressions need to be COW'ed previously. Signed-off-by: Patrick McHardy --- src/scanner.l | 3 +++ 1 file changed, 3 insertions(+) (limited to 'src/scanner.l') diff --git a/src/scanner.l b/src/scanner.l index 3b22bb9e..7fc01f77 100644 --- a/src/scanner.l +++ b/src/scanner.l @@ -207,6 +207,8 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) "-" { return DASH; } "*" { return ASTERISK; } "@" { return AT; } +"$" { return '$'; } +"=" { return '='; } "=>" { return ARROW; } "map" { return MAP; } "vmap" { return VMAP; } @@ -219,6 +221,7 @@ addrstring ({macaddr}|{ip4addr}|{ip6addr}) "NF_INET_POST_ROUTING" { yylval->val = NF_INET_POST_ROUTING; return HOOKNUM; } "include" { return INCLUDE; } +"define" { return DEFINE; } "describe" { return DESCRIBE; } -- cgit v1.2.3