"proto" is still accepted for compatibility.
However, it was too generic / conflicting, and was therefore
confusing.
Similarly, there were comments saying "listen load" would use
name2 to open the "load" module. But name2 is now used for
something else, and the code was deleted a long time ago.
```
-The "listen" section MUST have a second name here, which
-says "load the detail file processor, and not the typical
-RADIUS UDP / TCP socket IO.
+This is the detail file listener.
```
listen detail {
```
-Overrides the default transport prefix set by
-namespace and loads the detail reader code.
+A special-case over-ride for detail files. We are
+in the RADIUS namespace, but we load a special
+"detail" handler, instead of the generic RADIUS udp
+/ tcp transports.
+
+This configuration also enables "transport = file",
+which is not normally allowed for RADIUS.
+
+```
+ handler = detail
+
+```
+
+We read from files
```
- proto = detail
+ transport = file
```
```
-Use `listen load { ... }` in any virtual server to do load
-testing against that server.
+This is the load testing listener.
```
listen load {
operating in the RADIUS namespace.
```
- proto = load
+ handler = load
```
directory = ${radacctdir}/detail
#
- # The "listen" section MUST have a second name here, which
- # says "load the detail file processor, and not the typical
- # RADIUS UDP / TCP socket IO.
+ # This is the detail file listener.
#
- listen detail {
+ listen detail {
#
- # We read from files
+ # A special-case over-ride for detail files. We are
+ # in the RADIUS namespace, but we load a special
+ # "detail" handler, instead of the generic RADIUS udp
+ # / tcp transports.
#
- transport = file
+ # This configuration also enables "transport = file",
+ # which is not normally allowed for RADIUS.
+ #
+ handler = detail
#
- # A special-case over-ride for detail files. We are in the
- # RADIUS namespace, but we load a special handler for the detail
- # file
+ # We read from files
#
- proto = detail
+ transport = file
#
# Types of packets we are reading.
namespace = radius
#
- # Use `listen load { ... }` in any virtual server to do load
- # testing against that server.
+ # This is the load testing listener.
#
listen load {
#
# The main module is the proto module, even though we're
# operating in the RADIUS namespace.
#
- proto = load
+ handler = load
#
# This is a valid Packet-Type for the current `namespace`
* listen section has one else it comes from the
* namespace of the virtual server.
*
- * The following results in proto_radius being loaded:
+ * The following results in proto_radius and proto_radius_udp being loaded:
*
* server foo {
* namespace = radius
* listen {
- *
+ * transport = udp
+ * ...
* }
* }
*
* server foo {
* namespace = radius
* listen {
- * proto = load
+ * handler = load
*
* }
* }
* to be included in the server.
*
*/
- cp = cf_pair_find(listener_cs, "proto");
+ cp = cf_pair_find(listener_cs, "handler");
+ if (!cp) cp = cf_pair_find(listener_cs, "proto");
if (cp) {
protocol = cf_pair_value(cp);
if (!protocol) {