On Tue, Aug 02, 2005 at 07:14:10PM +0200, Martin Kraemer wrote:
> Of course. BTW: do you think case insensitivity for the keywords
> is a good idea? I do, but I don't know if it would cause
> misinterpretation for some existing config files. Like, when
> someone was looking for a string "EQ", will the parser now bail
> out because it becomes a keyword?
I saw no discussion about this question. What does everybody think --
should I apply something like the appended patch to allow for a more
liberal syntax, e.g. using "AND", "oR" or "In" in the example
directive from the docs:
SSLRequire ( %{SSL_CIPHER} !~ m/^(EXP|NULL)-/ \
and %{SSL_CLIENT_S_DN_O} eq "Snake Oil, Ltd." \
and %{SSL_CLIENT_S_DN_OU} in {"Staff", "CA", "Dev"} \
and %{TIME_WDAY} >= 1 and %{TIME_WDAY} <= 5 \
and %{TIME_HOUR} >= 8 and %{TIME_HOUR} <= 20 ) \
or %{REMOTE_ADDR} =~ m/^192\.76\.162\.[0-9]+$/
WDYT?
Martin
--
<[EMAIL PROTECTED]> | Fujitsu Siemens
Fon: +49-89-636-46021, FAX: +49-89-636-48332 | 81730 Munich, Germany
Index: ssl_expr_scan.l
===================================================================
--- ssl_expr_scan.l (Revision 290101)
+++ ssl_expr_scan.l (Arbeitskopie)
@@ -152,27 +152,27 @@
/*
* Operators
*/
-"eq" { return T_OP_EQ; }
+[Ee][Qq] { return T_OP_EQ; }
"==" { return T_OP_EQ; }
-"ne" { return T_OP_NE; }
+[Nn][Ee] { return T_OP_NE; }
"!=" { return T_OP_NE; }
-"lt" { return T_OP_LT; }
+[Ll][Tt] { return T_OP_LT; }
"<" { return T_OP_LT; }
-"le" { return T_OP_LE; }
+[Ll][Ee] { return T_OP_LE; }
"<=" { return T_OP_LE; }
-"gt" { return T_OP_GT; }
+[Gg][Tt] { return T_OP_GT; }
">" { return T_OP_GT; }
-"ge" { return T_OP_GE; }
+[Gg][Ee] { return T_OP_GE; }
">=" { return T_OP_GE; }
"=~" { return T_OP_REG; }
"!~" { return T_OP_NRE; }
-"and" { return T_OP_AND; }
+[Aa][Nn][Dd] { return T_OP_AND; }
"&&" { return T_OP_AND; }
-"or" { return T_OP_OR; }
+[Oo][Rr] { return T_OP_OR; }
"||" { return T_OP_OR; }
-"not" { return T_OP_NOT; }
+[Nn][Oo][Tt] { return T_OP_NOT; }
"!" { return T_OP_NOT; }
-"in" { return T_OP_IN; }
+[Ii][Nn] { return T_OP_IN; }
[Oo][Ii][Dd] { return T_OP_OID; }
/*