ProxySG Content Policy Language Guide
•condition ::= trigger "=" expression
•trigger ::= identifier identifier "." word
•expression ::= term list
•list ::= "(" ((pattern ",")* pattern)? ")"
•disjunction ::= conjunction disjunction "" conjunction
•conjunction ::= term conjunction "&&" term
•term ::= pattern "(" disjunction ")" "!" term
•pattern ::= word 'string' "string"
•word ::= sequence of characters not including whitespace, & ( ) < > [ ] ; ! = " '
• string ::= sequence of characters that may including whitespace, & ( ) < > [ ] ;
!=. The characters " and ' may be enclosed within a string delimited by the alternate delimiter.
Pattern Types
Different triggers support different pattern syntaxes.
A pattern for a boolean trigger has one of the following forms:
boolean ::= yes no true false on off
The pattern for a numeric trigger can be either an integer or a range of integers. Numeric patterns cannot contain white space.
trigger=I
Test if trigger == I.
trigger=I..J
Test if trigger >= I and trigger <= J (where I <= J). For example, time=0900..1700 tests if the time is between 9:00 and 17:00 inclusive.
trigger=J..I
Test if trigger >= J or trigger <= I (where J > I). For example, minute=45..15 tests if the minute of the hour is between 45 and 15 inclusive.
trigger=I..
Test if trigger >= I. For example, bitrate=56k.. tests if the bitrate is greater than or equal to 56000.
trigger=..J
Test if trigger <= J. For example, bitrate=..56k tests if the bitrate is less than or equal to 56000.
Some triggers have IP address patterns. This can be either a literal IP address, such as 1.2.3.4, or an IP subnet pattern, such as 1.2.0.0/16, or a name defined by a define subnet statement.
Some triggers have regex patterns. This is a Perl 5 regular expression that matches a substring of the trigger value; it is not an anchored match unless an anchor is specified as part of the pattern.
50