summaryrefslogtreecommitdiffstats
path: root/doc/antora/modules/unlang/pages/case.adoc
blob: ba2b5fe274174e28fe56c8f6b55b9191756e9269 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
= The case Statement

.Syntax
[source,unlang]
----
case [ <match> ] {
    [ statements ]
}
----

The `case` statement is used to match data inside of a
xref:switch.adoc[switch] statement.  The `case` statement cannot be used
outside of a xref:switch.adoc[switch] statement.


The `<match>` text can be an attribute reference such as `&User-Name`,
or it can be a xref:type/string/index.adoc[string].  If the match
text is a dynamically expanded string, then the match is performed on
the output of the string expansion.

If no `<match>` text is given, it means that the `case` statement is
the "default" and will match all which is not matched by another
`case` statement inside of the same xref:switch.adoc[switch].

.Example
[source,unlang]
----
switch &User-Name {
    case "bob" {
        reject
    }

    case &Filter-Id {
        reject
    }

    case {
        ok
    }
}
----

// Copyright (C) 2020 Network RADIUS SAS.  Licenced under CC-by-NC 4.0.
// Development of this documentation was sponsored by Network RADIUS SAS.