Syntax
case [ <match> ] {
[ statements ]
}
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 a "default" one, and will match input which 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
|
We strongly recommend using 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}"
}
}
}