summaryrefslogtreecommitdiffstats
path: root/doc/antora/modules/unlang/pages/return.adoc
blob: aea1bc2ab24b8c3451f4ccc03bb0b7bc5abd40fb (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
= The return Statement

.Syntax
[source,unlang]
----
return
----

The `return` statement is used to exit a processing section such as
`authorize`.  It behaves similarly to the
xref:break.adoc[break] statement, except that it is not limited to
being used inside of a xref:foreach.adoc[foreach] loop.

The `return` statement is not strictly necessary.  It is mainly used
to simplify the layout of `unlang` policies.  If the `return`
statement did not exist, then every xref:if.adoc[if] statement might need
to have a matching xref:else.adoc[else] statement.

The `return` statement will also exit a policy which is defined in the
`policy { ... } ` subsection.  This behavior allows policies to be
treated as a function call.  Any `return` inside of the policy section
will only return from that policy.  The `return` will _not_ return
from the enclosing processing section which called the policy.

.Example
[source,unlang]
----
sql
if (&reply.Filter-Id == "hello") {
    return
}
...
----

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