case [ ] {
[ statements ]
}
The case Statement
Syntax
The case
statement is used to match data inside of a
switch statement. The case
statement cannot be used
outside of a switch statement.
The <match>
text can be omitted, which means that the case
statement is the "default" and will match input that is not
matched by another case
statement inside of the same
switch.
The <match>
text can be an attribute reference such as &User-Name
,
or it can be a string. If the match
text is a dynamically expanded string, then the match is performed on
the output of the string expansion.
Note
|
It is strongly recommended to use static text for the <match> text.
Matching dynamically expanded strings, host names, or external
programs can degrade performance enormously.
|
Example
switch &Class {
case &Proxy-State {
...
}
case "%{sql:SELECT ...}" {
...
}
case 0xabcdef {
...
}
case {
update reply {
Reply-Message += "Contains %{Foreach-Variable-0}"
}
}
}