1 #ifndef SIEVE_LIMITS_H
2 #define SIEVE_LIMITS_H
3 
4 /*
5  * Scripts
6  */
7 
8 #define SIEVE_MAX_SCRIPT_NAME_LEN                       256
9 
10 #define SIEVE_DEFAULT_MAX_SCRIPT_SIZE                   (1 << 20)
11 
12 #define SIEVE_MAX_LOOP_DEPTH                            4
13 
14 /*
15  * Lexer
16  */
17 
18 #define SIEVE_MAX_STRING_LEN                            (1 << 20)
19 #define SIEVE_MAX_IDENTIFIER_LEN                        32
20 
21 /*
22  * AST
23  */
24 
25 #define SIEVE_MAX_COMMAND_ARGUMENTS                     32
26 #define SIEVE_MAX_BLOCK_NESTING                         32
27 #define SIEVE_MAX_TEST_NESTING                          32
28 
29 /*
30  * Runtime
31  */
32 
33 #define SIEVE_MAX_MATCH_VALUES                          32
34 #define SIEVE_HIGH_CPU_TIME_MSECS                       1500
35 #define SIEVE_DEFAULT_MAX_CPU_TIME_SECS                 30
36 #define SIEVE_DEFAULT_RESOURCE_USAGE_TIMEOUT_SECS       (60 * 60)
37 
38 /*
39  * Actions
40  */
41 
42 #define SIEVE_DEFAULT_MAX_ACTIONS                       32
43 #define SIEVE_DEFAULT_MAX_REDIRECTS                     4
44 
45 #endif
46