```
-## PAM (Pluggable Authentication Modules) Authentication
+### PAM (Pluggable Authentication Modules) Authentication
Authenticate with PAM (Pluggable Authentication Modules).
```
-EAP Authentication
+### EAP Authentication
For EAP-MD5, EAP-MSCHAP, EAP-TLS, EAP-TTLS, EAP-PEAP, EAP-PWD, etc.
```
-Accounting
+## Accounting
This section deals with receiving Accounting requests and
+### Receive Accounting-Request packets
+
An Accounting-Request packet has been received. Decide which
accounting type to use.
-Session start
+## Sections for Acct-Status-Type
+
+### Session start
```
accounting Start {
```
-Session stop
+### Session stop
```
accounting Stop {
```
-Session is still alive
+### Session is still alive
```
accounting Interim-Update {
```
-The NAS has just booted up.
+### The NAS has just booted up.
```
accounting Accounting-On {
```
-The NAS is about to go down
+### The NAS is about to shut down
```
accounting Accounting-Off {
```
-Session failed to do something
+### The user session failed in some way
```
accounting Failed {
-Send Accounting-Response.
+### Send Accounting-Response.
Log the accounting data before replying. If logging fails then
the reply will not be sent, which means the NAS will send the
```
attr_filter.accounting_response
}
+
+```
+
+## Timeouts
+
+A virtual server can have a `timeout` section. The format and
+contents are the same as the `timeout` keyword.
+
+This section limits the total processing time for a request. The
+values given here should be less than `max_request_time`.
+
+When a request reaches `max_request_time`, it is forcibly stopped.
+No further processing takes place.
+
+When a request reaches the time specified in this `timeout` section,
+all normal processing is stopped. The `timeout` section is then run.
+
+This configuration allows the server to take action when a request
+is taking too long. For example, it could write a failure message
+to a log file.
+
+The `timeout` section can contain any `unlang` keyword, including
+`call`, and other `timeout` sections. If you need to have a
+"timeout for the timeout", then just add anoither `timeout` section
+inside of this one.
+
+Note that `max_request_time` still applies. So the timeout value
+given here should be less than the value given by
+`max_request_time`.
+
+
+
+```
+# timeout 10s {
+# do_logging_here
+# ...
+# }
+
}
```
}
#
-# ## PAM (Pluggable Authentication Modules) Authentication
+# ### PAM (Pluggable Authentication Modules) Authentication
#
# Authenticate with PAM (Pluggable Authentication Modules).
#
}
#
-# EAP Authentication
+# ### EAP Authentication
#
# For EAP-MD5, EAP-MSCHAP, EAP-TLS, EAP-TTLS, EAP-PEAP, EAP-PWD, etc.
#
######################################################################
#
-# Accounting
+# ## Accounting
#
#
# This section deals with receiving Accounting requests and
#
######################################################################
+#
+# ### Receive Accounting-Request packets
#
# An Accounting-Request packet has been received. Decide which
# accounting type to use.
#
#
-# Session start
+# ## Sections for Acct-Status-Type
+#
+# ### Session start
#
accounting Start {
#
}
#
-# Session stop
+# ### Session stop
#
accounting Stop {
#
}
#
-# Session is still alive
+# ### Session is still alive
#
accounting Interim-Update {
#
}
#
-# The NAS has just booted up.
+# ### The NAS has just booted up.
#
accounting Accounting-On {
#
}
#
-# The NAS is about to go down
+# ### The NAS is about to shut down
#
accounting Accounting-Off {
#
}
#
-# Session failed to do something
+# ### The user session failed in some way
#
accounting Failed {
#
#
-# Send Accounting-Response.
+# ### Send Accounting-Response.
#
# Log the accounting data before replying. If logging fails then
# the reply will not be sent, which means the NAS will send the
#
attr_filter.accounting_response
}
+
+#
+# ## Timeouts
+#
+# A virtual server can have a `timeout` section. The format and
+# contents are the same as the `timeout` keyword.
+#
+# This section limits the total processing time for a request. The
+# values given here should be less than `max_request_time`.
+#
+# When a request reaches `max_request_time`, it is forcibly stopped.
+# No further processing takes place.
+#
+# When a request reaches the time specified in this `timeout` section,
+# all normal processing is stopped. The `timeout` section is then run.
+#
+# This configuration allows the server to take action when a request
+# is taking too long. For example, it could write a failure message
+# to a log file.
+#
+# The `timeout` section can contain any `unlang` keyword, including
+# `call`, and other `timeout` sections. If you need to have a
+# "timeout for the timeout", then just add anoither `timeout` section
+# inside of this one.
+#
+# Note that `max_request_time` still applies. So the timeout value
+# given here should be less than the value given by
+# `max_request_time`.
+#
+#
+
+# timeout 10s {
+# do_logging_here
+# ...
+# }
+
}