httpd-cvs mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From mar...@apache.org
Subject svn commit: r290414 - in /httpd/httpd/trunk/modules/ssl: ssl_expr.h ssl_expr_eval.c ssl_expr_parse.c ssl_expr_parse.h ssl_expr_parse.y ssl_expr_scan.c ssl_expr_scan.l
Date Tue, 20 Sep 2005 10:27:49 GMT
Author: martin
Date: Tue Sep 20 03:27:41 2005
New Revision: 290414

URL: http://svn.apache.org/viewcvs?rev=290414&view=rev
Log:
As discussed previously: OID() -> PeerExtList()

Modified:
    httpd/httpd/trunk/modules/ssl/ssl_expr.h
    httpd/httpd/trunk/modules/ssl/ssl_expr_eval.c
    httpd/httpd/trunk/modules/ssl/ssl_expr_parse.c
    httpd/httpd/trunk/modules/ssl/ssl_expr_parse.h
    httpd/httpd/trunk/modules/ssl/ssl_expr_parse.y
    httpd/httpd/trunk/modules/ssl/ssl_expr_scan.c
    httpd/httpd/trunk/modules/ssl/ssl_expr_scan.l

Modified: httpd/httpd/trunk/modules/ssl/ssl_expr.h
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/ssl/ssl_expr.h?rev=290414&r1=290413&r2=290414&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_expr.h (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_expr.h Tue Sep 20 03:27:41 2005
@@ -68,7 +68,7 @@
 #endif
 
 typedef enum {
-    op_NOP, op_ListElement, op_OidListElement,
+    op_NOP, op_ListElement, op_PeerExtElement,
     op_True, op_False, op_Not, op_Or, op_And, op_Comp,
     op_EQ, op_NE, op_LT, op_LE, op_GT, op_GE, op_IN, op_REG, op_NRE,
     op_Digit, op_String, op_Regex, op_Var, op_Func

Modified: httpd/httpd/trunk/modules/ssl/ssl_expr_eval.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/ssl/ssl_expr_eval.c?rev=290414&r1=290413&r2=290414&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_expr_eval.c (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_expr_eval.c Tue Sep 20 03:27:41 2005
@@ -118,7 +118,7 @@
                 e3 = (ssl_expr *)e2->node_arg1;
                 e2 = (ssl_expr *)e2->node_arg2;
 
-                if (op == op_OidListElement) {
+                if (op == op_PeerExtElement) {
                     char *w3 = ssl_expr_eval_word(r, e3);
 
                     found = ssl_expr_eval_oid(r, w1, w3);

Modified: httpd/httpd/trunk/modules/ssl/ssl_expr_parse.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/ssl/ssl_expr_parse.c?rev=290414&r1=290413&r2=290414&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_expr_parse.c (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_expr_parse.c Tue Sep 20 03:27:41 2005
@@ -43,7 +43,7 @@
 #define T_OP_REG 271
 #define T_OP_NRE 272
 #define T_OP_IN 273
-#define T_OP_OID 274
+#define T_OP_PEEREXTLIST 274
 #define T_OP_OR 275
 #define T_OP_AND 276
 #define T_OP_NOT 277
@@ -164,7 +164,7 @@
 0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,"T_TRUE",
 "T_FALSE","T_DIGIT","T_ID","T_STRING","T_REGEX","T_REGEX_I","T_FUNC_FILE",
 "T_OP_EQ","T_OP_NE","T_OP_LT","T_OP_LE","T_OP_GT","T_OP_GE","T_OP_REG",
-"T_OP_NRE","T_OP_IN","T_OP_OID","T_OP_OR","T_OP_AND","T_OP_NOT",
+"T_OP_NRE","T_OP_IN","T_OP_PEEREXTLIST","T_OP_OR","T_OP_AND","T_OP_NOT",
 };
 const char * const ssl_expr_yyrule[] = {
 "$accept : root",
@@ -185,7 +185,7 @@
 "comparison : word T_OP_IN wordlist",
 "comparison : word T_OP_REG regex",
 "comparison : word T_OP_NRE regex",
-"wordlist : T_OP_OID '(' word ')'",
+"wordlist : T_OP_PEEREXTLIST '(' word ')'",
 "wordlist : '{' words '}'",
 "words : word",
 "words : words ',' word",
@@ -498,7 +498,7 @@
 break;
 case 18:
 #line 107 "ssl_expr_parse.y"
-{ ssl_expr_yyval.exVal = ssl_expr_make(op_OidListElement, ssl_expr_yyvsp[-1].exVal, NULL);
}
+{ ssl_expr_yyval.exVal = ssl_expr_make(op_PeerExtElement, ssl_expr_yyvsp[-1].exVal, NULL);
}
 break;
 case 19:
 #line 108 "ssl_expr_parse.y"

Modified: httpd/httpd/trunk/modules/ssl/ssl_expr_parse.h
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/ssl/ssl_expr_parse.h?rev=290414&r1=290413&r2=290414&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_expr_parse.h (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_expr_parse.h Tue Sep 20 03:27:41 2005
@@ -19,7 +19,7 @@
 #define T_OP_REG 271
 #define T_OP_NRE 272
 #define T_OP_IN 273
-#define T_OP_OID 274
+#define T_OP_PEEREXTLIST 274
 #define T_OP_OR 275
 #define T_OP_AND 276
 #define T_OP_NOT 277

Modified: httpd/httpd/trunk/modules/ssl/ssl_expr_parse.y
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/ssl/ssl_expr_parse.y?rev=290414&r1=290413&r2=290414&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_expr_parse.y (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_expr_parse.y Tue Sep 20 03:27:41 2005
@@ -61,7 +61,7 @@
 %token  T_OP_REG
 %token  T_OP_NRE
 %token  T_OP_IN
-%token  T_OP_OID
+%token  T_OP_PEEREXTLIST
 
 %token  T_OP_OR
 %token  T_OP_AND
@@ -104,7 +104,7 @@
           | word T_OP_NRE regex          { $$ = ssl_expr_make(op_NRE, $1, $3); }
           ;
 
-wordlist  : T_OP_OID '(' word ')'	 { $$ = ssl_expr_make(op_OidListElement, $3, NULL); }
+wordlist  : T_OP_PEEREXTLIST '(' word ')' { $$ = ssl_expr_make(op_PeerExtElement, $3, NULL);
}
           | '{' words '}'                { $$ = $2 ; }
 	  ;
 

Modified: httpd/httpd/trunk/modules/ssl/ssl_expr_scan.c
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/ssl/ssl_expr_scan.c?rev=290414&r1=290413&r2=290414&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_expr_scan.c (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_expr_scan.c Tue Sep 20 03:27:41 2005
@@ -304,7 +304,7 @@
 
 #define YY_NUM_RULES 47
 #define YY_END_OF_BUFFER 48
-static yyconst short int yy_accept[89] =
+static yyconst short int yy_accept[97] =
     {   0,
         0,    0,    0,    0,    0,    0,    0,    0,   48,   46,
         1,   38,    2,   46,   44,   24,   46,   28,   45,   45,
@@ -313,8 +313,10 @@
        32,   34,   44,   26,   20,   31,   30,   45,   45,   45,
        19,   45,   45,   29,   27,   39,   25,   23,   15,   15,
        21,   45,   35,   45,   36,   13,   12,    5,    6,   10,
-       11,    7,    8,    9,   40,   33,   45,   45,   37,   45,
-        5,    6,   45,   41,   42,    5,   43,    0
+       11,    7,    8,    9,   45,   33,   45,   45,   37,   45,
+        5,    6,   45,   45,   41,   42,    5,   45,   43,   45,
+       45,   45,   45,   45,   40,    0
+
     } ;
 
 static yyconst int yy_ec[256] =
@@ -325,14 +327,14 @@
         1,    2,    4,    5,    1,    1,    1,    6,    1,    1,
         1,    1,    1,    1,    7,    1,    1,    8,    8,    8,
         8,    8,    8,    8,    8,    9,    9,    7,    1,   10,
-       11,   12,    1,    1,   13,   13,   13,   14,   13,   13,
-       13,   13,   15,   13,   13,   13,   13,   13,   16,   13,
-       13,   13,   13,   13,   13,   13,   13,   13,   13,   13,
-        1,   17,    1,    1,    7,    1,   18,   19,   13,   20,
-
-       21,   22,   23,   13,   24,   13,   13,   25,   26,   27,
-       28,   13,   29,   30,   31,   32,   33,   13,   13,   13,
-       13,   13,    1,   34,    1,   35,    1,    1,    1,    1,
+       11,   12,    1,    1,   13,   13,   13,   13,   14,   13,
+       13,   13,   15,   13,   13,   16,   13,   13,   13,   17,
+       13,   18,   19,   20,   13,   13,   13,   21,   13,   13,
+        1,   22,    1,    1,    7,    1,   23,   24,   13,   25,
+
+       26,   27,   28,   13,   29,   13,   13,   30,   31,   32,
+       33,   17,   34,   35,   36,   37,   38,   13,   13,   21,
+       13,   13,    1,   39,    1,   40,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
@@ -349,90 +351,100 @@
         1,    1,    1,    1,    1
     } ;
 
-static yyconst int yy_meta[36] =
+static yyconst int yy_meta[41] =
     {   0,
         1,    1,    2,    1,    3,    1,    4,    4,    4,    1,
-        1,    1,    4,    4,    4,    4,    3,    4,    4,    4,
-        4,    4,    4,    4,    4,    4,    4,    4,    4,    4,
-        4,    4,    4,    1,    1
+        1,    1,    4,    4,    4,    4,    4,    4,    4,    4,
+        4,    3,    4,    4,    4,    4,    4,    4,    4,    4,
+        4,    4,    4,    4,    4,    4,    4,    4,    1,    1
     } ;
 
-static yyconst short int yy_base[96] =
+static yyconst short int yy_base[104] =
     {   0,
-        0,    0,   33,   34,    0,    0,   88,   87,  110,  154,
-       38,   31,  154,  103,   35,   97,   34,   96,    0,   31,
-       75,   72,   29,   27,   73,   28,   69,   33,   48,   69,
-       64,    0,  154,  154,   97,  154,  154,  154,   54,  154,
-      154,  154,   56,  154,  154,  154,  154,    0,   38,   77,
-        0,   71,   70,    0,    0,    0,    0,    0,  154,    0,
-        0,   62,    0,   60,  154,    0,  154,   59,   68,  154,
-      154,  154,  154,  154,    0,    0,   61,   70,    0,   69,
-       74,   76,   68,    0,    0,   79,    0,  154,  129,  133,
-      137,   58,  141,  145,  149
+        0,    0,   38,   39,    0,    0,  101,  100,  128,  174,
+       43,   36,  174,  121,   40,  115,   39,  114,    0,   37,
+       92,   89,   29,   27,   90,   28,   79,   29,   82,   81,
+       76,    0,  174,  174,  112,  174,  174,  174,   54,  174,
+      174,  174,   58,  174,  174,  174,  174,    0,   45,   87,
+        0,   81,   80,    0,    0,    0,    0,    0,  174,    0,
+        0,   71,    0,   69,  174,    0,  174,   60,   64,  174,
+      174,  174,  174,  174,   52,    0,   70,   79,    0,   78,
+       66,   69,   68,   74,    0,    0,   84,   78,    0,   66,
+       72,   80,   77,   77,    0,  174,  149,  153,  157,   94,
 
+      161,  165,  169
     } ;
 
-static yyconst short int yy_def[96] =
+static yyconst short int yy_def[104] =
     {   0,
-       88,    1,   89,   89,   90,   90,   91,   91,   88,   88,
-       88,   88,   88,   88,   88,   88,   88,   88,   92,   92,
-       92,   92,   92,   92,   92,   92,   93,   92,   92,   92,
-       88,   94,   88,   88,   95,   88,   88,   88,   88,   88,
-       88,   88,   88,   88,   88,   88,   88,   92,   92,   92,
-       92,   92,   92,   92,   92,   92,   92,   92,   88,   92,
-       92,   92,   92,   92,   88,   94,   88,   88,   88,   88,
-       88,   88,   88,   88,   92,   92,   92,   92,   92,   92,
-       88,   88,   92,   92,   92,   88,   92,    0,   88,   88,
-       88,   88,   88,   88,   88
+       96,    1,   97,   97,   98,   98,   99,   99,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,  100,  100,
+      100,  100,  100,  100,  100,  100,  101,  100,  100,  100,
+       96,  102,   96,   96,  103,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,  100,  100,  100,
+      100,  100,  100,  100,  100,  100,  100,  100,   96,  100,
+      100,  100,  100,  100,   96,  102,   96,   96,   96,   96,
+       96,   96,   96,   96,  100,  100,  100,  100,  100,  100,
+       96,   96,  100,  100,  100,  100,   96,  100,  100,  100,
+      100,  100,  100,  100,  100,    0,   96,   96,   96,   96,
 
+       96,   96,   96
     } ;
 
-static yyconst short int yy_nxt[190] =
+static yyconst short int yy_nxt[215] =
     {   0,
        10,   11,   11,   12,   13,   14,   10,   15,   15,   16,
-       17,   18,   19,   19,   19,   20,   10,   21,   19,   19,
-       22,   23,   24,   25,   26,   27,   28,   29,   19,   19,
-       19,   30,   19,   31,   10,   33,   33,   34,   34,   39,
-       39,   40,   43,   43,   45,   49,   52,   54,   57,   35,
-       35,   75,   53,   61,   49,   39,   39,   75,   55,   58,
-       62,   48,   49,   43,   43,   41,   81,   82,   46,   59,
-       59,   49,   59,   59,   59,   82,   82,   63,   59,   59,
-       59,   86,   82,   82,   82,   59,   82,   82,   87,   85,
-       84,   83,   80,   79,   78,   77,   76,   65,   64,   56,
-
-       51,   50,   59,   59,   68,   69,   47,   44,   42,   88,
-       38,   38,   88,   88,   88,   70,   88,   88,   71,   88,
-       88,   88,   88,   72,   88,   88,   73,   88,   74,   32,
+       17,   18,   19,   19,   19,   19,   20,   19,   19,   19,
+       19,   10,   21,   19,   19,   22,   23,   24,   25,   26,
+       27,   28,   29,   19,   19,   19,   30,   19,   31,   10,
+       33,   33,   34,   34,   39,   39,   40,   43,   43,   45,
+       49,   52,   54,   57,   61,   39,   39,   53,   75,   35,
+       35,   62,   49,   55,   58,   43,   43,   81,   82,   83,
+       75,   82,   82,   87,   82,   41,   82,   82,   46,   59,
+       59,   88,   59,   59,   59,   91,   83,   92,   59,   59,
+       59,   82,   82,   88,   93,   94,   95,   48,   90,   89,
+
+       59,   92,   91,   86,   85,   84,   80,   79,   93,   78,
+       77,   76,   94,   95,   65,   64,   63,   59,   59,   68,
+       69,   56,   51,   50,   47,   44,   42,   96,   38,   38,
+       96,   96,   96,   96,   96,   70,   96,   96,   71,   96,
+       96,   96,   96,   72,   96,   96,   73,   96,   74,   32,
        32,   32,   32,   36,   36,   36,   36,   37,   37,   37,
-       37,   60,   88,   60,   60,   66,   88,   88,   66,   67,
-       67,   67,   67,    9,   88,   88,   88,   88,   88,   88,
-       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
-       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
-       88,   88,   88,   88,   88,   88,   88,   88,   88
+       37,   60,   96,   60,   60,   66,   96,   96,   66,   67,
+       67,   67,   67,    9,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96
     } ;
 
-static yyconst short int yy_chk[190] =
+static yyconst short int yy_chk[215] =
     {   0,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
         1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
-        1,    1,    1,    1,    1,    3,    4,    3,    4,   11,
-       11,   12,   15,   15,   17,   20,   23,   24,   26,    3,
-        4,   49,   23,   28,   20,   39,   39,   49,   24,   26,
-       28,   92,   29,   43,   43,   12,   68,   68,   17,   27,
-       27,   29,   27,   27,   27,   69,   69,   29,   27,   27,
-       27,   81,   81,   82,   82,   27,   86,   86,   83,   80,
-       78,   77,   64,   62,   53,   52,   50,   31,   30,   25,
-
-       22,   21,   27,   27,   35,   35,   18,   16,   14,    9,
-        8,    7,    0,    0,    0,   35,    0,    0,   35,    0,
-        0,    0,    0,   35,    0,    0,   35,    0,   35,   89,
-       89,   89,   89,   90,   90,   90,   90,   91,   91,   91,
-       91,   93,    0,   93,   93,   94,    0,    0,   94,   95,
-       95,   95,   95,   88,   88,   88,   88,   88,   88,   88,
-       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
-       88,   88,   88,   88,   88,   88,   88,   88,   88,   88,
-       88,   88,   88,   88,   88,   88,   88,   88,   88
+        1,    1,    1,    1,    1,    1,    1,    1,    1,    1,
+        3,    4,    3,    4,   11,   11,   12,   15,   15,   17,
+       20,   23,   24,   26,   28,   39,   39,   23,   49,    3,
+        4,   28,   20,   24,   26,   43,   43,   68,   68,   75,
+       49,   69,   69,   81,   81,   12,   82,   82,   17,   27,
+       27,   83,   27,   27,   27,   90,   75,   91,   27,   27,
+       27,   87,   87,   83,   92,   93,   94,  100,   88,   84,
+
+       27,   91,   90,   80,   78,   77,   64,   62,   92,   53,
+       52,   50,   93,   94,   31,   30,   29,   27,   27,   35,
+       35,   25,   22,   21,   18,   16,   14,    9,    8,    7,
+        0,    0,    0,    0,    0,   35,    0,    0,   35,    0,
+        0,    0,    0,   35,    0,    0,   35,    0,   35,   97,
+       97,   97,   97,   98,   98,   98,   98,   99,   99,   99,
+       99,  101,    0,  101,  101,  102,    0,    0,  102,  103,
+      103,  103,  103,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+
+       96,   96,   96,   96,   96,   96,   96,   96,   96,   96,
+       96,   96,   96,   96
     } ;
 
 static yy_state_type yy_last_accepting_state;
@@ -500,7 +512,7 @@
 #define regex 2
 #define regex_flags 3
 
-#line 505 "lex.ssl_expr_yy.c"
+#line 517 "lex.ssl_expr_yy.c"
 
 /* Macros after this point can all be overridden by user definitions in
  * section 1.
@@ -663,7 +675,7 @@
  /*
   * Whitespaces
   */
-#line 668 "lex.ssl_expr_yy.c"
+#line 680 "lex.ssl_expr_yy.c"
 
 	if ( yy_init )
 		{
@@ -714,13 +726,13 @@
 			while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 				{
 				yy_current_state = (int) yy_def[yy_current_state];
-				if ( yy_current_state >= 89 )
+				if ( yy_current_state >= 97 )
 					yy_c = yy_meta[(unsigned int) yy_c];
 				}
 			yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
 			++yy_cp;
 			}
-		while ( yy_current_state != 88 );
+		while ( yy_current_state != 96 );
 		yy_cp = yy_last_accepting_cpos;
 		yy_current_state = yy_last_accepting_state;
 
@@ -1008,7 +1020,7 @@
 case 40:
 YY_RULE_SETUP
 #line 176 "ssl_expr_scan.l"
-{ return T_OP_OID; }
+{ return T_OP_PEEREXTLIST; }
 	YY_BREAK
 /*
   * Functions
@@ -1068,7 +1080,7 @@
 #line 212 "ssl_expr_scan.l"
 YY_FATAL_ERROR( "flex scanner jammed" );
 	YY_BREAK
-#line 1073 "lex.ssl_expr_yy.c"
+#line 1085 "lex.ssl_expr_yy.c"
 case YY_STATE_EOF(INITIAL):
 case YY_STATE_EOF(str):
 case YY_STATE_EOF(regex):
@@ -1363,7 +1375,7 @@
 		while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 			{
 			yy_current_state = (int) yy_def[yy_current_state];
-			if ( yy_current_state >= 89 )
+			if ( yy_current_state >= 97 )
 				yy_c = yy_meta[(unsigned int) yy_c];
 			}
 		yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
@@ -1398,11 +1410,11 @@
 	while ( yy_chk[yy_base[yy_current_state] + yy_c] != yy_current_state )
 		{
 		yy_current_state = (int) yy_def[yy_current_state];
-		if ( yy_current_state >= 89 )
+		if ( yy_current_state >= 97 )
 			yy_c = yy_meta[(unsigned int) yy_c];
 		}
 	yy_current_state = yy_nxt[yy_base[yy_current_state] + (unsigned int) yy_c];
-	yy_is_jam = (yy_current_state == 88);
+	yy_is_jam = (yy_current_state == 96);
 
 	return yy_is_jam ? 0 : yy_current_state;
 	}

Modified: httpd/httpd/trunk/modules/ssl/ssl_expr_scan.l
URL: http://svn.apache.org/viewcvs/httpd/httpd/trunk/modules/ssl/ssl_expr_scan.l?rev=290414&r1=290413&r2=290414&view=diff
==============================================================================
--- httpd/httpd/trunk/modules/ssl/ssl_expr_scan.l (original)
+++ httpd/httpd/trunk/modules/ssl/ssl_expr_scan.l Tue Sep 20 03:27:41 2005
@@ -173,7 +173,7 @@
 "not" { return T_OP_NOT; }
 "!"   { return T_OP_NOT; }
 "in"  { return T_OP_IN; }
-[Oo][Ii][Dd] { return T_OP_OID; }
+[Pp][Ee][Ee][Rr][Ee][Xx][Tt][Ll][Ii][Ss][Tt] { return T_OP_PEEREXTLIST; }
 
  /*
   * Functions



Mime
View raw message